Простая схема светофора для синхронизированной регулировки автомобильного и пешеходного трафика.

Комплектующие
Все необходимые комплектующие и даже чуть больше есть в минимальном стартовом наборе Arduino — https://bit.ly/2QgTPvF
- Arduino Uno — https://bit.ly/2P3rCI5
- беспаечная макетная плата — https://bit.ly/3goWOwQ
- светодиоды — https://bit.ly/3swTa6t
- ограничивающий резистор — 220 Ом или аналогичный — https://bit.ly/3swTpyp
- провода папа-папа, мама-мама, папа-мама 10-30 см — https://bit.ly/3n3z0jl
Схема подключения

Скетч
Светофор на Arduino управляет простым скетчем, который можно персонализировать под себя. Строки 22, 27 и 31 задают время свечения того или иного из цветов в миллисекундах.
Мигание зелёных задаётся функцией blinkLed (int pinLed)
, которая два раза вызывается в алгоритме светофора. В самой функции также можно изменять частоту и длительность мигания.
Дополнительные подробности указаны в комментариях в скетче.
// Светофор.
int red = 13; // Объявляем переменные.
int yellow = 12;
int green = 11;
int redP = 10;
int greenP = 9;
void setup()
{
pinMode (red, OUTPUT); // Делаем пины со светодиодами ВЫХОДОМ.
pinMode (yellow, OUTPUT);
pinMode (green, OUTPUT);
pinMode (redP, OUTPUT);
pinMode (greenP, OUTPUT);
}
void loop()
{
digitalWrite (red, HIGH); // Включаем красный автомобильный.
digitalWrite (greenP, HIGH); // Включаем зелёный пешеходный.
delay (7000); // Время ожидания.
blinkLed (greenP); // Вызываем функцию мигания зелёного пешеходного.
digitalWrite (greenP, LOW); // Выключаем зелёный пешеходный.
digitalWrite (redP, HIGH); // Включаем красный пешеходный.
digitalWrite (yellow, HIGH); // Включаем жёлый.
delay (3000); // Время ожидания.
digitalWrite (red, LOW); // Выключаем красный автомобильный.
digitalWrite (yellow, LOW); // Выключаем жёлтый.
digitalWrite (green, HIGH); // Включаем зелёный автомобильный.
delay (7000); // Время ожидания.
blinkLed (green); // Вызываем функцию мигания зелёного автомобильного.
digitalWrite (green, LOW); // Выключаем зелёный авмтобильный.
digitalWrite (yellow, HIGH); // Включаем жёлтый
delay (3000); // Время ожидания.
digitalWrite (redP, LOW); // Выключаем красный пешеходный.
digitalWrite (yellow, LOW); // Выключаем жёлтый.
}
void blinkLed (int pinLed) { // Функция мигания.
for (int i = 0; i <= 4; i++) { // 4 - сколько раз надо мигнуть.
digitalWrite (pinLed, LOW);
delay (200); // Как часто мигать.
digitalWrite (pinLed, HIGH);
delay (200);
} // Как часто мигать.
}