Re: programma per semplice semaforo

Ricordo un lavoro fatto nel 2000 per la programmazione di una centralina semaforica.

Si parlava di "verdi nemici" e tempi variabili di ciclo a fascie orarie, sensori (spire) di flusso veicolare, pulsanti pedonali, watchdog, ecc.

La materia, nella realtà, è molto più complicata di quanto possa sembrare.

Comunque, nella tua "tabella della verità" iniziale ha dimenticato il caso "tutto rosso" (un telecomando a bordo di un mezzo di soccorso fa scattare il rosso su tutte le direzioni).

Lascia perdere il delay() ed utilizza il millis() usando unsigned long e ricordando che dopo 55 giorni il timer interno si azzera e prevedendo questo caso.

Molto meglio se usassi un interrupt da timer/counter overflow per avere una base oraria affidabile, ma per iniziare va bene il millis