// Definisi pin untuk masing-masing LED
const int ledMerah = 8; // Pin untuk LED Merah
const int ledKuning = 9; // Pin untuk LED Kuning
const int ledHijau = 10; // Pin untuk LED Hijau
const int ledUngu = 11; // Pin untuk LED Ungu (lampu berkedip terus menerus)
// Variabel untuk waktu
unsigned long previousMillisUngu = 0; // Menyimpan waktu terakhir LED Ungu berkedip
const long intervalUngu = 250; // Interval berkedip LED Ungu (250 milidetik)
bool unguState = LOW; // Status LED Ungu
void setup() {
// Inisialisasi pin sebagai output
pinMode(ledMerah, OUTPUT);
pinMode(ledKuning, OUTPUT);
pinMode(ledHijau, OUTPUT);
pinMode(ledUngu, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis(); // Waktu saat ini
// Mengatur LED Ungu berkedip terus-menerus
if (currentMillis - previousMillisUngu >= intervalUngu) {
previousMillisUngu = currentMillis;
// Mengubah keadaan LED Ungu
if (unguState == LOW) {
digitalWrite(ledUngu, HIGH);
unguState = HIGH;
} else {
digitalWrite(ledUngu, LOW);
unguState = LOW;
}
}
// LED Merah menyala selama 10 detik
digitalWrite(ledMerah, HIGH);
delay(10000); // 10000 milidetik = 10 detik
digitalWrite(ledMerah, LOW);
// LED Kuning berkedip dua kali (total 2 detik)
unsigned long startKuningMillis = millis();
while (millis() - startKuningMillis < 2000) { // 2000 milidetik = 2 detik
// Mengatur LED Kuning berkedip dua kali
if (currentMillis - previousMillisUngu >= intervalUngu) {
previousMillisUngu = currentMillis;
// Mengubah keadaan LED Kuning
if (digitalRead(ledKuning) == LOW) {
digitalWrite(ledKuning, HIGH);
} else {
digitalWrite(ledKuning, LOW);
}
currentMillis = millis();
}
}
// LED Hijau menyala selama 10 detik
digitalWrite(ledHijau, HIGH);
delay(10000); // 10000 milidetik = 10 detik
digitalWrite(ledHijau, LOW);
}