// --- Konfigurasi Waktu ---
unsigned long intervalLED1 = 500; // LED 1 kedip setiap 0.5 detik
unsigned long intervalLED2 = 1000; // LED 2 kedip setiap 1 detik
unsigned long intervalLED3 = 1500; // LED 3 kedip setiap 1.5 detik
// --- Variabel Penyimpan Waktu Terakhir ---
unsigned long prevMillisLED1 = 0;
unsigned long prevMillisLED2 = 0;
unsigned long prevMillisLED3 = 0;
// --- Status LED ---
bool ledState1 = LOW;
bool ledState2 = LOW;
bool ledState3 = LOW;
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(2, ledState1);
digitalWrite(3, ledState2);
digitalWrite(4, ledState3);
}
void loop() {
unsigned long currentMillis = millis(); // baca waktu sekarang
// --- LED 1 ---
if (currentMillis - prevMillisLED1 >= intervalLED1) {
ledState1 = !ledState1; // ubah status
digitalWrite(2, ledState1); // tulis ke pin 2
prevMillisLED1 = currentMillis; // update waktu terakhir
}
// --- LED 2 ---
if (currentMillis - prevMillisLED2 >= intervalLED2) {
ledState2 = !ledState2;
digitalWrite(3, ledState2);
prevMillisLED2 = currentMillis;
}
// --- LED 3 ---
if (currentMillis - prevMillisLED3 >= intervalLED3) {
ledState3 = !ledState3;
digitalWrite(4, ledState3);
prevMillisLED3 = currentMillis;
}
}