Помогите исправить эту ошибку: expected unqualified-id before 'if'|Arduino

#define inA1 4 
#define inA2 5 // 4,5 DC 1
#define inB1 6
#define inB2 7 // 6,7 DC 2
#define inC1 8 // Живая лента
#define inL1 2 
#define inL2 12
#define inL3 3
#define inL4 13 // Логово
byte bluetoothByte = 0; //кхай бао бин нхан bluetooth
int quangtro = A5;
void setup() {
pinMode(inA1, OUTPUT);
pinMode(inA2, OUTPUT);
pinMode(inB1, OUTPUT);
pinMode(inB2, OUTPUT);
pinMode(inC1, OUTPUT);
pinMode(inL1, OUTPUT);
pinMode(inL2, OUTPUT);
pinMode(inL3, OUTPUT);
pinMode(inL4, OUTPUT);
Serial.begin(9600); 
int quangtro = A5; // Аналог Thiết đặt chân đọc quang trở
}
void loop() {
  int giatriQuangtro = analogRead(quangtro);// прочитать оптическое значение

  // Если значение фоторезистора <= значению реостата, включаем свет
  if (giatriQuangtro >= 650) {
    digitalWrite(inL1,HIGH);
    digitalWrite(inL2,HIGH);
    digitalWrite(inL3,HIGH);
    digitalWrite(inL4,HIGH);
  }  else 
    digitalWrite(inL1,LOW);
    digitalWrite(inL2,LOW);
    digitalWrite(inL3,LOW);
    digitalWrite(inL4,LOW);
} 
// Если значение получено
if (Serial.available() > 0) {
// читаем данные, отправленные обратно
bluetoothByte = Serial.read();
}
if (bluetoothByte == 1) {
dithang();
else if (bluetoothByte == 0)
dunglai();
else if (bluetoothByte == 2)
lui();
else if(bluetoothByte == 3)
quaytrai();
else if (bluetoothByte == 4)
quayphai();
else if (bluetoothByte == 5)
batcoi();
else if (bluetoothByte == 6)
batden();
 }
// Часть управления двигателем, я пишу так... MAX понять несложно:
void dunglai(){          
           digitalWrite(inA1,LOW);
           digitalWrite(inA2,LOW);
           digitalWrite(inB1,LOW);
           digitalWrite(inB2,LOW);
           digitalWrite(inC1,LOW);
           digitalWrite(inL1,LOW);
           digitalWrite(inL2,LOW);
           digitalWrite(inL3,LOW);
           digitalWrite(inL4,LOW);
}
void dithang(){
           digitalWrite(inA1,HIGH);
           digitalWrite(inA2,LOW);
           digitalWrite(inB1,HIGH);
           digitalWrite(inB2,LOW);
           digitalWrite(inL2,HIGH);
           digitalWrite(inL3,HIGH);

}
void lui(){
           digitalWrite(inA1,LOW);
           digitalWrite(inA2,HIGH);
           digitalWrite(inB1,LOW);
           digitalWrite(inB2,HIGH);
           digitalWrite(inL1,HIGH);
           digitalWrite(inL4,HIGH);



}
void quaytrai(){
           digitalWrite(inA1,HIGH);
           digitalWrite(inA2,LOW);
           digitalWrite(inB1,LOW);
           digitalWrite(inB2,HIGH);
           digitalWrite(inL1,HIGH);
           digitalWrite(inL2,HIGH);
}
void quayphai(){
           digitalWrite(inA1,LOW);
           digitalWrite(inA2,HIGH);
           digitalWrite(inB1,HIGH);
           digitalWrite(inB2,LOW);
           digitalWrite(inL3,HIGH);
           digitalWrite(inL4,HIGH);
}
void batcoi(){
           digitalWrite(inC1,HIGH);
           digitalWrite(inL1,HIGH);
           digitalWrite(inL2,HIGH);
           digitalWrite(inL3,HIGH);
           digitalWrite(inL4,HIGH);
}
void batden(){
           digitalWrite(inL1,HIGH);
           digitalWrite(inL2,HIGH);
           digitalWrite(inL3,HIGH);
           digitalWrite(inL4,HIGH);


}

, 👍-1

Обсуждение

Проблема заключается здесь if (bluetoothByte == 1) {. Вы включаете все операторы else if вместе в первые операторы if. Таким образом, операторы elseif не имеют соответствующего оператора if. Исправьте отступ, и вы легко это увидите, @chrisl

@chrisl Это ответ., @towe


1 ответ


1

Проблема здесь:

if (bluetoothByte == 1) {
dithang();
else if (bluetoothByte == 0)
dunglai();
else if (bluetoothByte == 2)
lui();
else if(bluetoothByte == 3)
quaytrai();
else if (bluetoothByte == 4)
quayphai();
else if (bluetoothByte == 5)
batcoi();
else if (bluetoothByte == 6)
batden();
 }

Вы открываете первый оператор if со скобкой {. Эта скобка закрывается после всех операторов else if. Это означает, что все операторы else if находятся внутри оператора if. Следовательно, у них нет инструкции if для запуска.

Либо удалите обе скобки (поскольку операторы if и else if содержат только 1 команду), либо используйте скобки для каждого if и else if оператор.

,