//Progetto Semaforo 2
const int Interruttore = 4; // Ingresso Interruttore ON / OFF
const int Rosso1 = 13; // Semaforo 1 Rosso
const int Giallo1 = 12; // Semaforo 1 Giallo
const int Verde1 = 9; // Semaforo 1 Verde
const int Rosso2 = 6; // Semaforo 2 Rosso
const int Giallo2 = 7; // Semaforo 2 Giallo
const int Verde2 = 8; // Semaforo 2 Verde
void setup() {
pinMode(Interruttore, INPUT); // Interruttore come Ingresso
pinMode(Rosso1, OUTPUT); // Semaforo 1 Rosso come Uscita
pinMode(Giallo1, OUTPUT); // Semaforo 1 Giallo come Uscita
pinMode(Verde1, OUTPUT); // Semaforo 1 Verde come Uscita
pinMode(Rosso2, OUTPUT); // Semaforo 2 Rosso come Uscita
pinMode(Giallo2, OUTPUT); // Semaforo 2 Giallo come Uscita
pinMode(Verde2, OUTPUT); // Semaforo 2 Verde come Uscita
}
void loop() {
// Se l'interruttore è LOW mettere i Semafori in Giallo Lampeggiante
// Altrimenti Accendi i semafori
if (digitalRead(Interruttore) == LOW) {
SemaforiSpenti();
} else {
SemaforiAccesi();
}
}
// Gialli Lampeggianti Semaforo Spento
void SemaforiSpenti () {
digitalWrite(Rosso1, LOW); // Spegni Rosso su Semaforo 1
digitalWrite(Rosso2, LOW); // Spegni Rosso su Semaforo 2
digitalWrite(Verde1, LOW); // Spegni Verde su Semaforo 1
digitalWrite(Verde2, LOW); // Spegni Verde su Semaforo 2
digitalWrite(Giallo1, HIGH); // Accendi Giallo su Semaforo 1
digitalWrite(Giallo2, HIGH); // Accendi Giallo su Semaforo 2
delay(1000); // Tempo Lampeggio Accesso
digitalWrite(Giallo1, LOW); // Spegni Giallo su Semaforo 1
digitalWrite(Giallo2, LOW); // Spegni Giallo su Semaforo 2
delay(1000); // Tempo Lampeggio Spento
}
// Sequenza Semaforo
void SemaforiAccesi() {
digitalWrite(Rosso2, HIGH); // Accendi il Rosso su Semaforo 2
digitalWrite(Rosso1, HIGH); // Accendi il Rosso su Semaforo 1
delay(500); // Attesa Verde sul Semaforo 1
digitalWrite(Rosso1, LOW); // Spegni il Rosso su Semaforo 1
digitalWrite(Verde1, HIGH); // Accendi il Verde su Semaforo 1
delay(7000); // Attesa Cambio Colore
digitalWrite(Verde1, LOW); // Spegni il Verde su Semaforo 1
digitalWrite(Giallo1, HIGH); // Accendi il Giallo su Semaforo 1
delay(1500); // Attesa Cambio Colore
digitalWrite(Giallo1, LOW); // Spegni il Giallo su Semaforo 1
digitalWrite(Rosso1, HIGH); // Accendi il Rosso su Semaforo 1
delay(1500); // Attesa Verde sul Semaforo 2
digitalWrite(Rosso2, LOW); // Spegni il Rosso su Semaforo 2
digitalWrite(Verde2, HIGH); //Accendi il Verde su Semaforo 2
delay(7000); // Attesa Cambio Colore
digitalWrite(Verde2, LOW); // Spegni il Verde su Semaforo 2
digitalWrite(Giallo2, HIGH); // Accendi il Giallo su Semaforo 2
delay(1500); // Attesa Cambio Colore
digitalWrite(Giallo2, LOW); // Spegni il Giallo su Semaforo 2
}