const int RED = 11;
const int YELLOW = 10;
const int GREEN = 9;
const int BLINK_COUNT = 3; // сколько раз мигает зелёный
const int BLINK_DELAY = 500; // полпериода мигания, мс
void setLights(bool red, bool yellow, bool green) {
digitalWrite(RED, red ? HIGH : LOW);
digitalWrite(YELLOW, yellow ? HIGH : LOW);
digitalWrite(GREEN, green ? HIGH : LOW);
}
void setup() {
pinMode(RED, OUTPUT);
pinMode(YELLOW, OUTPUT);
pinMode(GREEN, OUTPUT);
}
void loop() {
// красный
setLights(true, false, false);
delay(5000);
// красный + жёлтый
setLights(true, true, false);
delay(1000);
// зелёный
setLights(false, false, true);
delay(5000);
// мигающий зелёный
for (int i = 0; i < BLINK_COUNT; i++) {
setLights(false, false, false);
delay(BLINK_DELAY);
setLights(false, false, true);
delay(BLINK_DELAY);
}
// жёлтый
setLights(false, true, false);
delay(1000);
}