expected `}' at end of input

int scvVal = 6;
int drvVal = 9;
int sensorVal = A1;
void setup() { 
    Serial.begin(9600);
    pinMode(6, OUTPUT);
    pinMode(9, OUTPUT);   
 }
void loop(){
 sensorVal = analogRead(A1);


 Serial.print("Sensor Value: ");
 Serial.print(sensorVal);

 float voltage = (sensorVal*5.0)/1024.0; 
    Serial.print("Volts: ");
    Serial.print(voltage);

 float pressure_pascal = (400.0*((float)voltage-0.5))*1000000.0;
 float pressure_bar = pressure_pascal/10e5;
   Serial.print("Pressure = ");
   Serial.print(pressure_bar); 
   Serial.println(" bars");
   Serial.print("Pressure = ");
   {
 for(int a = 255; a>=0;a--)
 {
   analogWrite(6,a); 
 if (pressure_bar = 1600){
   analogWrite (6, a);
 if (pressure_bar > 1600){
   analogWrite (6, a);
 }
 for(int a = 0; a<256; a++)
 {
  analogWrite(6, a);
 {
 if(pressure_bar < 1600){
  analogWrite (6, a); 
 }
 for(int b = 255; b>=0;b--)
 {
 analogWrite(9, b);
 {
 if (pressure_bar == 1600){
   analogWrite (9, b);
 if(pressure_bar < 1600){
   analogWrite (9, b);
}
 for(int b = 0; b<256; b++)
 {
   analogWrite(9, b);
 { 
if (pressure_bar > 1600){
   analogWrite (9, b);  
   }
  }

, 👍0

Обсуждение

Добро пожаловать в Arduino:SE. Ваша жизнь была бы намного проще, если бы вы правильно сделали отступы в своем коде. Тогда будет совершенно очевидно, где должен находиться отсутствующий }., @sempaiscuba

поможешь мне?, @Đức Hòang

@Duc Hoang: Правильно ли вы форматируете свой код, чтобы он был читаемым? Выберите в редакторе вопросов и нажмите кнопку {}, @chrisl

Никогда раньше я не видел такого случайного использования скобок... ;), @Majenko

вы мне помогаете? .... вам нужно начать с помощи себе ..... прочитайте и поймите ответы ниже ..... не копируйте и не вставляйте код, не задумываясь, @jsotola

также, какой текстовый редактор/IDE вы используете? Некоторые из них выделяют соответствующие скобки, но не скобки Arduino., @aaaaa says reinstate Monica


2 ответа


1

Посмотрите на открытые скобки { и закрывающие скобки, }. Вам понадобится одинаковое количество каждого из них. Если у вас есть это в Arduino IDE и используется сочетание клавиш CTRL-T, их довольно легко найти. Я только что посмотрел и довольно легко их заметил.

int scvVal = 6; 
int drvVal = 9; 
int sensorVal = A1; 
void setup() 
{ 
Serial.begin(9600); 
pinMode(6, OUTPUT); 
pinMode(9, OUTPUT);
} 
void loop()
{ 
sensorVal = analogRead(A1);
Serial.print("Sensor Value: "); 
Serial.print(sensorVal);
float voltage = (sensorVal*5.0)/1024.0; 
Serial.print("Volts: "); 
Serial.print(voltage);
float pressure_pascal = (400.0*((float)voltage-0.5))*1000000.0; 
float pressure_bar = pressure_pascal/10e5; 
Serial.print("Pressure = "); 
Serial.print(pressure_bar); 
Serial.println(" bars"); 
Serial.print("Pressure = "); 
{                            << bracket for what?
for(int a = 255; a>=0;a--) { << missing closing bracket
  analogWrite(6,a); 
  if (pressure_bar = 1600){   << missing closing bracket
   analogWrite (6, a); 
     if (pressure_bar > 1600){ 
     analogWrite (6, a); 
     } 
  for(int a = 0; a<256; a++) { 
    analogWrite(6, a); 
    {                      << wrong direction
    if(pressure_bar < 1600){ 
       analogWrite (6, a); 
    } 
  for(int b = 255; b>=0;b--) { 
    analogWrite(9, b); 
   {                           << wrong direction
    if (pressure_bar == 1600){ << missing closing bracket
      analogWrite (9, b); 
      if(pressure_bar < 1600){ << missing closing bracket
        analogWrite (9, b); 
    } 
   for(int b = 0; b<256; b++) { 
     analogWrite(9, b); 
   {                            << wrong direction
   if (pressure_bar > 1600){ 
     analogWrite (9, b);
   } 
}  << closing bracket for loop
,

3

Некоторые рекомендации по программированию:

Начинайте каждый оператор с новой строки

int scvVal = 6; 
int drvVal = 9; 
int sensorVal = A1; 
void setup() { 
Serial.begin(9600); 
pinMode(6, OUTPUT); 
pinMode(9, OUTPUT);
} void loop(){ 
sensorVal = analogRead(A1);

Serial.print("Sensor Value: "); Serial.print(sensorVal);

float voltage = (sensorVal*5.0)/1024.0; Serial.print("Volts: "); Serial.print(voltage);

float pressure_pascal = (400.0*((float)voltage-0.5))*1000000.0; 
float pressure_bar = pressure_pascal/10e5; 
Serial.print("Pressure = "); 
Serial.print(pressure_bar); 
Serial.println(" bars"); 
Serial.print("Pressure = "); { 
for(int a = 255; a>=0;a--) { 
analogWrite(6,a); 
if (pressure_bar = 1600){ 
analogWrite (6, a); 
if (pressure_bar > 1600){ 
analogWrite (6, a); } 
for(int a = 0; a<256; a++) { 
analogWrite(6, a); { 
if(pressure_bar < 1600){ 
analogWrite (6, a); } 
for(int b = 255; b>=0;b--) { 
analogWrite(9, b); { 
if (pressure_bar == 1600){ 
analogWrite (9, b); 
if(pressure_bar < 1600){ 
analogWrite (9, b); } 
for(int b = 0; b<256; b++) { 
analogWrite(9, b); { 
if (pressure_bar > 1600){ 
analogWrite (9, b);
} }

Используйте скобки и выравнивайте их

.. чтобы каждая пара { и } находилась в одном столбце, и выровняйте код с помощью скобок, чтобы отступ был равен 2, 3 или 4 пробелам.

int scvVal = 6; 
int drvVal = 9; 
int sensorVal = A1; 
void setup() 
{ 
  Serial.begin(9600); 
  pinMode(6, OUTPUT); 
  pinMode(9, OUTPUT);
} 
void loop()
{ 
  sensorVal = analogRead(A1);

  Serial.print("Sensor Value: "); 
  Serial.print(sensorVal);

  float voltage = (sensorVal*5.0)/1024.0; Serial.print("Volts: "); 
  Serial.print(voltage);

  float pressure_pascal = (400.0*((float)voltage-0.5))*1000000.0; 
  float pressure_bar = pressure_pascal/10e5; 
  Serial.print("Pressure = "); 
  Serial.print(pressure_bar); 
  Serial.println(" bars"); 
  Serial.print("Pressure = "); 
  { 
    for(int a = 255; a>=0;a--) 
    { 
      analogWrite(6,a); 
      if (pressure_bar = 1600)
      { 
        analogWrite (6, a); 
        if (pressure_bar > 1600)
        { 
          analogWrite (6, a);  
        }   
        for(int a = 0; a<256; a++) 
        { 
          analogWrite(6, a); 
          {   
            if(pressure_bar < 1600)
            {   
              analogWrite (6, a); 
            } 
            for(int b = 255; b>=0;b--) 
            { 
              analogWrite(9, b); 
              {  
                if (pressure_bar == 1600)
                { 
                  analogWrite (9, b); 
                  if(pressure_bar < 1600)
                  {  
                    analogWrite (9, b); 
                  } 
                  for(int b = 0; b<256; b++) 
                  { 
                    analogWrite(9, b); 
                    { 
                      if (pressure_bar > 1600)
                      {    
                        analogWrite (9, b);
                      }
                    }

Удалите лишние скобки

Как видите, у вас есть лишние/отсутствующие скобки. Вероятно, вам нужно что-то вроде:

int scvVal = 6; 
int drvVal = 9; 
int sensorVal = A1; 
void setup() 
{ 
  Serial.begin(9600); 
  pinMode(6, OUTPUT); 
  pinMode(9, OUTPUT);
} 
void loop()
{ 
  sensorVal = analogRead(A1);

  Serial.print("Sensor Value: "); 
  Serial.print(sensorVal);

  float voltage = (sensorVal*5.0)/1024.0; Serial.print("Volts: "); 
  Serial.print(voltage);

  float pressure_pascal = (400.0*((float)voltage-0.5))*1000000.0; 
  float pressure_bar = pressure_pascal/10e5; 
  Serial.print("Pressure = "); 
  Serial.print(pressure_bar); 
  Serial.println(" bars"); 
  Serial.print("Pressure = "); 

  for(int a = 255; a>=0;a--) 
  { 
    analogWrite(6,a); 
    if (pressure_bar = 1600)
    { 
      analogWrite (6, a);
    }
    if (pressure_bar > 1600)
    { 
      analogWrite (6, a);  
    } 
  }
  for(int a = 0; a<256; a++) 
  {
    analogWrite(6, a); 
    if(pressure_bar < 1600)
    {   
      analogWrite (6, a); 
    }
  } 
  for(int b = 255; b>=0;b--) 
  { 
    analogWrite(9, b); 
    if (pressure_bar == 1600)
    { 
      analogWrite (9, b); 
    }
    if(pressure_bar < 1600)
    {  
      analogWrite (9, b); 
    } 
  }
  for(int b = 0; b<256; b++) 
  { 
    analogWrite(9, b); 
    if (pressure_bar > 1600)
    {    
      analogWrite (9, b);
    }
  }
}

Удалить повторяющийся код

В операторе if вы дважды выполняете один и тот же код (оба раза вы отправляете analogWrite с одним и тем же значением, поэтому код (из циклов for можно сократить до:

  for(int a = 255; a>=0;a--) 
  { 
    analogWrite(6,a); 
    if (pressure_bar >= 1600)
    { 
      analogWrite (6, a);
    }
  }
  for(int a = 0; a<256; a++) 
  {
    analogWrite(6, a); 
    if(pressure_bar <= 1600)
    {   
      analogWrite (6, a); 
    }
  } 
  for(int b = 255; b>=0;b--) 
  { 
    analogWrite(9, b); 
    if (pressure_bar <= 1600)
    { 
      analogWrite (9, b); 
    } 
  }
  for(int b = 0; b<256; b++) 
  { 
    analogWrite(9, b); 
    if (pressure_bar >= 1600)
    {    
      analogWrite (9, b);
    }
  }
}

Неясно

Что непонятно, почему вы сначала пишете аналоговое значение, а сразу после (в каждом if) пишете одно и то же значение. Я не уверен, чего ты на самом деле здесь хочешь. Либо вы хотите записать на другой вывод, либо вам нужна задержка (чтобы значение имело какой-то эффект), я просто не уверен.

,