unsigned long init_time = millis();
unsigned long curr_time;
unsigned long time_diff;
String color = "Red";
void setup() {
}
void loop() {
curr_time = millis();
time_diff = curr_time - init_time;
if (color == "Red") {
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
analogWrite(10, 0);
analogWrite(11, 127);
analogWrite(12, 255);
if (time_diff >= 5000) {
color = "Green";
init_time = millis();
}
}
else if (color == "Green") {
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
analogWrite(10, 255);
analogWrite(11, 255);
analogWrite(12, 255);
if (time_diff >= 5000) {
color = "Yellow";
init_time = millis();
}
}
else if (color == "Yellow") {
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
analogWrite(10, 0);
analogWrite(11, 127);
analogWrite(12, 255);
delay(250);
analogWrite(10, 0);
analogWrite(11, 0);
analogWrite(12, 0);
delay(250);
if (time_diff >= 2000) {
color = "Red";
init_time = millis();
}
}
}