/*TITOLO: semaforo per due vie tedesco
AUTORE: Noah Salomone
DATA: 10/01/24
VERSIONE 1.0
*/
// DICHIARO MAPPA LINEE USCITA
const int pinR1 = 13;
const int pinG1 = 12;
const int pinV1 = 11;
const int pinR2 = 10;
const int pinG2 = 9;
const int pinV2 = 8;
void setup() {
// imposto pin come uscita digitale
pinMode(pinR1, OUTPUT);
pinMode(pinG1, OUTPUT);
pinMode(pinV1, OUTPUT);
pinMode(pinR2, OUTPUT);
pinMode(pinG2, OUTPUT);
pinMode(pinV2, OUTPUT);
}
void loop() {
// fase 1: accendere R1 e R2 per 2 secondi
digitalWrite(pinR1, HIGH);
digitalWrite(pinR2, HIGH);
digitalWrite(pinV1, LOW);
digitalWrite(pinV2, LOW);
digitalWrite(pinG1, LOW);
digitalWrite(pinG2, LOW);
delay(2000);
// fase 2: spegnere R1 e accendere R2 e G1 per 2 secondi
digitalWrite(pinR1, LOW);
digitalWrite(pinR2, HIGH);
digitalWrite(pinV1, LOW);
digitalWrite(pinV2, LOW);
digitalWrite(pinG1, HIGH);
digitalWrite(pinG2, LOW);
delay(2000);
// fase 3: spegnere G1 e accendere R2 e V1 per 10 secondi
digitalWrite(pinR1, LOW);
digitalWrite(pinR2, HIGH);
digitalWrite(pinV1, HIGH);
digitalWrite(pinV2, LOW);
digitalWrite(pinG1, LOW);
digitalWrite(pinG2, LOW);
delay(10000);
// fase 4: accendere R2, V1 e G1 per 3 secondi
digitalWrite(pinR1, LOW);
digitalWrite(pinR2, HIGH);
digitalWrite(pinV1, HIGH);
digitalWrite(pinV2, LOW);
digitalWrite(pinG1, HIGH);
digitalWrite(pinG2, LOW);
delay(3000);
// fase 5: spegnere G1 e V1 e accendere R1 e R2 per 2 secondi
digitalWrite(pinR1, HIGH);
digitalWrite(pinR2, HIGH);
digitalWrite(pinV1, LOW);
digitalWrite(pinV2, LOW);
digitalWrite(pinG1, LOW);
digitalWrite(pinG2, LOW);
delay(2000);
// fase 6: spegnere R2 e accendere R1 e G2 per 2 secondi
digitalWrite(pinR1, HIGH);
digitalWrite(pinR2, LOW);
digitalWrite(pinV1, LOW);
digitalWrite(pinV2, LOW);
digitalWrite(pinG1, LOW);
digitalWrite(pinG2, HIGH);
delay(2000);
//fase 7: spegnere G2 e accendere R1 e V2 per 10 secondi
digitalWrite(pinR1, HIGH);
digitalWrite(pinR2, LOW);
digitalWrite(pinV1, LOW);
digitalWrite(pinV2, HIGH);
digitalWrite(pinG1, LOW);
digitalWrite(pinG2, LOW);
delay(10000);
// fase 8: accendere R1, G2 e V2 per 3 secondi
digitalWrite(pinR1, HIGH);
digitalWrite(pinR2, LOW);
digitalWrite(pinV1, LOW);
digitalWrite(pinV2, HIGH);
digitalWrite(pinG1, LOW);
digitalWrite(pinG2, HIGH);
delay(3000);
}