/*const int buttonPin = 2; // Assign button pin
const int ledPin = 13; // Assign LED pin
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // Set button pin as input
pinMode(ledPin, OUTPUT); // Set LED pin as output
}
void loop() {
// Check if the button is pressed (LOW)
if ( digitalRead(buttonPin) == LOW) {
// Turn on the LED
digitalWrite(ledPin, HIGH); // LED Nyala
} else {
// Turn off the LED
digitalWrite(ledPin, LOW); // LED Mati
}
}*/
// Definisikan pin LED dan tombol
const int ledPinISR = 13;
const int ledPinLoop = 12;
const int buttonPin = 2;
// Variabel untuk menyimpan status LED
volatile bool ledStatus = false;
void setup() {
// Atur pin LED sebagai output
pinMode(ledPinISR, OUTPUT);
pinMode(ledPinLoop, OUTPUT);
// Atur pin tombol sebagai input dengan pull-up resistor
pinMode(buttonPin, INPUT_PULLUP);
// Atur interrupt untuk pin tombol
attachInterrupt(digitalPinToInterrupt(buttonPin), buttonInterrupt, CHANGE);
}
void loop() {
digitalWrite(ledPinLoop, HIGH);
delay(1000);
digitalWrite(ledPinLoop, LOW);
delay(1000);
}
// Fungsi interrupt yang dipanggil saat perubahan pada pin tombol terdeteksi
void buttonInterrupt() {
// Baca status tombol
bool buttonState = digitalRead(buttonPin);
// Jika tombol ditekan (state LOW)
if (!buttonState) {
// Ubah status LED
ledStatus = !ledStatus;
// Terapkan status LED ke pin
digitalWrite(ledPinISR, ledStatus);
}
}