const int pin_red = 13;
const int pin_yellow = 12;
const int pin_green = 11;
enum State_t{
red, yellow, green
};
State_t curr_state;
State_t prev_state;
void setup() {
// put your setup code here, to run once:
pinMode(pin_red, OUTPUT); //red
pinMode(pin_yellow, OUTPUT); //yellow
pinMode(pin_green, OUTPUT); //green
curr_state = red;
prev_state = red;
}
void loop() {
// put your main code here, to run repeatedly:
switch(curr_state){
case red:
digitalWrite(pin_red, HIGH);
delay(5000);
digitalWrite(pin_red, LOW);
curr_state = yellow;
prev_state = red;
break;
case yellow:
digitalWrite(pin_yellow, HIGH);
delay(1000);
digitalWrite(pin_yellow, LOW);
if(prev_state == green){
curr_state = red;
}
else{
curr_state = green;
}
break;
case green:
digitalWrite(pin_green, HIGH);
delay(5000);
digitalWrite(pin_green, LOW);
curr_state = yellow;
prev_state = green;
break;
}
}