// Pin untuk tombol
const int tombol1Pin = 2;
const int tombol2Pin = 3;
// Pin untuk lampu
const int lampu1Pin = 4;
const int lampu2Pin = 5;
// Variabel untuk menyimpan status tombol
int tombol1State = HIGH; // HIGH ketika tidak ditekan
int tombol2State = HIGH; // HIGH ketika tidak ditekan
// Variabel untuk menyimpan status lampu
int lampu1State = LOW; // LOW menandakan mati
int lampu2State = LOW; // LOW menandakan mati
// Variabel untuk debounce
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;
void setup() {
// Set pin sebagai input dengan resistor pull-up
pinMode(tombol1Pin, INPUT_PULLUP);
pinMode(tombol2Pin, INPUT_PULLUP);
// Set pin sebagai output untuk lampu
pinMode(lampu1Pin, OUTPUT);
pinMode(lampu2Pin, OUTPUT);
// Matikan lampu awal
digitalWrite(lampu1Pin, lampu1State);
digitalWrite(lampu2Pin, lampu2State);
}
void loop() {
// Baca status tombol
int reading1 = digitalRead(tombol1Pin);
int reading2 = digitalRead(tombol2Pin);
// Cek debounce
if ((millis() - lastDebounceTime) > debounceDelay) {
// Tombol 1
if (reading1 != tombol1State) {
tombol1State = reading1;
// Ubah status lampu
lampu1State = !lampu1State;
digitalWrite(lampu1Pin, lampu1State);
}
// Tombol 2
if (reading2 != tombol2State) {
tombol2State = reading2;
// Ubah status lampu
lampu2State = !lampu2State;
digitalWrite(lampu2Pin, lampu2State);
}
// Update waktu debounce
lastDebounceTime = millis();
}
}