Buat Interupsi Eksternal di Arduino

Adruino memiliki beberapa jenis interupsi. Interupsi adalah proses di mana arduino menghentikan tugas regulernya atau menghentikan perulangannya dan menyelesaikan fungsi interupsi untuk menyelesaikan tugas fungsi interupsi yang diberikannya. Interupsi eksternal dibuat secara eksternal. Hanya ada dua pin interupsi eksternal di Arduino uno . Yaitu Digital pin 2 dan Digital pin 3.

Setelah inisialisasi interupsi eksternal jika ada perubahan sinyal pada pin ini. Maka itu akan membuat interupsi eksternal.

Langkah 1: Pin Interupsi Eksternal

Arduino uno memiliki dua pin interupsi eksternal Digital pin 2 dan Digital pin 3.

Arduino Mega memiliki 6 pin interupsi eksternal Digital pin 2, Digital pin 3, Digital pin 21, Digital pin 20, Digital pin 19 dan Digital pin 18.

Langkah 2: Fungsi Arduino AttachInterrupt ()

fungsi attachInterrupt () digunakan untuk membuat interupsi eksternal.

Sintaksis
attachInterrupt (interrupt, ISR, mode)

attachInterrupt (pin, ISR, mode) (Hanya karena Arduino)

Parameter

interrupt: jumlah interrupt (int)

pin: nomor pin (Hanya karena Arduino)

ISR: ISR untuk memanggil ketika interupsi terjadi; fungsi ini tidak boleh mengambil parameter dan tidak mengembalikan apa pun. Fungsi ini kadang-kadang disebut sebagai layanan interupsi rutin.mode: mendefinisikan kapan interupsi harus dipicu. Empat batasan ditentukan sebagai nilai yang valid:

(1) RENDAH: untuk memicu interupsi setiap kali pin rendah,

(2) Ganti: untuk memicu interupsi setiap kali pin mengubah nilai

(3) RISING: untuk memicu ketika pin beralih dari rendah ke tinggi,

(4) FALLING: untuk saat pin bergerak dari tinggi ke rendah.

Papan jatuh tempo juga memungkinkan:

TINGGI untuk memicu interupsi setiap kali pin tinggi. (Hanya karena Arduino)

Pengembalian:

tidak ada

Anda juga dapat melihat ini dari halaman arduino.Link: //www.arduino.cc/en/Reference/AttachInterrup ...

Langkah 3: Menulis Kode Interupsi Eksternal (langkah-1)

Tujuan yang harus dilakukan: Kami akan menginisialisasi aruino kami untuk merasakan interupsi eksternal dalam pin digital 2. Melalui interupsi eksternal ini kami ingin menyelesaikan tugas. Tugasnya adalah, beralih LED pada pin 13. Itu jika led pada 13 pin adalah aktif, kemudian setelah interupsi 13 pin eksternal dimatikan.

NB: Dalam fungsi tunda interupsi () dan milis () tidak berfungsi. Namun, Anda hanya dapat menggunakan delayMicroseconds ().

Ayo lakukan.......

Langkah 4: Menulis Kode Interupsi Eksternal (Void Setup ()) (langkah-2)

Dalam void setup () kita harus menginisialisasi pin 13 digital sebagai output dan fungsi interrupt attatchInterrupt ().

pengaturan batal ()

{

pinMode (13, OUTPUT);

attachInterrupt (0, blink, FALLING);

}

Di sini, Pin 13 dideklarasikan sebagai output. Pada fungsi attachInterrupt (), parameter pertama adalah "0". Ini nol karena kita akan menggunakan pin digital 2 sebagai interupsi eksternal. Berikut "blink" adalah fungsi interupsi. Anda dapat memberi nama jika Anda inginkan. Ada empat negara dalam mode mereka RENDAH, MENGUBAH, NAIK, JATUH dan satu lagi untuk arduino karena TINGGI. Kami menggunakan FALLING. Arduino bekerja dalam sinyal digital. Dalam sinyal digital memiliki empat keadaan. Kami menggunakan FALLING, artinya setiap kali dalam pin 2 merasakan sinyal tepi jatuh, itu akan pergi ke fungsi interupsi. Dan menyelesaikan tugas.

Langkah 5: Menulis Kode Interupsi Eksternal (Void Loop ()) (langkah-3)

Biasanya dalam kode ini Kami tidak melakukan apa pun dalam loop. Tapi Anda dapat menambahkan segala jenis tugas melalui kode. Jadi dalam kasus saya:

membatalkan loop ()

{

// Tambahkan tugas Anda

}

Langkah 6: Menulis Kode Interupsi Eksternal (Void Blink ()) (langkah-4)

Sekarang, kita akan menulis fungsi "blink" interupsi. Karena ini adalah fungsi interupsi. Jadi dalam fungsi ini kita tidak dapat menggunakan delay () dan millis (). Tetapi, kita hanya dapat menggunakan delayMicroseconds ().

kekosongan kosong ()

{

digitalWrite (13, ! digitalRead (13)); // Beralih LED pada pin 13

}

Langkah 7: Menulis Kode Interupsi Eksternal (Kode Final) (langkah-5)

pengaturan batal ()

{

pinMode (13, OUTPUT);

attachInterrupt (0, blink, FALLING);

}

membatalkan loop ()
{

// Tambahkan tugas Anda

}

kekosongan kosong ()

{

digitalWrite (13, ! digitalRead (13)); // Beralih LED pada pin 13

}

Artikel Terkait