#define westButton 13
#define eastButton 3
#define westRed 12
#define westYellow 11
#define westGreen 10
#define eastRed 2
#define eastYellow 1
#define eastGreen 0
#define yellowBlinkTime 500
boolean trafficWest = true;
int flowTime = 5000;
int changeDelay = 2000;
void setup() {
pinMode(westButton, INPUT);
pinMode(eastButton, INPUT);
pinMode(westRed, OUTPUT);
pinMode(westYellow, OUTPUT);
pinMode(westGreen, OUTPUT);
pinMode(eastRed, OUTPUT);
pinMode(eastYellow, OUTPUT);
pinMode(eastGreen, OUTPUT);
digitalWrite(westRed, LOW);
digitalWrite(westYellow, LOW);
digitalWrite(westGreen, HIGH);
digitalWrite(eastRed, HIGH);
digitalWrite(eastYellow, LOW);
digitalWrite(eastGreen, LOW);
}
void loop() {
if(digitalRead(westButton) == HIGH){
if(trafficWest != true){
trafficWest = true;
delay(flowTime);
digitalWrite(eastGreen, LOW);
digitalWrite(eastYellow, HIGH);
delay(changeDelay);
digitalWrite(eastYellow, LOW);
digitalWrite(eastRed, HIGH);
delay(changeDelay);
for(int a = 0; a<5; a++){
digitalWrite(westYellow, LOW);
delay(yellowBlinkTime);
digitalWrite(westYellow, HIGH);
delay(yellowBlinkTime);
}
digitalWrite(westYellow, LOW);
digitalWrite(westRed, LOW);
digitalWrite(westGreen,HIGH);
}
}
if(digitalRead(eastButton) == HIGH){
if(trafficWest == true){
trafficWest = false;
delay(flowTime);
digitalWrite(westGreen, LOW);
digitalWrite(westYellow, HIGH);
delay(changeDelay);
digitalWrite(westYellow, LOW);
digitalWrite(westRed, HIGH);
delay(changeDelay);
for(int a = 0; a<5; a++){
digitalWrite(eastYellow, LOW);
delay(yellowBlinkTime);
digitalWrite(eastYellow, HIGH);
delay(yellowBlinkTime);
}
digitalWrite(eastYellow, LOW);
digitalWrite(eastRed, LOW);
digitalWrite(eastGreen, HIGH);
}
}
}