Buat Interrupt Luar dalam Arduino

Adruino mempunyai beberapa jenis interrupts.Interrupt adalah proses di mana arduino berhenti tugas tetap atau menghentikan gelungnya dan pergi untuk mengganggu fungsi untuk menyelesaikan tugas fungsi interupsi yang diberikan.Internal interrupt dicipta secara luaran.Ada hanya dua pin gangguan luaran arduino uno . Mereka adalah pin Digital 2 dan pin Digital 3.

Selepas permulaan gangguan luaran jika ada perubahan isyarat dalam pin ini. Kemudian itu akan mewujudkan gangguan luaran.

Langkah 1: Pins Gangguan Luar

Arduino uno mempunyai dua pin gangguan luaran Digital pin 2 dan pin Digital 3.

Arduino Mega mempunyai 6 pin interrupt pin Digital pin 2, pin digital 3, pin digital 21, pin digital 20, pin digital 19 dan pin digital 18.

Langkah 2: Arduino AttachInterrupt () Fungsi

fungsi attachInterrupt () digunakan untuk mewujudkan gangguan luaran.

Sintaks
attachInterrupt (mengganggu, ISR, mod)

attachInterrupt (PIN, ISR, mod) (Arduino Due only)

Parameter

mengganggu: bilangan interrupt (int)

pin: nombor pin (Arduino Due only)

ISR: ISR memanggil apabila berlaku gangguan; fungsi ini mesti mengambil parameter dan tidak mengembalikan apa-apa. Fungsi ini kadang-kadang dirujuk sebagai routine.mode perkhidmatan penyegerakan: mentakrifkan apabila gangguan harus dicetuskan. Empat kontena dipratentukan sebagai nilai yang sah:

(1) RENDAH: untuk mencetuskan interupsi apabila pinnya rendah,

(2) PERUBAHAN: untuk mencetuskan gangguan apabila nilai pin berubah

(3) RISING: untuk mencetuskan apabila pin dari rendah ke tinggi,

(4) MELAKUKAN: kerana apabila pin berjalan dari tinggi ke rendah.

Papan yang Dikehendaki juga membenarkan:

TINGGI untuk mencetuskan gangguan sekiranya pin tinggi. (Hanya berdasarkan Arduino)

Pulangan:

tiada.

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

Langkah 3: Menulis Kod Interrupt Luar (langkah-1)

Bertujuan untuk dilakukan: Kami akan memulakan aruino kami untuk mengesan gangguan luaran dalam pin digital 2. Melalui gangguan luaran ini kami ingin menyelesaikan tugas. Tugasnya adalah, togol LED pada pin 13.Ini adalah jika yang dipimpin dalam 13 pin adalah pada, kemudian selepas mendapat gangguan luaran 13 pin dimatikan.

NB: Dalam kelewatan fungsi mengganggu () dan millis () tidak berfungsi.Tetapi, anda hanya boleh menggunakan delayMicroseconds ().

Mari lakukannya.......

Langkah 4: Menulis Kod Interupsi Luaran (Seting Kekosongan () (langkah-2)

Dalam persediaan tidak sah () kita harus memulakan 13 digit digital sebagai output dan menyekat fungsi attatchInterrupt ().

batal persediaan ()

{

pinMode (13, OUTPUT);

attachInterrupt (0, berkedip, FALLING);

}

Di sini, Pin 13 diisytiharkan sebagai output. Dalam parameter fungsi parameter attachline (), attachInterrupt () adalah "0". Ini adalah sifar kerana kita akan menggunakan pin digital 2 sebagai gangguan luaran. Di sini "berkelip" adalah fungsi gangguan. anda mahu.Ada empat keadaan dalam mod yang mereka LOW, PERUBAHAN, RISING, FALLING dan tambahan untuk Arduino kerana HIGH.We menggunakan FALLING.Arduino berfungsi dalam isyarat digital.Dalam isyarat digital mempunyai empat state.They ditunjukkan dalam gambar . Kami menggunakan FALLING, maksudnya apabila di pin 2 merasakan isyarat kelebihan jatuh, ia akan pergi untuk mengganggu fungsi.Dan menyelesaikan tugas itu.

Langkah 5: Menulis Kod Interrupt Luar (Void Loop () (langkah-3)

Biasanya dalam kod ini Kami tidak melakukan apa-apa dalam gelung. Tetapi anda boleh menambah apa-apa jenis tugas melalui kod. Jadi dalam kes saya:

kekosongan gelung ()

{

// Tambah tugas anda

}

Langkah 6: Menulis Kod Interrupt Luaran (Kekosongan Blink ()) (langkah-4)

Sekarang, kita akan menulis fungsi interleck "blink". Oleh kerana ini adalah fungsi interupsi.Jadi dalam fungsi ini kita tidak boleh menggunakan kelewatan () dan millis (). Tetapi, kita hanya boleh menggunakan delayMicroseconds ().

kekosongan berkelip ()

{

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

}

Langkah 7: Menulis Kod Interrupt Luar (Kod Final) (langkah-5)

batal persediaan ()

{

pinMode (13, OUTPUT);

attachInterrupt (0, berkedip, FALLING);

}

kekosongan gelung ()
{

// Tambah tugas anda

}

kekosongan berkelip ()

{

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

}

Artikel Berkaitan