Помогите исправить эту ошибку: 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);
}
@Minh Đức, 👍-1
Обсуждение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
оператор.
,
@chrisl
Смотрите также:
- Как сгенерировать файлы .a и .so для добавления в проект arduino
- Arduino PID для маятника пропеллера для горизонтальной балансировки
- avrdude ser_open() can't set com-state
- Arduino Uno: avrdude: stk500_recv(): программатор не отвечает
- Arduino IRremote перестает работать
- Проблема с Arduino Nano 33 IOT
- Невозможно загрузить код на Arduino Nano.
- Использование библиотеки Arduino fix_fft или arduinoFFT для фильтрации определенного звука?
Проблема заключается здесь
if (bluetoothByte == 1) {
. Вы включаете все операторы else if вместе в первые операторы if. Таким образом, операторы elseif не имеют соответствующего оператора if. Исправьте отступ, и вы легко это увидите, @chrisl@chrisl Это ответ., @towe