// Definisikan Pin
const int buttonPin = 2; // Pin untuk tombol Emergency (harus interupsi: Pin 2 atau 3 pada Uno)
const int relayPin = 8; // Pin untuk mengontrol perangkat/motor
const int ledPin = 13; // Indikator sistem aktif/shutdown
// Variabel status
volatile bool isEmergency = false; // Menggunakan volatile karena diubah di dalam fungsi interrupt
void setup() {
// put your setup code here, to run once:
pinMode(buttonPin, INPUT_PULLUP); // Tombol aktif LOW
pinMode(relayPin, OUTPUT);
pinMode(pinModeLed, OUTPUT);
// Mengaktifkan Interupsi: tombol ditekan dari HIGH ke LOW (FALLING)
attachInterrupt(digitalPinToInterrupt(buttonPin), triggerEmergency, FALLING);
// Nyalakan sistem awal
digitalWrite(relayPin, HIGH);
digitalWrite(ledPin, HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
// Jika dalam mode darurat, matikan alat dan tahan (loop berhenti)
if (isEmergency) {
digitalWrite(relayPin, LOW); // Matikan perangkat (contoh: motor)
digitalWrite(ledPin, LOW); // Matikan LED indikator
// Sistem terkunci (hang di sini), harus di-reset manual via tombol Reset Arduino
while(true) {
// Program berhenti di sini untuk menjaga mode shutdown
}
}
// --- KODE PROGRAM UTAMA / PROSES NORMAL ---
// Tulis proses normal atau otomasi Anda di sini
// Misalnya: menggerakkan motor atau membaca sensor
}
// Fungsi yang berjalan otomatis saat tombol Emergency ditekan
void triggerEmergency() {
isEmergency = true;
}