int TL_GREEN_LED = 2;
int TL_YELLOW_LED = 3;
int TL_RED_LED = 4;
int TrafficLightState = 0;
int TrafficLightStateNext = 10;
void setup() {
// put your setup code here, to run once:
pinMode(TL_GREEN_LED, OUTPUT);
pinMode(TL_YELLOW_LED, OUTPUT);
pinMode(TL_RED_LED, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if (TrafficLightState != TrafficLightStateNext){
TrafficLightState = TrafficLightStateNext;
}
switch (TrafficLightState){
case 10:
digitalWrite(TL_RED_LED, HIGH);
digitalWrite(TL_YELLOW_LED, LOW);
digitalWrite(TL_GREEN_LED, LOW);
delay(1000);
TrafficLightStateNext = 20;
case 20:
digitalWrite(TL_RED_LED, HIGH);
digitalWrite(TL_YELLOW_LED, HIGH);
digitalWrite(TL_GREEN_LED, LOW);
delay(1000);
TrafficLightStateNext = 30;
case 30:
digitalWrite(TL_RED_LED, LOW);
digitalWrite(TL_YELLOW_LED, LOW);
digitalWrite(TL_GREEN_LED, HIGH);
delay(1000);
TrafficLightStateNext = 40;
case 40:
digitalWrite(TL_RED_LED, LOW);
digitalWrite(TL_YELLOW_LED, HIGH);
digitalWrite(TL_GREEN_LED, LOW);
delay(1000);
TrafficLightStateNext = 10;
}
}