// Definizioni
#define tempoVerde 2500
#define tempoGiallo 500
#define tempoRosso 3000
#define pinVerde 4
#define pinGiallo 3
#define pinRosso 2
void setup() {
// Definisce le luci del semaforo come uscite
pinMode(pinVerde, OUTPUT);
pinMode(pinGiallo, OUTPUT);
pinMode(pinRosso, OUTPUT);
// Spegne le eventuali luci accese in precedenza
digitalWrite(pinVerde, LOW);
digitalWrite(pinGiallo, LOW);
digitalWrite(pinRosso, LOW);
}
void loop() {
// Controllo del semaforo
Semaforo(pinVerde, tempoVerde);
Semaforo(pinGiallo, tempoGiallo);
Semaforo(pinRosso, tempoRosso);
}
// Gestione singolo evento del semaforo
void Semaforo(int luce, int tempo) {
// Accende la luce richiesta per il tempo desiderato
digitalWrite(luce, HIGH);
delay(tempo);
// La spegne
digitalWrite(luce, LOW);
}