expected unqualified id-before '/' token
/* Обработка нескольких состояний
* 22.05.2019
*/
#define button 3 //Нажать кнопку на D3
#define lowbeam 5 //Ближний свет на D5
#define highbeam 6 //Дальний свет на D6
#define gate 7 //Врата на D7
/------------------------------------------------------------------------
int state = 0; //целое число для хранения текущего состояния
int old = 0; //целое число для хранения последнего состояния
int buttonPoll = 0; //целое число для хранения состояния кнопки
/-------------------------------------------------------------------------
void setup() {
pinMode(button,INPUT); //кнопка установлена как вход
pinMode(lowbeam,OUTPUT); // реле настроены как выходы
pinMode(highbeam,OUTPUT);
pinMode(gate,OUTPUT);
digitalWrite(lowbeam,LOW); //начальное состояние выключено
digitalWrite(highbeam,LOW); //начальное состояние выключено
digitalWrite(gate,LOW); //начальное состояние выключено
}
/-------------------------------------------------------------------------
void loop() {
//подпрограмма устранения дребезга для чтения кнопки
buttonPoll = digitalRead(button); //опрос состояния кнопки
if(buttonPoll == 1){ //проверяем, была ли нажата кнопка
delay(50); // ждем 50 мс
buttonPoll = digitalRead(button); //кнопка опроса снова
if(buttonPoll == 0){ //если это 0 считать 1 нажмите
state = old +1; //увеличиваем состояние на 1
}}
else{ //если кнопка не нажата
deley(100); // ждем 100 мс
}
switch (state) { // реагировать на нажатие кнопки & состояние
case 1: //если состояние равно 1
digitalWrite(lowbeam,HIGH); //реле ближнего света включено
digitalWrite(highbeam,LOW); //реле дальнего света выключено
digitalWrite(gate,LOW);
old = state; //установить старое состояние как текущее
break;
case 2:
digitalWrite(lowbeam,LOW);
digitalWrite(highbeam,HIGH);
digitalWrite(gate,LOW);
old = state;
break;
case 3:
digitalWrite(lowbeam,LOW);
digitalWrite(highbeam,LOW);
digitalWrite(gate,HIGH);
old = state;
break;
default: //если состояние, если нет 1,2,3
digitalWrite(lowbeam,LOW); //все реле выключены
digitalWrite(highbeam,LOW);
digitalWrite(gate,LOW);
old = 0; //сбросить все выключено/состояние 0
break;
}
}
@Rich A, 👍2
Обсуждение1 ответ
▲ 2
Хорошо, вы только что допустили пару мелких опечаток.
Хорошо разбивать код для удобства чтения, но однострочные комментарии начинаются с двойной косой черты //
, а не с одинарной.
Кроме того, вы неправильно написали слово "задержка" в цикле.
Это должно скомпилироваться без ошибок:
/* Multiple State Handling
* 05-22-2019
*/
#define button 3 //Нажать кнопку на D3
#define lowbeam 5 //Ближний свет на D5
#define highbeam 6 //Дальний свет на D6
#define gate 7 //Врата на D7
//------------------------------------------------ ------------------------
int state = 0; //целое число для хранения текущего состояния
int old = 0; //целое число для хранения последнего состояния
int buttonPoll = 0; //целое число для хранения состояния кнопки
//------------------------------------------------ -------------------------
void setup() {
pinMode(button,INPUT); //кнопка установлена как вход
pinMode(lowbeam,OUTPUT); // реле настроены как выходы
pinMode(highbeam,OUTPUT);
pinMode(gate,OUTPUT);
digitalWrite(lowbeam,LOW); //начальное состояние выключено
digitalWrite(highbeam,LOW); //начальное состояние выключено
digitalWrite(gate,LOW); //начальное состояние выключено
}
//------------------------------------------------ -------------------------
void loop() {
//подпрограмма устранения дребезга для чтения кнопки
buttonPoll = digitalRead(button); //опрос состояния кнопки
if(buttonPoll == 1){ //проверяем, была ли нажата кнопка
delay(50); // ждем 50 мс
buttonPoll = digitalRead(button); //кнопка опроса снова
if(buttonPoll == 0){ //если это 0 считать 1 нажмите
state = old +1; //увеличиваем состояние на 1
}}
else{ //если кнопка не нажата
delay(100); // ждем 100 мс
}
switch (state) { // реагировать на нажатие кнопки & состояние
case 1: //если состояние равно 1
digitalWrite(lowbeam,HIGH); //реле ближнего света включено
digitalWrite(highbeam,LOW); //реле дальнего света выключено
digitalWrite(gate,LOW);
old = state; //установить старое состояние как текущее
break;
case 2:
digitalWrite(lowbeam,LOW);
digitalWrite(highbeam,HIGH);
digitalWrite(gate,LOW);
old = state;
break;
case 3:
digitalWrite(lowbeam,LOW);
digitalWrite(highbeam,LOW);
digitalWrite(gate,HIGH);
old = state;
break;
default: //если состояние, если нет 1,2,3
digitalWrite(lowbeam,LOW); //все реле выключены
digitalWrite(highbeam,LOW);
digitalWrite(gate,LOW);
old = 0; //сбросить все выключено/состояние 0
break;
}
}
,
@sempaiscuba
Смотрите также:
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Обычно отладчик сообщает, в какой строке программы находится ошибка..., @MichaelT