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 intervalOn = 5000; // Interval waktu untuk lampu merah dan kuning (5 detik)
const long intervalKuningOff = 10000; // Waktu mati lampu kuning (10 detik)
bool lampuMerahState = LOW;
bool lampuKuningState = LOW;
void setup() {
pinMode(lampuMerahPin, OUTPUT);
pinMode(lampuKuningPin, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
// Kontrol lampu merah
if (currentMillis - previousMillisMerah >= intervalOn) {
lampuMerahState = !lampuMerahState;
digitalWrite(lampuMerahPin, lampuMerahState);
previousMillisMerah = currentMillis;
}
// Kontrol lampu kuning
if (currentMillis - previousMillisKuning >= intervalOn) {
if(currentMillis % intervalKuningOff != 0) {
digitalWrite(lampuKuningPin, lampuKuningState);
}
else {
digitalWrite(lampuKuningPin, !lampuKuningState);
}
previousMillisKuning = currentMillis;
}
}