top of page
Search

Penggunaan Interrupts di Arduino: Mengimplementasikan Interrupts untuk Pengolahan Real-Time.


Arduino Uno KMTek
Arduino Uno (Sumber: elektro.uma.ac.id)

Interrupts sangatlah penting dalam pengolahan real-time pada Arduino. Mereka adalah nadi yang memastikan sistem merespons dengan cepat dan tepat terhadap setiap peristiwa yang terjadi. Bayangkan betapa sulitnya menjalankan sistem real-time tanpa mereka semua akan menjadi lambat, tidak responsif, dan tidak dapat diandalkan. Interrupts memberi kita alat untuk meraih kecepatan dan ketepatan yang diperlukan untuk menangani input, mengontrol output, dan menjaga sistem berjalan dalam waktu nyata. Mereka adalah pahlawan tak terlihat di balik setiap aplikasi Arduino yang responsif dan handal.

 

A. Pengertian Interrupts pada Arduino

Interrupts pada Arduino merujuk pada mekanisme yang memungkinkan mikrokontroler untuk merespons secara instan terhadap peristiwa tertentu yang terjadi di luar aliran program utama. Ketika interrupt dipicu, eksekusi program utama dihentikan sementara untuk menangani peristiwa tersebut. Peristiwa yang bisa memicu interrupt bisa berasal dari berbagai sumber, seperti perubahan status input, timer yang mencapai batas waktu tertentu, atau komunikasi serial yang masuk. Dengan menggunakan interrupts, Arduino Uno dapat merespons dengan cepat terhadap peristiwa-peristiwa ini, memungkinkan pengembangan aplikasi real-time yang efisien dan andal.

 

B. Jenis - Jenis Interrupts pada Arduino

1. External Interrupts (Interrupt Eksternal)

Ini adalah interrupts yang dipicu oleh perubahan pada pin eksternal mikrokontroler. Arduino Uno memiliki dua atau tiga pin yang mendukung eksternal interrupts, tergantung pada modelnya.

 

2. Pin Change Interrupts (Interrupt Perubahan Pin)

Jenis interrupts ini memungkinkan Arduino untuk merespons terhadap perubahan pada setiap pin digital. Setiap pin digital di Arduino dapat diatur untuk menggunakan pin change interrupts.

 

3. Timer Interrupts (Interrupt Timer)

Timer interrupts dipicu oleh timer internal mikrokontroler yang mencapai nilai tertentu. Ini memungkinkan penggunaan timer untuk melakukan tugas-tugas tertentu dengan presisi waktu, seperti pembacaan sensor pada interval yang ditentukan atau mengatur kecepatan PWM.

 

C. Langkah-langkah untuk Mengimplementasikan Interrupts pada Arduino

1. Identifikasi Sumber Interrupt

Tentukan sumber interrupt yang akan digunakan, apakah itu external interrupt, pin change interrupt, atau timer interrupt. Sesuaikan dengan kebutuhan aplikasi Anda.

 

2. Pilih Pin

Jika Anda menggunakan external interrupt atau pin change interrupt, pilih pin digital yang sesuai. Perhatikan bahwa tidak semua pin digital mendukung interrupts, jadi pastikan untuk memilih yang kompatibel.

 

3. Konfigurasi Pin

Atur pin digital yang akan digunakan sebagai input. Pastikan untuk mengatur pin tersebut ke mode input dengan menggunakan fungsi `pinMode()`.

 

4. Aktifkan Interrupt

Aktifkan interrupt di konfigurasi mikrokontroler. Ini melibatkan pengaturan register tertentu sesuai dengan jenis interrupt yang akan digunakan. Untuk external interrupt, gunakan fungsi `attachInterrupt()`, sedangkan untuk pin change interrupt, Anda perlu mengatur register secara langsung.

 

5. Tentukan Fungsi Interrupt

Buat fungsi yang akan dieksekusi ketika interrupt terpicu. Pastikan fungsi ini berada di luar loop utama. Fungsi ini harus bersifat void dan tidak menerima argumen.

 

6. Atur Prioritas Interrupt

Jika Anda menggunakan lebih dari satu interrupt, tentukan prioritas interrupt. Pastikan untuk mengatur prioritas sesuai dengan kebutuhan aplikasi Anda.


Arduino Uno KMTek
Arduino Uno dan fungsinya (Sumber: www.aldyrazor.com)

7. Implementasikan Logika Program

Di dalam fungsi interrupt, tuliskan logika program yang ingin Anda jalankan ketika interrupt terpicu. Pastikan untuk menjaga logika program sederhana dan efisien, karena fungsi interrupt harus menyelesaikan tugasnya dengan cepat.

 

8. Main Loop

Pastikan untuk menjaga loop utama program Anda agar tetap ringan dan responsif. Hindari melakukan operasi yang memakan waktu di dalam loop utama yang dapat mengganggu respons interrupt.

 

9. Testing dan Debugging

Lakukan pengujian menyeluruh pada aplikasi Anda untuk memastikan interrupts berfungsi sesuai yang diharapkan. Gunakan perangkat lunak monitor serial atau perangkat keras tambahan untuk memantau keluaran dan memecahkan masalah potensial.

 

D. Contoh Kode Sederhana Penggunaan Interrupts

Kode di atas adalah contoh sederhana penggunaan interrupts pada Arduino. Berikut adalah penjelasan singkatnya:

 

1. Pada bagian pertama kode, kita mendefinisikan dua konstanta: `LED_PIN` dan `BUTTON_PIN`. `LED_PIN` digunakan untuk menentukan pin di mana LED terhubung, sementara `BUTTON_PIN` digunakan untuk menentukan pin di mana tombol (button) terhubung.

 

2. Kemudian, kita mendeklarasikan variabel `ledState` yang akan digunakan untuk menyimpan status terkini dari LED, awalnya diatur ke nilai `LOW` (mati).

 

3. Di dalam fungsi `setup()`, kita mengatur pin `LED_PIN` sebagai output untuk mengontrol LED, dan `BUTTON_PIN` sebagai input untuk menerima input dari tombol. Selain itu, kita menggunakan `attachInterrupt()` untuk mengaitkan fungsi `blinkLed()` ke interrupt yang dipicu oleh perubahan tegangan dari `BUTTON_PIN`, yaitu ketika tegangan naik (RISING).

 

4. Di dalam fungsi `loop()`, tidak ada yang dilakukan. Ini karena kita ingin program utama hanya menunggu dan tidak melakukan tugas apa pun. Semua tugas akan ditangani oleh fungsi interrupt.

 

5. Fungsi `blinkLed()` adalah fungsi interrupt. Ketika tombol ditekan dan tegangan di `BUTTON_PIN` naik, fungsi ini akan dipanggil. Di dalamnya, kita mengubah `ledState` menjadi kebalikan dari nilai sebelumnya menggunakan operator `!`. Kemudian, kita menyalakan atau mematikan LED sesuai dengan nilai `ledState` menggunakan `digitalWrite()`.

Jenis-jenis Arduino KMTek
Jenis-jenis Arduino (Sumber: robotics.instiperjogja.ac.id)

Dapat diambil kesimpulan bahwa penggunaan interrupts pada Arduino adalah kunci dalam mengimplementasikan pengolahan real-time. Interrupts memungkinkan mikrokontroler untuk merespons peristiwa secara cepat dan akurat, sehingga memungkinkan pengembangan aplikasi yang responsif dan andal. Dengan menggunakan jenis-jenis interrupts yang tersedia seperti external interrupts, pin change interrupts, dan timer interrupts, serta mengikuti langkah-langkah yang tepat untuk mengimplementasikannya, pengguna dapat meningkatkan kinerja aplikasi Arduino dalam pengolahan data real-time. Contoh kode sederhana juga menunjukkan bagaimana interrupts dapat digunakan untuk mengontrol perangkat eksternal, seperti LED, dengan responsif sesuai dengan input dari tombol. Nah, seperti itulah penjelasan mengenai penggunaan interupts pada Arduino. Semoga bermanfaat dan selamat berkarya!


PT. Karya Merapi Teknologi


Follow sosial media kami dan ambil bagian dalam berkarya untuk negeri!


Sumber:


129 views0 comments

Comments


bottom of page