авторы Jekaterina Guzek, Anna Oleks
Изучаемые функции и компоненты
pinMode()– установка режима работы пинов (вход/выход)digitalWrite()– подача сигнала HIGH/LOW на пинdelay()– задержка выполнения кода
Используемые компоненты:
- Arduino UNO
- 5 светодиодов (красный, жёлтый, зелёный для автомобилей; красный и зелёный для пешеходов)
- 5 резисторов (220 Ом)
- Макетная плата (breadboard)
- Соединительные провода (jumper wires)
Схема соединения:

Проект имитирует работу настоящего перекрёстка:
- Светофор переключается между дневным и ночным режимом.
- В дневном режиме 3 раза проигрывается сценарий движения для машин и пешеходов.
- В ночном режиме мигает только жёлтый свет для автомобилей.
Программа написана в Arduino IDE:
// C++ code
//
void setup()
{
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
}
void loop(){
for(int i = 0; i < 3; i++){
// car red
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
//people green
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
delay(5000);
// people green
for(int i = 0; i<3; i++){ //моргание три раза
digitalWrite(9, LOW);
delay(500);
digitalWrite(9, HIGH);
delay(500);
}
//car yellow
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
// peole last
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
delay(2000);
// car green
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
// people red
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
delay(4000);
// car green
for(int i = 0; i<3; i++){ //моргание три раза
digitalWrite(11, LOW);
delay(500);
digitalWrite(11, HIGH);
delay(500);
digitalWrite(11, LOW);
}
//car yellow
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
delay(2000);
digitalWrite(11, LOW);
}
for(int i = 0; i < 10; i++){
// night
//yellow
digitalWrite(12, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
delay(1000);
digitalWrite(12, LOW);
delay(1000);
}
}
Далее переносим наш проект в Arduino IDE –> там заменили код прописали переменные, для удобства.
const int RED_auto = 13;
const int YELLOW_auto = 12;
const int GREEN_auto = 11;
const int RED_peop = 10;
const int GREEN_peop = 9;
void setup()
{
pinMode(RED_auto, OUTPUT);
pinMode(YELLOW_auto, OUTPUT);
pinMode(GREEN_auto, OUTPUT);
pinMode(RED_peop, OUTPUT);
pinMode(GREEN_peop, OUTPUT);
}
void loop(){
for(int i = 0; i < 3; i++){
// car red
digitalWrite(RED_auto, HIGH);
digitalWrite(YELLOW_auto, LOW);
digitalWrite(GREEN_auto, LOW);
//people green
digitalWrite(RED_peop, LOW);
digitalWrite(GREEN_peop, HIGH);
delay(5000);
// people green
for(int i = 0; i<3; i++){ //моргание три раза
digitalWrite(GREEN_peop, LOW);
delay(500);
digitalWrite(GREEN_peop, HIGH);
delay(500);
}
//car yellow
digitalWrite(RED_auto, LOW);
digitalWrite(YELLOW_auto, HIGH);
digitalWrite(GREEN_auto, LOW);
// peole last
digitalWrite(RED_peop, HIGH);
digitalWrite(GREEN_peop, LOW);
delay(2000);
// car green
digitalWrite(RED_auto, LOW);
digitalWrite(YELLOW_auto, LOW);
digitalWrite(GREEN_auto, HIGH);
// people red
digitalWrite(RED_peop, HIGH);
digitalWrite(GREEN_peop, LOW);
delay(4000);
// car green
for(int i = 0; i<3; i++){ //моргание три раза
digitalWrite(GREEN_auto, LOW);
delay(500);
digitalWrite(GREEN_auto, HIGH);
delay(500);
digitalWrite(GREEN_auto, LOW);
}
//car yellow
digitalWrite(RED_auto, LOW);
digitalWrite(YELLOW_auto, HIGH);
delay(2000);
digitalWrite(GREEN_auto, LOW);
}
for(int i = 0; i < 5; i++){
// night
//yellow
digitalWrite(YELLOW_auto, HIGH);
digitalWrite(GREEN_peop, LOW);
digitalWrite(RED_peop, LOW);
delay(1000);
digitalWrite(YELLOW_auto, LOW);
delay(1000);
}
}

Процесс работы:
Проект имитирует работу настоящего перекрёстка:
- Светофор переключается между дневным и ночным режимом.
- В дневном режиме 3 раза проигрывается сценарий движения для машин и пешеходов.
- В ночном режиме мигает только жёлтый свет для автомобилей.
Дневной режим
- Автомобильный светофор: верхние лампы — красный, жёлтый, зелёный.
- Пешеходный светофор: нижние две лампы — зелёный, красный.
- Цикл начинается с красного сигнала для авто и зелёного — для пешеходов.
- Зелёный пешеходный мигает три раза, потом выключается.
- Одновременно гаснет красный для авто, и включается жёлтый.
- Через 2 секунды — зелёный для авто.
- В конце фазы — зелёный для авто мигает трижды, после чего переключается на жёлтый.
- Снова включается красный для авто и зелёный для пешеходов.
Ночной режим (один для всех)
В ночное время у светофора машины получают только мигающий жёлтый сигнал. А пешеходный светофор в это время отдыхает — не работает вовсе.
Видео работы светофора:
Возможности использования в повседневной жизни
- Модель для изучения правил дорожного движения
- Демонстрация работы светофора в школах и кружках
- Вариант проекта для начального уровня по робототехнике

