#define VERDE 0 #define GIALLO 1 #define ROSSO 2 int semaforo1[] = { 8, 9, 10 }; int semaforo2[] = { 5, 6, 7 }; int ritardo = 2000; void setup(){ for(int i = 0; i < 3; i++){ pinMode(semaforo1[i], OUTPUT); pinMode(semaforo2[i], OUTPUT); } } void loop(){ cambiaLuce(semaforo2, ROSSO); cambiaLuce(semaforo1, VERDE); delay(ritardo); cambiaLuce(semaforo1, GIALLO); delay(ritardo/2); cambiaLuce(semaforo1, ROSSO); cambiaLuce(semaforo2, VERDE); delay(ritardo); cambiaLuce(semaforo2, GIALLO); delay(ritardo/2); } void cambiaLuce(int semaforo[], int luce){ for(int i = 0; i < 3; i++){ if(i == luce){ digitalWrite(semaforo[i], HIGH); }else{ digitalWrite(semaforo[i], LOW); } } }