Interrupt pada Arduino adalah suatu keadaan dimana saat pemicu program interrupt dipicu
baik secara eksternal ataupun internal, program interrupt akan menghentikan sejenak program
yang sedang dijalankan oleh arduino dan melaksanakan program interrupt tersebut.
Interrupt dapat digunakan pada Arduino dengan menambahkan program berikut pada
program yang ingin kita berikan fungsi interrupt.
Kemudian pada bagian “interrupt” dapat kita ganti dengan “0” jika ingin menggunakan pin
interrupt 0 pada arduino uno atau “1” jika ingin menggunakan pin interrupt 1 pada arduino
uno.
Untuk Uno WiFiRev.2, Due, Zero, MKR Family dan 101 boards interrupt number=pin
number.
Arduino uno memiliki 2 pin interrupt yaitu INT0 pada pin 2 digital dan INT1 pada pin 3
digital. Pada bagian function dapat kita isi dengan program yang ingin kita jalankan saat pin
interrupt itu dipicu.
Mode dimana arduino memiliki 4 keadaan yang dapat memicu interrupt :
1. mode LOW. Pada mode ini interrupt akan diaktifkan saat pin int memiliki logika low
dan akan aktif selama masih berlogika low.
2. mode CHANGE. Interrupt akan diaktifkan saat terjadi perubahan logika baik dari
low ke high ataupun high ke low. Namun pengaktifan hanya bersifat sementara dan
beberapa saat kemudian program akan berjalan kembali seperti sedia kala.
3. RISING. Pengaktifan interrupt akan terjadi jika pin mengalami perubahan logika dari
low ke high. Sama seperti mode CHANGE, pengaktifan interrupt hanya sesaat saja
dan kemudian arduino akan kembali menjalankan program yang berjalan sebelumnya.
4. FALLING. Perubahan logika pada pin int dari high ke low akan mengaktifkan fungsi
interrupt. hanya sesaat saja dan kemudian arduino akan kembali menjalankan program
yang berjalan sebelumnya.
Contoh Kode :
Lampu Lalu Lintas dengan Interrupt
1. Bahan:
- Arduino Uno
- Bread Board
(Diganti dengan Lampu Lalu Lintas dari pa Toha. Untuk pin boleh disamakan dengan coding
atau diganti pinnya terserah Titan, dkk)
a. Loop Normal
- Lampu kuning dan waktu delay menjalankan pergantian lampu hijau L1 dan L2
b. Interrupt (button)
- Jika arus loop memiliki Lampu Merah L2 kemudian akan berganti Lampu Merah L1 dan
Lampu Hijau L2 aktif
Referensi
https://www.instructables.com/id/Basic-Arduino-Traffic-Light-Utilizing-Interrupts/
https://www.arduino.cc/reference/en/language/functions/external-
interrupts/attachinterrupt/