const int lampuMerahPin = 2; // Pin untuk lampu merah
const int lampuKuningPin = 3; // Pin untuk lampu kuning
unsigned long previousMillisMerah = 0;
unsigned long previousMillisKuning = 0;
const long intervalMerah = 5000; // Interval waktu untuk lampu merah (5 detik)
const long intervalKuningOn = 5000; // Waktu menyala lampu kuning (5 detik)
const long intervalKuningOff = 10000; // Waktu mati lampu kuning (10 detik)
int lampuMerahState = LOW;
int lampuKuningState = LOW;
void setup() {
pinMode(lampuMerahPin, OUTPUT);
pinMode(lampuKuningPin, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
// Kontrol lampu merah
if (currentMillis - previousMillisMerah >= intervalMerah) {
previousMillisMerah = currentMillis;
if (lampuMerahState == LOW) {
lampuMerahState = HIGH;
} else {
lampuMerahState = LOW;
}
digitalWrite(lampuMerahPin, lampuMerahState);
}
// Kontrol lampu kuning
if (currentMillis - previousMillisKuning >= intervalKuningOn) {
if (currentMillis - previousMillisKuning >= intervalKuningOn + intervalKuningOff) {
previousMillisKuning = currentMillis;
}
else {
previousMillisKuning = currentMillis;
if (lampuKuningState == LOW) {
lampuKuningState = HIGH;
} else {
lampuKuningState = LOW;
}
digitalWrite(lampuKuningPin, lampuKuningState);
}
}
}