const int ledMerah = 13;
const int ledKuning = 3;
unsigned long previousMillisMerah = 0;
unsigned long previousMillisKuning = 0;
const long intervalMerah = 500;
const long intervalKuningNyala = 5000;
const long intervalKuningMati = 10000;
bool statusLampuMerah = LOW;
bool statusLampuKuning = LOW;
unsigned long merahBlinkDuration = 5000;
unsigned long merahBlinkStartTime = 0;
void setup() {
pinMode(ledMerah, OUTPUT);
pinMode(ledKuning, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - merahBlinkStartTime < merahBlinkDuration) {
if (currentMillis - previousMillisMerah >= intervalMerah) {
previousMillisMerah = currentMillis;
statusLampuMerah = !statusLampuMerah;
digitalWrite(ledMerah, statusLampuMerah);
}
} else {
digitalWrite(ledMerah, LOW);
}
if (statusLampuKuning == LOW) {
if (currentMillis - previousMillisKuning >= intervalKuningMati) {
statusLampuKuning = HIGH;
previousMillisKuning = currentMillis;
digitalWrite(ledKuning, HIGH);
merahBlinkStartTime = currentMillis;
}
} else {
if (currentMillis - previousMillisKuning >= intervalKuningNyala) {
statusLampuKuning = LOW;
previousMillisKuning = currentMillis;
digitalWrite(ledKuning, LOW);
}
}
}