char led_red = 23;
char led_yellow = 19;
char led_green = 18;
char led_red_state = LOW;
char led_yellow_state = LOW;
char led_green_state = LOW;
long led_red_previous_millis = 0;
long led_yellow_previous_millis = 0;
long led_green_previous_millis = 0;
int led_red_interval = 1000;
int led_yellow_interval = 2000;
int led_green_interval = 500;
void setup() {
// put your setup code here, to run once:
pinMode(led_red, OUTPUT);
pinMode(led_yellow, OUTPUT);
pinMode(led_green, OUTPUT);
}
void loop() {
long current_millis = millis();
if (current_millis - led_red_previous_millis >= led_red_interval)
{
led_red_previous_millis = current_millis;
// now reverse the led's state
if (led_red_state == LOW)
led_red_state = HIGH;
else
led_red_state = LOW;
// control the led accordingly
digitalWrite(led_red, led_red_state);
}
if (current_millis - led_yellow_previous_millis >= led_yellow_interval)
{
led_yellow_previous_millis = current_millis;
// now reverse the led's state
if (led_yellow_state == LOW)
led_yellow_state = HIGH;
else
led_yellow_state = LOW;
// control the led accordingly
digitalWrite(led_yellow, led_yellow_state);
}
if (current_millis - led_green_previous_millis >= led_green_interval)
{
led_green_previous_millis = current_millis;
// now reverse the led's state
if (led_green_state == LOW)
led_green_state = HIGH;
else
{
led_green_state = LOW;
}
// control the led accordingly
digitalWrite(led_green, led_green_state);
}
}