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


#include <Arduino.h>

const int carRed = 2;
const int carYellow = 3;
const int carGreen = 4;

const int pedRed = 5;
const int pedGreen = 6;

const int button = 7;

void setup() {
  pinMode(carRed, OUTPUT);
  pinMode(carYellow, OUTPUT);
  pinMode(carGreen, OUTPUT);

  pinMode(pedRed, OUTPUT);
  pinMode(pedGreen, OUTPUT);

  pinMode(button, INPUT_PULLUP);

  // Исходное состояние
  digitalWrite(carGreen, HIGH);
  digitalWrite(carYellow, LOW);
  digitalWrite(carRed, LOW);

  digitalWrite(pedRed, HIGH);
  digitalWrite(pedGreen, LOW);
}

void loop() {
  // Проверяем нажатие кнопки
  if (digitalRead(button) == LOW) {
    delay(50);

    if (digitalRead(button) == LOW) {

      // Ждём отпускания кнопки
      while (digitalRead(button) == LOW) {
        delay(10);
      }

      // Ждём 3 секунды
      delay(3000);

      // Автомобильный зелёный мигает 3 раза
      for (int i = 0; i < 3; i++) {
        digitalWrite(carGreen, LOW);
        delay(500);

        digitalWrite(carGreen, HIGH);
        delay(500);
      }

      // Автомобильный жёлтый на 2 секунды
      digitalWrite(carGreen, LOW);
      digitalWrite(carYellow, HIGH);
      delay(2000);

      // Автомобильный красный
      digitalWrite(carYellow, LOW);
      digitalWrite(carRed, HIGH);

      // Ждём 1 секунду
      delay(1000);

      // Пешеходам разрешён переход
      digitalWrite(pedRed, LOW);
      digitalWrite(pedGreen, HIGH);
      delay(5000);

      // Пешеходам запрещён переход
      digitalWrite(pedGreen, LOW);
      digitalWrite(pedRed, HIGH);

      // Ждём 1 секунду
      delay(1000);

      // Возвращаем исходное состояние
      digitalWrite(carRed, LOW);
      digitalWrite(carGreen, HIGH);
    }
  }
}