int led1 = 3;
int led2 = 4;
int button = 2;
int buttonState = 0;
int lastButtonState = 0;
int pressCount = 0;
unsigned long previousMillis1 = 0; // Waktu terakhir LED 1 berubah
unsigned long previousMillis2 = 0; // Waktu terakhir LED 2 berubah
const long interval1 = 1000; // Interval untuk LED 1 (1 detik)
const long interval2 = 500; // Interval untuk LED 2 (4 detik)
bool led1State = LOW; // Status LED 1
bool led2State = LOW; // Status LED 2
bool blinking = false; // Status apakah LED harus berkedip
void setup() {
pinMode(button, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop() {
buttonState = digitalRead(button);
// Cek jika tombol ditekan
if (buttonState == HIGH && lastButtonState == LOW) {
pressCount++;
if (pressCount == 1) {
blinking = true; // Aktifkan blinking saat tombol ditekan
}
else if (pressCount == 2) {
blinking = false; // Matikan blinking setelah tombol ditekan lagi
digitalWrite(led1, LOW); // Matikan LED 1
digitalWrite(led2, LOW); // Matikan LED 2
pressCount = 0;
}
// Tunggu agar tombol tidak terdeteksi beberapa kali saat ditekan
delay(200);
}
lastButtonState = buttonState;
// Jika blinking aktif, nyalakan/matikan LED berdasarkan interval
if (blinking) {
unsigned long currentMillis = millis();
// Kontrol LED 1 (interval 1 detik)
if (currentMillis - previousMillis1 >= interval1) {
previousMillis1 = currentMillis; // Simpan waktu saat ini
led1State = !led1State; // Ubah status LED 1
digitalWrite(led1, led1State);
}
// Kontrol LED 2 (interval 4 detik)
if (currentMillis - previousMillis2 >= interval2) {
previousMillis2 = currentMillis; // Simpan waktu saat ini
led2State = !led2State; // Ubah status LED 2
digitalWrite(led2, led2State);
}
}
}