Semaforo a due direzioni

 Semaforo a due direzioni html d159e4cc2416e881

  

Il codice

 

#define rossoA 13

#define gialloA 12

#define verdeA 11

#define rossoB 10

#define gialloB 9

#define verdeB 8

#define puls 2

boolean statoP = LOW;

 

void setup() {

for (int i = 8; i < 14; i++) {

pinMode(i, OUTPUT);

}

pinMode(puls, INPUT);

}

 

void loop() {

if (digitalRead(puls) == HIGH) statoP = !statoP ;

 

delay(250);

 

if (statoP == true) {

digitalWrite(rossoB, HIGH);

digitalWrite(rossoA, LOW);

digitalWrite(verdeA, HIGH);

delay(6000);

digitalWrite(verdeA, LOW);

digitalWrite(gialloA, HIGH);

delay(1500);

digitalWrite(gialloA, LOW);

digitalWrite(verdeA, LOW);

digitalWrite(rossoA, HIGH);

digitalWrite(rossoB, LOW);

digitalWrite(verdeB, HIGH);

delay(6000);

digitalWrite(verdeB, LOW);

digitalWrite(gialloB, HIGH);

delay(1500);

digitalWrite(gialloB, LOW);

}

 

if (statoP == false) {

digitalWrite(rossoA, LOW);

digitalWrite(rossoB, LOW);

digitalWrite(verdeA, LOW);

digitalWrite(verdeB, LOW);

digitalWrite(gialloA, HIGH);

digitalWrite(gialloB, HIGH);

delay(1000);

digitalWrite(gialloA, LOW);

digitalWrite(gialloB, LOW);

delay(1000);

}

 

}