/*
TITOLO: semaforo a due vie standard italiano
AUTORE: Luca D'Amore
CLASSE: 2ELEA
DATA: 08/01/2024
VERSIONE: 1.0
*/
// dichiaro la mappa delle linee di uscita
// come variabili GLOBALI visibili da tutte le function
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() {
// variabile locale della funzione setup
int i = 0;
// configuro i sei pin come uscite per accendere i led
pinMode(pinR1, OUTPUT);
pinMode(pinG1, OUTPUT);
pinMode(pinV1, OUTPUT);
pinMode(pinR2, OUTPUT);
pinMode(pinG2, OUTPUT);
pinMode(pinV2, OUTPUT);
}
void loop() {
// aggiorno la variabile i
int i = 12;
// Fase 1: R1, R2 accesi per 2 secondi
digitalWrite(pinR1, HIGH);
digitalWrite(pinR2, HIGH);
digitalWrite(pinG1, LOW);
digitalWrite(pinG2, LOW);
digitalWrite(pinV1, LOW);
digitalWrite(pinV2, LOW);
delay(2000);
// Fase 2: V1, R2 accesi per 10 secondi
digitalWrite(pinR1, LOW);
digitalWrite(pinR2, HIGH);
digitalWrite(pinG1, LOW);
digitalWrite(pinG2, LOW);
digitalWrite(pinV1, HIGH);
digitalWrite(pinV2, LOW);
delay(10000);
// Fase 3: G1, R2, accesi per 3 secondi
digitalWrite(pinR1, LOW);
digitalWrite(pinR2, HIGH);
digitalWrite(pinG1, HIGH);
digitalWrite(pinG2, LOW);
digitalWrite(pinV1, LOW);
digitalWrite(pinV2, LOW);
delay(3000);
// Fase 4: R1, R2 accesi per 2 secondi
digitalWrite(pinR1, HIGH);
digitalWrite(pinR2, HIGH);
digitalWrite(pinG1, LOW);
digitalWrite(pinG2, LOW);
digitalWrite(pinV1, LOW);
digitalWrite(pinV2, LOW);
delay(2000);
// Fase 5: R1, V2 accesi per 10 secondi
digitalWrite(pinR1, HIGH);
digitalWrite(pinR2, LOW);
digitalWrite(pinG1, LOW);
digitalWrite(pinG2, LOW);
digitalWrite(pinV1, LOW);
digitalWrite(pinV2, HIGH);
delay(10000);
// Fase 6: R1, G2, accesi per 3 secondi
digitalWrite(pinR1, HIGH);
digitalWrite(pinR2, LOW);
digitalWrite(pinG1, LOW);
digitalWrite(pinG2, HIGH);
digitalWrite(pinV1, LOW);
digitalWrite(pinV2, LOW);
delay(3000);
}