LED, RGB LED and Светофор

1. Teema: LED ja RGB LED kasutamine

Задание 1.1
Мигание красного светодиода:

Задание 1.2
Светодиод RGB меняет цвет:

Задание: Светофор

Цель:

Новая действующая модель светофора, имитирующая реальный светофор на перекрестке как для автомобилей, так и для пешеходов. Система должна автоматически переключаться между ночным и дневным режимами. Ночной и дневной режимы должны быть написаны как отдельные функции, вызываемые в loop() в зависимости от ситуации.

Используемые компоненты:

3 светодиода для светофора: красный, желтый, зеленый

2 светодиода для пешеходного светофора: красный, зеленый

Резисторы для светодиодов (220-330Ω)

Arduino Uno

Панель и соединительные провода.

Схема:

Код программы:

// === Объявление пинов для управления светодиодами ===
// Светофор для автомобилей
int redCar = 13;       // Красный свет (машинам стоять)
int yellowCar = 12;    // Жёлтый свет (предупреждение)
int greenCar = 11;     // Зелёный свет (машинам ехать)

// Светофор для пешеходов
int redPer = 10;       // Красный свет (пешеходам стоять)
int greenPer = 9;      // Зелёный свет (пешеходам идти)

// Переменная для определения режима: true — дневной, false — ночной
bool dayMode = true;

void setup() {
  // Настраиваем все пины как выходы (чтобы можно было включать/выключать светодиоды)
  pinMode(redCar, OUTPUT);
  pinMode(yellowCar, OUTPUT);
  pinMode(greenCar, OUTPUT);
  pinMode(redPer, OUTPUT);
  pinMode(greenPer, OUTPUT);
}

// Функция мигания светодиода 3 раза
void blink(int pin) {
  for (int i = 0; i < 3; i++) {
    digitalWrite(pin, LOW);   // Выключить светодиод
    delay(500);               // Подождать 0.5 секунды
    digitalWrite(pin, HIGH);  // Включить светодиод
    delay(500);               // Подождать 0.5 секунды
  }
}

void loop() {
  if (dayMode) {
    // === Шаг 1: Машинам КРАСНЫЙ, пешеходам ЗЕЛЁНЫЙ ===
    digitalWrite(redCar, HIGH);     // Машинам красный
    digitalWrite(yellowCar, LOW);   // Жёлтый выключен
    digitalWrite(greenCar, LOW);    // Зелёный выключен

    digitalWrite(redPer, LOW);      // Пешеходам красный выключен
    digitalWrite(greenPer, HIGH);   // Пешеходам зелёный включен
    delay(5000);                    // Ждём 5 секунд

    // === Шаг 2: Машинам ЖЁЛТЫЙ, пешеходный ЗЕЛЁНЫЙ мигает ===
    digitalWrite(redCar, LOW);      // Машинам красный выключен
    digitalWrite(yellowCar, HIGH);  // Машинам жёлтый включен

    blink(greenPer);                // Пешеходный зелёный мигает 3 раза
    digitalWrite(greenPer, LOW);    // Пешеходный зелёный выключается
    digitalWrite(redPer, HIGH);     // Пешеходам загорается красный

    // === Шаг 3: Машинам ЗЕЛЁНЫЙ, пешеходам КРАСНЫЙ ===
    digitalWrite(yellowCar, LOW);   // Жёлтый выключен
    digitalWrite(greenCar, HIGH);   // Зелёный для машин включён
    delay(5000);                    // Ждём 5 секунд

    // === Шаг 4: Машинный ЗЕЛЁНЫЙ мигает (предупреждение) ===
    blink(greenCar);                // Машинный зелёный мигает 3 раза
    digitalWrite(greenCar, LOW);    // Зелёный выключен
    digitalWrite(redCar, HIGH);     // Машинам снова красный

    // === Переключение на ночной режим ===
    dayMode = false;

  } else {
    // === Ночной режим ===

    // Все пешеходные огни выключены
    digitalWrite(redPer, LOW);
    digitalWrite(greenPer, LOW);

    // Красный и зелёный для машин выключены
    digitalWrite(redCar, LOW);
    digitalWrite(greenCar, LOW);

    // Жёлтый мигает 10 раз (ночной режим предупреждения)
    for (int i = 0; i < 10; i++) {
      digitalWrite(yellowCar, HIGH);  // Включить жёлтый
      delay(500);                     // Полсекунды
      digitalWrite(yellowCar, LOW);   // Выключить
      delay(500);                     // Полсекунды
    }

    // === Возвращение в дневной режим ===
    dayMode = true;
  }
}

Что сделано: Светофор

В этом проекте сделана модель светофора с двумя режимами — дневным и ночным. Используются 5 светодиодов:

  • 3 для машин: красный, жёлтый и зелёный.
  • 2 для пешеходов: красный и зелёный.

Светофором управляет плата Arduino. Вся работа делится на два режима:


Дневной режим

  1. Машины стоят, пешеходы идут:
    • Для машин — красный свет.
    • Для пешеходов — зелёный свет на 5 секунд.
  2. Машины готовятся ехать:
    • Для пешеходов — мерцает зеленый свет.
    • Для машин — жёлтый свет
  3. Машины едут:
    • Зелёный свет для машин включён на 5 секунд.
  4. Машины заканчивают движение:
    • Зелёный мигает 3 раза по 300 мс.

и после дневного режима следует ночной режим


Ночной режим

  • Свет для пешеходов отключён.
  • Красный и зелёный свет для машин тоже выключены.
  • Только жёлтый мигает 10 раз по 500 мс — как предупреждение на ночной дороге.

После этого снова включается дневной режим.

Video:
https://youtube.com/shorts/OCKhMpWUlTA?si=9c9aI5b5LrFO7EH4