int led_red = 2;
int led_yellow = 3;
int led_green = 4;
int btn_pin = 12;
const int S_RED = 0,
S_YELLOW = 1,
S_GREEN = 2;
int state = S_RED; // Q: почему красный?
long int t0 = 0;
void setup()
{
pinMode(led_red, OUTPUT);
pinMode(led_yellow, OUTPUT);
pinMode(led_green, OUTPUT);
}
void loop()
{
long int t = millis();
int button = digitalRead(btn_pin);
if (state == S_RED && t - t0 > 2000) {
state = S_GREEN;
t0 = t;
}
if (state == S_GREEN && t - t0 > 2000) {
state = S_YELLOW;
t0 = t;
}
if (state == S_YELLOW && t - t0 > 700) {
state = S_RED;
t0 = t;
}
digitalWrite(led_green, state == S_GREEN);
digitalWrite(led_yellow, state == S_YELLOW);
digitalWrite(led_red, state == S_RED);
}