int Spin = A3;
int greenN1 = A0;
int yellowN1 = A1;
int redN1 = A2;
int orangePedN1 = 2;
int whitePedN1 = 3;
int greenE1 = A4;
int yellowE1 = A5;
int redE1 = A6;
int orangePedE1 = 4;
int whitePedE1 = 5;
int greenN2 = A8;
int yellowN2 =A9;
int redN2 = A10;
int orangePedN2 = 6;
int whitePedN2 = 7;
int greenE2 = A12;
int yellowE2 = A13;
int redE2 = A14;
int orangePedE2 = 8;
int whitePedE2 = 9;
int T1delay = 1000; //1000
int T2delay = 9000; //9000
byte state = 2 , transition;
void setup() {
pinMode(Spin, INPUT); // input
Serial.begin(9600);
pinMode(greenN1, OUTPUT); // LED1 A0; // zone 1 north south
pinMode(yellowN1, OUTPUT); // LED2 A1; // zone 1 north south
pinMode(redN1, OUTPUT); // LED3 A2; // zone 1 north south
pinMode(orangePedN1, OUTPUT); // LED4 2; // zone 1 north south
pinMode(whitePedN1, OUTPUT); // LED5 3; // zone 1 north south
pinMode(greenE1, OUTPUT); // LED6 A4; // zone 1 east west
pinMode(yellowE1, OUTPUT); // LED7 A5; // zone 1 east west
pinMode(redE1, OUTPUT); // LED8 A6; // zone 1 east west
pinMode(orangePedE1,OUTPUT); // LED9 4 ; // zone 1 neast west
pinMode(whitePedE1, OUTPUT); // LED10 5; // zone 1 east west
pinMode(greenN2, OUTPUT); // LED11 A8; // zone 2 north south
pinMode(yellowN2, OUTPUT); // LED12 A9; // zone 2 north south
pinMode(redN2, OUTPUT); // LED13 A10;// zone 2 north south
pinMode(orangePedN2,OUTPUT); // LED14 6; // zone 2 north south
pinMode(whitePedN2, OUTPUT); // LED15 7; // zone 2 north south
pinMode(greenE2, OUTPUT); // LED16 A12;// zone 2 east west
pinMode(yellowE2, OUTPUT); // LED17 A13;// zone 2 east west
pinMode(redE2, OUTPUT); // LED18 A14;// zone 2 east west
pinMode(orangePedE2,OUTPUT); // LED19 8; // zone 2 east west
pinMode(whitePedE2, OUTPUT); // LED20 9; // zone 2 east west
}
void loop() {
switch(state) {
case 1: // blinking Traffic
if(digitalRead(Spin) == LOW) transition = 1;
Serial.println("state blinking Traffic");
Serial.println(transition);
break;
case 2: // start Traffic
if(digitalRead(Spin) == HIGH) transition = 2;
Serial.println("state start Traffic");
Serial.println(transition);
break;
}
switch(transition) {
case 1: // blinking Traffic
Serial.println("start north/south Traffic zone 2");
for (int x=0; x<12; x++){
digitalWrite(greenN1, LOW);
digitalWrite(yellowN1, LOW);
digitalWrite(redN1, HIGH);
digitalWrite(orangePedN1,HIGH);
digitalWrite(whitePedN1, LOW);
digitalWrite(greenE1, LOW);
digitalWrite(yellowE1, LOW);
digitalWrite(redE1, HIGH);
digitalWrite(orangePedE1, HIGH);
digitalWrite(whitePedE1,LOW);
digitalWrite(greenN2, LOW);
digitalWrite(yellowN2, LOW);
digitalWrite(redN2, LOW);
digitalWrite(orangePedN2,LOW);
digitalWrite(whitePedN2, LOW);
digitalWrite(greenE2, LOW);
digitalWrite(yellowE2, LOW);
digitalWrite(redE2, LOW);
digitalWrite(orangePedE2, LOW);
digitalWrite(whitePedE2,LOW);
delay(250);
digitalWrite(redN1, LOW);
digitalWrite(redN2, HIGH);
digitalWrite(redE1, LOW);
digitalWrite(redE2, HIGH);
digitalWrite(orangePedN1,LOW);
digitalWrite(orangePedN2,HIGH);
digitalWrite(orangePedE1,LOW);
digitalWrite(orangePedE2,HIGH);
delay(250);
}
transition = 1;
state = 2;
break;
case 2:
Serial.println("start north/south Traffic zone 1");
// start north/south Traffic zone 1
digitalWrite(greenN1, HIGH);
digitalWrite(yellowN1, LOW);
digitalWrite(redN1, LOW);
digitalWrite(orangePedN1,LOW);
digitalWrite(whitePedN1, HIGH);
digitalWrite(greenE1, LOW);
digitalWrite(yellowE1, LOW);
digitalWrite(redE1, HIGH);
digitalWrite(orangePedE1, HIGH);
digitalWrite(whitePedE1,LOW);
delay(T1delay); // Hold green light for 1 seconds
Serial.println("start north/south Traffic zone 2");
// start north/south Traffic zone 2
digitalWrite(greenN2, HIGH);
digitalWrite(yellowN2, LOW);
digitalWrite(redN2, LOW);
digitalWrite(orangePedN2,LOW);
digitalWrite(whitePedN2, HIGH);
digitalWrite(greenE2, LOW);
digitalWrite(yellowE2, LOW);
digitalWrite(redE2, HIGH);
digitalWrite(orangePedE2, HIGH);
digitalWrite(whitePedE2,LOW);
delay(T2delay); //north/south run green for T2delay
Serial.println("step 1 Turn north/south zone 1 Yellow");
//step 1 Turn north/south zone 1 Yellow
for (int x=0; x<4; x++){ //flashing of pedestrian //++x; increment x by one and returns the new value of x
digitalWrite(greenN1, LOW);
digitalWrite(yellowN1, HIGH);
digitalWrite(redN1, LOW);
digitalWrite(orangePedN1, HIGH);
digitalWrite(whitePedN1, LOW);
delay(250);
digitalWrite(orangePedN1,LOW);
delay(250);
}
Serial.println("step 2 Turn north/south zone 2 Yellow");
//step 2 Turn north/south zone 2 Yellow
for (int x=0; x<8; x++){ //flashing of pedestrian
digitalWrite(greenN1, LOW);
digitalWrite(yellowN1, HIGH);
digitalWrite(redN1, LOW);
digitalWrite(orangePedN1, HIGH);
digitalWrite(whitePedN1, LOW);
digitalWrite(greenN2, LOW);
digitalWrite(yellowN2, HIGH);
digitalWrite(redN2, LOW);
digitalWrite(orangePedN2,HIGH);
digitalWrite(whitePedN2, LOW);
delay(250);
digitalWrite(orangePedN1,LOW);
digitalWrite(orangePedN2,LOW);
delay(250);
}
Serial.println("step 3 Turn north/south zone 1 red and east/west zone 1 green");
//step 3 Turn north/south zone 1 red and east/west zone 1 green
for (int x=0; x<4; x++){ //flashing of pedestrian
digitalWrite(yellowN1, LOW);
digitalWrite(yellowN2, HIGH);
digitalWrite(redN1, HIGH);
digitalWrite(redE1, LOW);
digitalWrite(greenE1, HIGH);
digitalWrite(whitePedE1, HIGH);
digitalWrite(orangePedE1,LOW);
digitalWrite(orangePedN1, HIGH);
digitalWrite(orangePedN2, HIGH);
delay(250);
digitalWrite(orangePedN2,LOW);
delay(250);
}
Serial.println("step 4 Turn north/south zone 2 red and east/west zone 2 green");
//step 4 Turn north/south zone 2 red and east/west zone 2 green
digitalWrite(yellowN2, LOW);
digitalWrite(redN2, HIGH);
digitalWrite(redE2, LOW);
digitalWrite(greenE2, HIGH);
digitalWrite(whitePedE2, HIGH);
digitalWrite(orangePedN2, HIGH);
digitalWrite(orangePedE2, LOW);
delay(T2delay); //east/west run green for T2delay
Serial.println("step 1 Turn east/west zone 1 Yellow");
// step 1 Turn east/west zone 1 Yellow
for (int x=0; x<4; x++){ //flashing of pedestrian
digitalWrite(greenE1, LOW);
digitalWrite(yellowE1, HIGH);
digitalWrite(redE1, LOW);
digitalWrite(orangePedE1, HIGH);
digitalWrite(whitePedE1, LOW);
delay(250);
digitalWrite(orangePedE1,LOW);
delay(250);
}
Serial.println("step 2 Turn east/west zone 2 Yellow");
//step 2 Turn east/west zone 2 Yellow
for (int x=0; x<8; x++){ //flashing of pedestrian
digitalWrite(greenE1, LOW);
digitalWrite(yellowE1, HIGH);
digitalWrite(redE1, LOW);
digitalWrite(orangePedE1, HIGH);
digitalWrite(whitePedE1, LOW);
digitalWrite(greenE2, LOW);
digitalWrite(yellowE2, HIGH);
digitalWrite(redE2, LOW);
digitalWrite(orangePedE2,HIGH);
digitalWrite(whitePedE2, LOW);
delay(250);
digitalWrite(orangePedE1,LOW);
digitalWrite(orangePedE2,LOW);
delay(250);
}
Serial.println("step 3 Turn east/west zone 1 red and north/south zone 1 green");
//step 3 Turn east/west zone 1 red and north/south zone 1 green
for (int x=0; x<4; x++){ //flashing of pedestrian
digitalWrite(yellowE1, LOW);
digitalWrite(yellowE2, HIGH);
digitalWrite(redE1, HIGH);
digitalWrite(redN1, LOW);
digitalWrite(greenN1, HIGH);
digitalWrite(whitePedN1, HIGH);
digitalWrite(orangePedN1,LOW);
digitalWrite(orangePedE1, HIGH);
digitalWrite(orangePedE2, HIGH);
delay(250);
digitalWrite(orangePedE2,LOW);
delay(250);
}
Serial.println("step 4 Turn east/west zone 2 red and north/south zone 2 green");
//step 4 Turn east/west zone 2 red and north/south zone 2 green
digitalWrite(yellowE2, LOW);
digitalWrite(redE2, HIGH);
digitalWrite(redN2, LOW);
digitalWrite(greenN2, HIGH);
digitalWrite(whitePedN2, HIGH);
digitalWrite(orangePedE2, HIGH);
digitalWrite(orangePedN2, LOW);
delay(T1delay); //east/west run green for T1delay
transition = 2;
state = 1;
break;
}
}