Veronika Portfoolio

Projektiülesanne: Valgusfoor

Выполненные задания:

Управление RGB-светодиодом:
Реализация смены основных цветов и создание эффекта радуги с помощью функции analogWrite() и циклического изменения интенсивности цветов.

Изученные функции

ФункцияОписание
pinMode(pin, mode)Устанавливает режим работы пина (вход/выход).
digitalWrite(pin, val)Устанавливает высокий или низкий уровень сигнала на пине.
analogWrite(pin, val)Устанавливает аналоговое значение (ШИМ) на пине.
delay(ms)Задержка выполнения программы на указанное количество миллисекунд.

Описание работы

В рамках проекта был создан макет светофора с использованием Arduino Uno. Система включает в себя два светофора: один для автомобилей, другой для пешеходов. Реализованы два режима работы:

Ночной режим:
Светофоры работают в режиме мигания, предупреждая участников движения о необходимости повышенного внимания.

Дневной режим:
Светофоры переключаются в соответствии с логикой дорожного движения, обеспечивая безопасное пересечение дороги пешеходами и движение автомобилей.

Использованные компоненты

  • Arduino Uno – 1 шт
  • RGB-светодиод – 1 шт
  • Резисторы (220 Ом) – 3 шт
  • Макетная плата (breadboard) – 1 шт
  • Соединительные провода – множественно
  • Источник питания (USB или батарея)

Схема подключения

  • Схема собрана и протестирована в Tinkercad.

Программа

// Машина константы
int redCar = 13;
int yellowCar = 12;
int greenCar = 11;
 
// Пешеход константы
int redPer = 10;
int greenPer = 9;
 
// Вкл дневой режим
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);
    digitalWrite(pin, HIGH);
    delay(500);
  }
}
 
void loop() {
  if (dayMode) {
  // Машинам КРАСНЫЙ, Пешеходам ЗЕЛЁНЫЙ
  digitalWrite(redCar, HIGH);
  digitalWrite(yellowCar, LOW);
  digitalWrite(greenCar, LOW);
 
  digitalWrite(redPer, LOW);
  digitalWrite(greenPer, HIGH);
  delay(5000);
 
  // Машинам ЖЁЛТЫЙ, Пешеходам мигает ЗЕЛЁНЫЙ
  digitalWrite(redCar, LOW); 
  digitalWrite(yellowCar, HIGH);
  blink(greenPer);  // Пешеходный зелёный мигает
  digitalWrite(greenPer, LOW);
  digitalWrite(redPer, HIGH);  // Пешеходам красный
     
  // Машинам ЗЕЛЁНЫЙ, Пешеходам КРАСНЫЙ
  digitalWrite(redCar, LOW);
  digitalWrite(yellowCar, LOW);
  digitalWrite(greenCar, HIGH);
  delay(5000);
 
  // Машинам мигает ЗЕЛЁНЫЙ, Пешеходам всё ещё КРАСНЫЙ
  blink(greenCar);  // Машинный зелёный мигает
  digitalWrite(greenCar, LOW);
  digitalWrite(redCar, HIGH); // Машинам снова красный
 
    // Переключаем на ночной режим
dayMode = false;
  }else {
    // Ночной режим
 
    // Все пешеходные огни выключены
    digitalWrite(redPer, LOW);
    digitalWrite(greenPer, LOW);
 
    // Красный и зелёный для машин выключены
    digitalWrite(redCar, LOW);
    digitalWrite(greenCar, LOW);
 
    // Мигающий жёлтый для машин
    for (int i = 0; i < 10; i++) { // 10 миганий (10 секунд)
      digitalWrite(yellowCar, HIGH);
      delay(500);
      digitalWrite(yellowCar, LOW);
      delay(500);
    }
 
    // Вернуться в дневной режим
    dayMode = true;
  }
}

VIDEO

Возможности применения в повседневной жизни

  • Обучение основам электроники:
    Проект помогает понять принципы работы светодиодов, резисторов и микроконтроллеров.
  • Моделирование реальных ситуаций:
    Использование макета светофора для демонстрации правил дорожного движения.
  • Разработка более сложных систем:
    Базовая модель может быть расширена до полноценной системы управления дорожным движением с датчиками и таймерами.