// Даём пинам понятные имена constexpr int BUZZER_PIN = 4; constexpr int LED_ONE_PIN = 3; constexpr int LED_TWO_PIN = 5; constexpr int BUTTON_ONE_PIN = 2; constexpr int BUTTON_TWO_PIN = 6; void setup() { // Настраиваем пин с пищалкой в режим выхода pinMode(BUZZER_PIN, OUTPUT); // Настраиваем пины со светодиодами в режим выхода pinMode(LED_ONE_PIN, OUTPUT); pinMode(LED_TWO_PIN, OUTPUT); // Настраиваем пины с кнопкой в режим входа с подтяжкой к питанию pinMode(BUTTON_ONE_PIN, INPUT_PULLUP); pinMode(BUTTON_TWO_PIN, INPUT_PULLUP); // Передаём случайное число с пина A0 // для последующей генерации случайных чисел randomSeed(analogRead(A0)); } void loop() { // Выжидаем случайное время от 2 до 10 секунд delay(random(2000, 10000)); // Даём сигнал «пли!» // Пищим 250 миллисекунд с частотой 3 килогерца tone(BUZZER_PIN, 3000, 250); // Запускаем бесконечный цикл while while (true) { // Считываем состояния кнопок двух игроков bool buttonPlayerOne = !digitalRead(BUTTON_ONE_PIN); bool buttonPlayerTwo = !digitalRead(BUTTON_TWO_PIN); // Проверяем, нажата ли одна из кнопок. if (buttonPlayerOne || buttonPlayerTwo) { if (buttonPlayerOne) { // Если на кнопку нажал первый игрок // Зажигаем первый светодиод на 1000 мс // Выводим звуковой сигнал 4000 Гц / 1000 мс digitalWrite(LED_ONE_PIN, HIGH); tone(BUZZER_PIN, 4000, 1000); delay(1000); digitalWrite(LED_ONE_PIN, LOW); // Если на кнопку нажал второй игрок // Зажигаем первый светодиод на 1000 мс // Выводим звуковой сигнал 4000 Гц / 1000 мс } else if (buttonPlayerTwo) { digitalWrite(LED_TWO_PIN, HIGH); tone(BUZZER_PIN, 4000, 1000); delay(1000); digitalWrite(LED_TWO_PIN, LOW); } // Выходим из бесконечного цикла break; } } }