// Deklarasi pin
const int ledPin = 13; // Pin untuk LED
const int buttonPin = 2; // Pin untuk Button (Interrupt)
// Variable volatile untuk menyimpan status LED
volatile bool ledState = false;
// ISR: Fungsi layanan interrupt
void toggleLED() {
ledState = !ledState; // Membalikkan status LED
}
void setup() {
pinMode(ledPin, OUTPUT); // Atur Pin LED sebagai output
// Atur Pin tombol sebagai input dengan pull-up resistor
pinMode(buttonPin, INPUT_PULLUP);
// 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
}