Загрузка данных


// Пины кнопок
#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);
}