{"id":1717,"date":"2024-12-12T00:47:35","date_gmt":"2024-12-11T17:47:35","guid":{"rendered":"https:\/\/delta-electronic.com\/Design\/Hardwares\/?p=1717"},"modified":"2024-12-12T00:50:47","modified_gmt":"2024-12-11T17:50:47","slug":"function-attachinterrupt-pada-arduino-programming-language","status":"publish","type":"post","link":"https:\/\/delta-electronic.com\/Design\/Hardwares\/function-attachinterrupt-pada-arduino-programming-language\/","title":{"rendered":"Function attachInterrupt() pada Arduino Programming Language"},"content":{"rendered":"<p><strong>Deskripsi<\/strong><\/p>\n<p>Interrupt ini sangat berguna untuk mengatasi masalah timing pada microcontroller contohnya pada aplikasi pembacaan rotary encoder ataupun input dari user di mana program diharapkan tidak akan terlewat dalam mengambil pulsa rotary encoder sambil dapat mengerjakan hal lain tanpa harus melakukan polling menunggu signal encoder. Bisa juga untuk sensor-sensor yang lain seperti pembacaan klik pada tombol, atau sensor infrared yang membaca jatuhnya coin sambil mikrokontroler masih dapat mengerjakan tugas yang lain.<\/p>\n<p><strong>Syntax<\/strong><\/p>\n<p><code class=\"token-line\" style=\"white-space-collapse: preserve;\"><span class=\"token-line\"><span class=\"token function\">attachInterrupt<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">digitalPinToInterrupt<\/span><span class=\"token punctuation\">(<\/span><span class=\"token plain\">pin<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><span class=\"token plain\"> ISR<\/span><span class=\"token punctuation\">,<\/span><span class=\"token plain\"> mode<\/span><span class=\"token punctuation\">)<\/span><\/span><\/code><\/p>\n<ul>\n<li>pin : arduino pin<\/li>\n<li>ISR : merupakan rutin layanan interupsi (Interrupt Service Routine) di mana rutin ini bekerja saat interupsi terjadi. Rutin ini tidak memiliki parameter dan juga tidak mengembalikan nilai pada saat return.<\/li>\n<li>Mode : merupakan mode kapan interupsi tertrigger:\n<ul>\n<li>LOW: interupsi terjadi saat kondisi logika LOW<\/li>\n<li>CHANGE: interupsi terjadi saat ada perubahan kondisi logika<\/li>\n<li>RISING: interupsi terjadi saat ada perubahan dari LOW ke HIGH<\/li>\n<li>FALLING : interupsi terjadi saat ada perubahan dari HIGH ke LOW<\/li>\n<li>untuk Arduino Due, Zero dan MKR1000 juga terdapat Mode HIGH: yaitu interupsi terjadi saat kondisi logika HIGH<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Tabel berikut adalah nomor-nomor Arduino pin yang dapat digunakan sebagai interrupt beserta Boardnya<\/p>\n<table width=\"876\">\n<tbody>\n<tr>\n<td width=\"319\"><strong>Board<\/strong><\/td>\n<td width=\"325\"><strong>Digital pin yang dapat digunakan sebagai interupsi<\/strong><\/td>\n<td width=\"232\"><strong>Catatan<\/strong><\/td>\n<\/tr>\n<tr>\n<td>UNO R3, Nano, Mini, other 328-based<\/td>\n<td>2,3<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>UNO R4 Minima, UNO R4 WiFi<\/td>\n<td>2,3<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>UNO WiFi Rev2, Nano Every<\/td>\n<td>semua digital pin<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Mega, Mega 2560, Mega ADK<\/td>\n<td>2, 3, 18, 19, 20, 21<\/td>\n<td>pin 20 dan 21 tidak dapat digunakan<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<td>apabila fungsi I2C digunakan<\/td>\n<\/tr>\n<tr>\n<td>Micro, Leonardo<\/td>\n<td>0, 1, 2, 3, 7<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Zero<\/td>\n<td>0-3, 5-13, A0-A5<\/td>\n<td>pin 4 tidak dapat digunakan sebagai<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<td>interrupt<\/td>\n<\/tr>\n<tr>\n<td>MKR Family boards<\/td>\n<td>0, 1, 4, 5, 6, 7, 8, 9, A1, A2<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Nano 33 IoT<\/td>\n<td>2, 3, 9, 10, 11, 13, A1, A5, A7<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Nano 33 BLE, Nano 33 BLE Sense (Rev 1 &amp; 2)<\/td>\n<td>semua pin<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Nano RP2040 Connect<\/td>\n<td>0-13, A0-A5<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Nano ESP32<\/td>\n<td>semua pin<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>GIGA R1 WiFi<\/td>\n<td>semua pin<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Due<\/td>\n<td>semua digital pin<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>101<\/td>\n<td>semua digital pin<\/td>\n<td>hanya 2, 5, 7, 8, 10, 11, 12, 13 pada<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<td>Mode CHANGE<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Returns<\/strong><\/p>\n<p>Tidak ada<\/p>\n<p><strong>Catatan dan peringatan<\/strong><\/p>\n<p>Di sini fungsi delay() tidak bekerja dan nilai yang dikembalikan oleh millis() juga tidak akan bertambah. Fungsi data serial juga dapat kehilangan data yang diterima,<\/p>\n<p><strong>Contoh<\/strong>:<\/p>\n<p>const byte ledPin = 13;<\/p>\n<p style=\"padding-left: 40px;\">const byte interruptPin = 2;<br \/>\nvolatile byte state = LOW;<\/p>\n<p style=\"padding-left: 40px;\">void setup() {<br \/>\npinMode(ledPin, OUTPUT);<br \/>\npinMode(interruptPin, INPUT_PULLUP);<br \/>\nattachInterrupt(digitalPinToInterrupt(interruptPin), blink, CHANGE);<br \/>\n}<\/p>\n<p style=\"padding-left: 40px;\">void loop() {<br \/>\ndigitalWrite(ledPin, state);<br \/>\n}<\/p>\n<p style=\"padding-left: 40px;\">void blink() {<br \/>\nstate = !state;<br \/>\n}<\/p>\n<div class=\"elementor elementor-518 elementor-location-single post-932 post type-post status-publish format-standard hentry category-abs tag-arduino tag-arduino-board tag-arduino-ide tag-bahasa-c tag-microcontroller tag-mikrokontroler\" data-elementor-type=\"single\" data-elementor-id=\"518\" data-elementor-post-type=\"elementor_library\">\n<section class=\"has_ae_slider elementor-section elementor-top-section elementor-element elementor-element-d4efa82 elementor-section-boxed elementor-section-height-default elementor-section-height-default ae-bg-gallery-type-default animated fadeIn\" data-id=\"d4efa82\" data-element_type=\"section\" data-settings=\"{&quot;animation&quot;:&quot;fadeIn&quot;}\">\n<div class=\"elementor-container elementor-column-gap-default\">\n<div class=\"has_ae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a096d1c ae-bg-gallery-type-default\" data-id=\"a096d1c\" data-element_type=\"column\">\n<div class=\"elementor-widget-wrap elementor-element-populated\">\n<div class=\"elementor-element elementor-element-7db4e5c elementor-widget elementor-widget-theme-post-content\" data-id=\"7db4e5c\" data-element_type=\"widget\" data-widget_type=\"theme-post-content.default\">\n<div class=\"elementor-widget-container\">\n<pre>Terjemahan dan edit dari <a href=\"https:\/\/docs.arduino.cc\/language-reference\/en\/functions\/external-interrupts\/attachInterrupt\/\">https:\/\/www.arduino.cc\/reference\/en\/language\/functions\/math\/abs\/\r\n<\/a>\r\n<strong>DELTA ELECTRONIC\r\n\r\nPaulus Andi Nalwan, S<\/strong>T<\/pre>\n<pre><code><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<\/div>\n<div class=\"elementor elementor-102 elementor-location-footer\" data-elementor-type=\"footer\" data-elementor-id=\"102\" data-elementor-post-type=\"elementor_library\">\n<section class=\"has_ae_slider elementor-section elementor-top-section elementor-element elementor-element-38b4120 elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default ae-bg-gallery-type-default\" data-id=\"38b4120\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n<div class=\"elementor-container elementor-column-gap-no\">\n<div class=\"has_ae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-17062fc ae-bg-gallery-type-default\" data-id=\"17062fc\" data-element_type=\"column\">\n<div class=\"elementor-widget-wrap elementor-element-populated\">\n<div class=\"elementor-element elementor-element-4771934 elementor-widget elementor-widget-heading\" data-id=\"4771934\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n<div class=\"elementor-widget-container\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Deskripsi Interrupt ini sangat berguna untuk mengatasi masalah timing pada microcontroller contohnya pada aplikasi pembacaan rotary encoder ataupun input dari user di mana program diharapkan tidak akan terlewat dalam mengambil pulsa rotary encoder sambil dapat mengerjakan hal lain tanpa harus melakukan polling menunggu signal encoder. Bisa juga untuk sensor-sensor yang lain seperti pembacaan klik pada [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[368],"tags":[94,104,105,96,95],"class_list":["post-1717","post","type-post","status-publish","format-standard","hentry","category-attachinterrupt","tag-arduino","tag-bahasa-c","tag-c-language","tag-microcontroller","tag-mikrokontroler"],"_links":{"self":[{"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/posts\/1717"}],"collection":[{"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/comments?post=1717"}],"version-history":[{"count":2,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/posts\/1717\/revisions"}],"predecessor-version":[{"id":1719,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/posts\/1717\/revisions\/1719"}],"wp:attachment":[{"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/media?parent=1717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/categories?post=1717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/delta-electronic.com\/Design\/Hardwares\/wp-json\/wp\/v2\/tags?post=1717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}