// =======================================
// Program: Dua LED dengan waktu nyala berbeda
// LED1 nyala tiap 1000 ms (1 detik)
// LED2 nyala tiap 250 ms
// =======================================
// Definisi pin LED
const int led1 = 8; // LED pertama terhubung ke pin 8
const int led2 = 9; // LED kedua terhubung ke pin 9
// Variabel untuk menyimpan waktu sebelumnya (timestamp)
unsigned long prevMillis1 = 0; // waktu terakhir LED1 berubah
unsigned long prevMillis2 = 0; // waktu terakhir LED2 berubah
// Interval waktu kedip LED (dalam milidetik)
const unsigned long interval1 = 1000; // LED1 berkedip tiap 1 detik
const unsigned long interval2 = 250; // LED2 berkedip tiap 0.25 detik
// Variabel untuk menyimpan status ON/OFF LED
bool ledState1 = false;
bool ledState2 = false;
void setup() {
// Set pin LED sebagai output
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop() {
// Ambil waktu saat ini (sejak Arduino mulai)
unsigned long currentMillis = millis();
// ====== LOGIKA UNTUK LED 1 ======
// Cek apakah sudah lewat 1000 ms sejak LED1 terakhir berubah
if (currentMillis - prevMillis1 >= interval1) {
prevMillis1 = currentMillis; // simpan waktu terakhir perubahan
ledState1 = !ledState1; // ubah status LED (nyala <-> mati)
digitalWrite(led1, ledState1); // kirim status baru ke pin LED
}
// ====== LOGIKA UNTUK LED 2 ======
// Cek apakah sudah lewat 250 ms sejak LED2 terakhir berubah
if (currentMillis - prevMillis2 >= interval2) {
prevMillis2 = currentMillis; // update waktu terakhir LED2 berubah
ledState2 = !ledState2; // ubah status LED2
digitalWrite(led2, ledState2); // kirim status baru ke pin LED2
}
}