// Deklarasi pin
const int ledPin = 13; // Pin untuk LED
const int buttonPin = 2; // Pin untuk Push Button (interrupt)
volatile bool ledState = false; // Variabel volatile untuk menyimpan status LED
// ISR: Fungsi layanan interrupt
void toggleLED() {
ledState = !ledState; // Membalikkan status LED
}
void setup() {
pinMode(ledPin, OUTPUT); // Atur pin LED sebagai output
pinMode(buttonPin, INPUT_PULLUP); // Atur pin tombol sebagai input dengan pull-up resistor
// Attach Interrupt: memicu saat tombol ditekan (falling edge)
attachInterrupt(digitalPinToInterrupt(buttonPin), toggleLED, FALLING);
Serial.begin(9600);
}
void loop() {
// Nyalakan atau matikan LED sesuai status
if (ledState) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
// Tampilkan status LED di Serial Monitor
Serial.print("LED State: ");
Serial.println(ledState ? "ON" : "OFF");
delay(50); // Delay kecil untuk stabilitas
}