
Выполненные задания:
Управление 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;
}
}

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