#define LED_Red 2
#define LED_Yellow 4
#define LED_Green 7
int MY_PERIOD[] = { 300, 300, 300 }; // период в мс
uint32_t tmr, tmr1 = 0;
int i = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(LED_Red, OUTPUT);
pinMode(LED_Yellow, OUTPUT);
pinMode(LED_Green, OUTPUT);
}
void loop() {
if (millis() - tmr >= MY_PERIOD[i]) {
tmr = millis();
switch (i) {
case 0:
digitalWrite(LED_Red, 1);
break;
case 1:
digitalWrite(LED_Yellow, 1);
break;
case 2:
digitalWrite(LED_Green, 1);
break;
}
my_delay();
digitalWrite(LED_Red, 0);
digitalWrite(LED_Yellow, 0);
digitalWrite(LED_Green, 0);
i++;
if (i > 2) i = 0;
}
}
void my_delay() {
tmr1 = millis();
do {
} while (millis() - tmr1 <= 500);
}