/*SEMAFORI PER DUE VIE
autore: Salomone Noah
data: 08/01/24
VERSIONE: 1.0
*/
// DICHIARO MAPPA DELLE LINEE DI USCITA
const int R1 = 13;
const int R2 = 10;
const int V1 = 11;
const int V2 = 8;
const int G1 = 12;
const int G2 = 9;
void setup() {
// imposto pin come uscita digitale
pinMode(R1,OUTPUT);
pinMode(R2,OUTPUT);
pinMode(V1,OUTPUT);
pinMode(V2,OUTPUT);
pinMode(G1,OUTPUT);
pinMode(G2,OUTPUT);
}
void loop() {
// fase 1: accendere R1 e R2 per 2 secondi
digitalWrite(R1,HIGH);
digitalWrite(R2,HIGH);
digitalWrite(V1,LOW);
digitalWrite(V2,LOW);
digitalWrite(G1,LOW);
digitalWrite(G2,LOW);
delay(2000);
// fase 2: accndere V1 e R2 per 10 seocondi
digitalWrite(R1, LOW);
digitalWrite(R2,HIGH);
digitalWrite(V1,HIGH);
digitalWrite(V2,LOW);
digitalWrite(G1,LOW);
digitalWrite(G2,LOW);
delay(10000);
// fase 3: accendere G1 e R2 per 3 secondi e spegnere V1
digitalWrite(R1, LOW);
digitalWrite(R2,HIGH);
digitalWrite(V1,LOW);
digitalWrite(V2,LOW);
digitalWrite(G1,HIGH);
digitalWrite(G2,LOW);
delay(3000);
// fase 4: accnedere R1 e R2 per 2 secondi e spegnere G1
digitalWrite(R1, HIGH);
digitalWrite(R2,HIGH);
digitalWrite(V1,LOW);
digitalWrite(V2,LOW);
digitalWrite(G1,LOW);
digitalWrite(G2,LOW);
delay(2000);
// fase 5: accendere V2 e R1 per 10 secondi e spegnere R2
digitalWrite(R1,HIGH);
digitalWrite(R2,LOW);
digitalWrite(V1,LOW);
digitalWrite(V2,HIGH);
digitalWrite(G1,LOW);
digitalWrite(G2,LOW);
delay(10000);
// fase 6: accendere G2 e R1 per 3 secondi e spegnere V2
digitalWrite(R1,HIGH);
digitalWrite(R2,LOW);
digitalWrite(V1,LOW);
digitalWrite(V2,LOW);
digitalWrite(G1,LOW);
digitalWrite(G2,HIGH);
delay(3000);
}