Пока ехало реле и нано из китая репетировал на тренировочной плате и светодиодах
Идея сформировалась и первоначально вышел такой код
/*
Мигалка
Включает диоды на одну секунду, затем выключает все кроме последнего.
*/
// К контакту d2 подключен красный 1 светодиод
// К контакту d3 подключен красный 2 светодиод
// К контакту d4 подключен желтый 1 светодиод
// К контакту d5 подключен желтый 2 светодиод
// К контакту d6 подключен зеленый 1 светодиод
// Дадим им имя:
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;
// Процедура установки запускается один раз при нажатии кнопки сброса:
void setup(){
// инициализируем цифровой вывод как выход:
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
}
// основной цикл:
void loop() {
digitalWrite(led1, HIGH); // включить светодиод красный 1
delay(1000); // ждать секунду
digitalWrite(led2, HIGH); // включить светодиод красный 2
delay(1000); // ждать секунду
digitalWrite(led3, HIGH); // включить светодиод желтый 1
delay(1000); // ждать секунду
digitalWrite(led4, HIGH); // включить светодиод желтый 2
delay(1000); // ждать секунду
digitalWrite(led1, LOW); // выключить светодиод красный 1
digitalWrite(led2, LOW); // выключить светодиод красный 2
digitalWrite(led5, HIGH); // включить светодиод зеленый 1
delay(1000); // ждать секунду
Диоды включаются по очереди с интервалом в 1 сек. Потом перед включением зеленого диода тухли красные и загорался зеленый — типа старт.
Потом по просьбе заказчиков пришлось поменять алгоритм, благо ардуино програмируется без проблем. Собственно это одна из причин почему все сделано на ардуино, заказчики не смогли определится с алгоритмом работы будущего светофора.