int mode = 0; // Переменная для хранения текущего режима
int buf_mode = 0; //Буферная переменная
void setup() {
pinMode(2, INPUT_PULLUP); // Настройка пина 2 как входа с подтягивающим резистором
pinMode(13, OUTPUT); // Настройка пина 13 как выхода (светодиод)
}
void loop() {
if (digitalRead(2) == LOW) { // Если кнопка нажата
delay(200); //защита от дребезга (для переключения режима необходимо держать кнопку нажатой более 200 мс)
if (mode == buf_mode){ //если условие выполняется
mode = (mode + 1) % 3; // Переключение режима (0, 1, 2)
}
}
else{ //если условиен не выполняется
buf_mode = mode; //в буферную переменную записываем значение mode
}
switch (mode) {
case 0:
digitalWrite(13, LOW); // Выключить светодиод
break;
case 1:
digitalWrite(13, HIGH); // Включить светодиод
break;
case 2:
digitalWrite(13, HIGH); // Мигание светодиода
delay(500);
digitalWrite(13, LOW);
delay(500);
break;
}
}