// ЛР1, задание 4: три светодиода, одна кнопка
const int LED_RED = 10;
const int LED_YELLOW = 11;
const int LED_GREEN = 12;
const int BUTTON = 2; // при нажатии на входе LOW
int presses = 0; // номер нажатия: 1, 2 или 3
void setup() {
pinMode(LED_RED, OUTPUT);
pinMode(LED_YELLOW, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(BUTTON, INPUT);
}
void loop() {
if (digitalRead(BUTTON) == LOW) { // кнопка нажата
delay(30); // переждать дребезг
if (digitalRead(BUTTON) == LOW) { // нажатие подтверждено
presses++;
if (presses > 3) {
presses = 1;
}
switch (presses) { // выбор светодиода
case 1: digitalWrite(LED_RED, HIGH); break;
case 2: digitalWrite(LED_YELLOW, HIGH); break;
case 3: digitalWrite(LED_GREEN, HIGH); break;
}
while (digitalRead(BUTTON) == LOW) { // пока удерживается
delay(10);
}
digitalWrite(LED_RED, LOW); // кнопка отпущена
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_GREEN, LOW);
delay(30); // дребезг отпускания
}
}
}