// Пины кнопок
#define BUTTON1_PIN 2
#define BUTTON2_PIN 3
#define BUTTON3_PIN 4
// Пины светодиодов
#define GREEN_LED_PIN 8
#define YELLOW_LED_PIN 9
#define BLUE_LED_PIN 10
void setup() {
Serial.begin(9600);
// Кнопки подключены с использованием внутренней подтяжки
// Это значит: кнопка не нажата = HIGH, кнопка нажата = LOW
pinMode(BUTTON1_PIN, INPUT_PULLUP);
pinMode(BUTTON2_PIN, INPUT_PULLUP);
pinMode(BUTTON3_PIN, INPUT_PULLUP);
// Светодиоды как выходы
pinMode(GREEN_LED_PIN, OUTPUT);
pinMode(YELLOW_LED_PIN, OUTPUT);
pinMode(BLUE_LED_PIN, OUTPUT);
// Изначально все светодиоды выключены
digitalWrite(GREEN_LED_PIN, LOW);
digitalWrite(YELLOW_LED_PIN, LOW);
digitalWrite(BLUE_LED_PIN, LOW);
Serial.println("Устройство готово.");
}
void loop() {
// Читаем состояние кнопок
// Так как используется INPUT_PULLUP, нажатие = LOW
int button1State = digitalRead(BUTTON1_PIN);
int button2State = digitalRead(BUTTON2_PIN);
int button3State = digitalRead(BUTTON3_PIN);
// Считаем количество нажатых кнопок
int pressedCount = 0;
if (button1State == LOW) pressedCount++;
if (button2State == LOW) pressedCount++;
if (button3State == LOW) pressedCount++;
// Сначала гасим все светодиоды
digitalWrite(GREEN_LED_PIN, LOW);
digitalWrite(YELLOW_LED_PIN, LOW);
digitalWrite(BLUE_LED_PIN, LOW);
// Включаем нужный светодиод в зависимости от количества нажатых кнопок
if (pressedCount == 1) {
digitalWrite(GREEN_LED_PIN, HIGH);
Serial.println("Нажата 1 кнопка — горит ЗЕЛЁНЫЙ");
}
else if (pressedCount == 2) {
digitalWrite(YELLOW_LED_PIN, HIGH);
Serial.println("Нажаты 2 кнопки — горит ЖЁЛТЫЙ");
}
else if (pressedCount == 3) {
digitalWrite(BLUE_LED_PIN, HIGH);
Serial.println("Нажаты 3 кнопки — горит СИНИЙ");
}
// Небольшая задержка для стабильности считывания
delay(50);
}