// Definisikan pin untuk LED dan switch
const int ledPin1 = 10;
const int ledPin2 = 11;
const int switchPinA = 8;
const int switchPinB = 9;
// Variabel untuk menyimpan status switch sebelumnya
int switchStateA;
int switchStateB;
void setup() {
// Atur pin LED sebagai output
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
// Atur pin switch sebagai input dengan pull-up resistor
pinMode(switchPinA, INPUT_PULLUP);
pinMode(switchPinB, INPUT_PULLUP);
// Inisialisasi status switch sebelumnya
switchStateA = digitalRead(switchPinA);
switchStateB = digitalRead(switchPinB);
}
void loop() {
// Baca status switch
int currentStateA = digitalRead(switchPinA);
int currentStateB = digitalRead(switchPinB);
// Cek perubahan status switch
if (currentStateA != switchStateA || currentStateB != switchStateB) {
// Update status switch
switchStateA = currentStateA;
switchStateB = currentStateB;
// Reset delay sebelumnya
int delayTime = 0;
// Tentukan nilai delay sesuai dengan kombinasi switch
if (currentStateA == HIGH && currentStateB == HIGH) {
// Switch A tidak tersambung, switch B tidak tersambung
delayTime = 250;
} else if (currentStateA == HIGH && currentStateB == LOW) {
// Switch A tidak tersambung, switch B tersambung
delayTime = 800;
} else if (currentStateA == LOW && currentStateB == HIGH) {
// Switch A tersambung, switch B tidak tersambung
delayTime = 5000;
} else if (currentStateA == LOW && currentStateB == LOW) {
// Switch A tersambung, switch B tersambung
delayTime = 2000;
}
// Nyalakan LED dan tunggu sesuai dengan delayTime
digitalWrite(ledPin1, LOW); // Aktifkan LED secara active low
digitalWrite(ledPin2, LOW); // Aktifkan LED secara active low
delay(delayTime);
// Matikan LED
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
}
}