// Deklarasi pin LED
int ledMerah = 2;
int ledKuning = 3;
// Waktu LED
unsigned long waktuSekarang = 0;
unsigned long intervalMerah = 5000; // 5 detik untuk LED merah
unsigned long intervalKuningNyala = 5000; // 5 detik untuk LED kuning menyala
unsigned long intervalKuningMati = 10000; // 10 detik untuk LED kuning mati
// Variabel untuk menyimpan status terakhir
unsigned long waktuSebelumnyaMerah = 0;
unsigned long waktuSebelumnyaKuning = 0;
bool statusMerah = false;
bool statusKuning = false;
void setup() {
pinMode(ledMerah, OUTPUT);
pinMode(ledKuning, OUTPUT);
}
void loop() {
waktuSekarang = millis();
// Logika untuk LED merah
if (waktuSekarang - waktuSebelumnyaMerah >= intervalMerah) {
waktuSebelumnyaMerah = waktuSekarang;
statusMerah = !statusMerah; // Ganti status dari nyala ke mati atau sebaliknya
digitalWrite(ledMerah, statusMerah);
}
// Logika untuk LED kuning
if (statusKuning == false) {
if (waktuSekarang - waktuSebelumnyaKuning >= intervalKuningMati) {
waktuSebelumnyaKuning = waktuSekarang;
statusKuning = true;
digitalWrite(ledKuning, HIGH); // Menyalakan LED kuning
}
} else {
if (waktuSekarang - waktuSebelumnyaKuning >= intervalKuningNyala) {
waktuSebelumnyaKuning = waktuSekarang;
statusKuning = false;
digitalWrite(ledKuning, LOW); // Mematikan LED kuning
}
}
}