Button Interrupt
Last updated
Last updated
Pada proyek ini, kita akan membuat tombol dengan interrupt.
Komponen yang diperlukan yaitu sebagai berikut:
Board ESP32
Breadboard
Push button
LED 5 mm berwarna merah dan hijau
Resistor 100 Ω
Rangkaian yang dibuat yaitu sebagai berikut. Button dirangkai dengan konfigurasi rangkaian active-low dengan internal pull-up resistor pada pin GPIO 23. LED merah dirangkai secara active-high ke pin 32 dan LED hijau dirangkai secara active-high ke pin 26.
Kode program yang dibuat yaitu sebagai berikut. Fungsi attachInterrupt()
berfungsi untuk menghubungkan pin GPIO input dengan interrupt. Fungsi ini memiliki tiga argumen input yaitu pin GPIO, nama fungsi ISR, dan mode interrupt:
pin merupakan nomor pin GPIO yang akan dihubungkan dengan interrupt. Disarankan menggunakan fungsi digitalPinToInterrupt()
untuk memasukkan argumen ini.
intRoutine merupakan nama fungsi ISR yang kita definisikan.
mode merupakan mode trigger interrupt yang akan digunakan. Terdapat lima mode trigger interrupt pada ESP32:
LOW: trigger interrupt ketika pin bernilai LOW
HIGH: trigger interrupt ketika pin bernilai HIGH
CHANGE: trigger interrupt ketika pin berubah nilai dari HIGH menjadi LOW atau LOW menjadi HIGH.
FALLING: trigger interrupt ketika pin berubah nilai dari HIGH menjadi LOW.
RISING: trigger interrupt ketika pin berubah dari LOW menjadi HIGH.
Fungsi button_isr()
akan dipanggil ketika ada interrupt dari button. Fungsi ini akan menyalakan atau mematikan LED merah.
Hasil dari proyek ini yaitu pada gambar berikut ini. Interrupt menyebabkan LED merah menyala pada saat bersamaan LED hijau berkedip.