Pada Board arduino uno terdapat 3 intrupsi eksternal yaitu
1. Intrupsi Eksternal dengan Mode Falling
2. Intrupsi Eksternal dengan Mode Rising
3. Intrupsi Eksternal dengan Mode Any Change
LANGKAH PERCOBAAN
1. Intrupsi Eksternal dengan Mode Falling
Pada percobaan ini program dibuat untuk memahami penggunaan interupsi eksternal dengan Mode Falling. Dua buah switch akan dih ubungkan pada pin interupsi eksternal 0 (INT0) dan interupsi eksternal 1 (INT1). Pen ekanan switch akan menginterupsi program utama (yang berada pada fungsi loop) d an memaksa untuk menjalankan rutin interupsi yang telah dideskripsikan pada program.
` Prosedur :
1. Rangkai sesuai gambar dibawah
2. Lalu buat program sintak seperti sintaks dibawah :
#include
<LiquidCrystal.h> LiquidCrystal
lcd(A0,A1,A2,A3,A4,A5); unsigned int countLoop
= 0;
void setup() { lcd.begin(16,2);
lcd.clear();
attachInterrupt(0,
rutinInterupsi0, FALLING); attachInterrupt(1, rutinInterupsi1, FALLING);
}
void loop() {
lcd.setCursor(0,0); lcd.print("Main
Program");
lcd.setCursor(0,1);
lcd.print("Count Loop ");
lcd.print(countLoop); countLoop++;
delay(1000);
}
void rutinInterupsi0()
{
lcd.setCursor(0,0);
lcd.print("Int0 Program");
lcd.setCursor(0,1); lcd.print("Interrupt
INT0"); delay(2000);
}
void rutinInterupsi1()
{
lcd.setCursor(0,0);
lcd.print("Int1 Program");
lcd.setCursor(0,1); lcd.print("Interrupt
INT1"); delay(2000);
}
![](file:///C:/Users/Anggi/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif)
![](file:///C:/Users/Anggi/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif)
3. Lalu jalankan simulator proteus untuk mengamati proses intrupsi mode falling
kondisi awal
kondisi saat switch ditekan
Penjelasan :
Pada mode falling proses intrupsi terjadi jika switch ditekan karena switch terhubung dengan ground jika switch terhubung dengan pin maka nilai inputan akan bernilai 0 jadi kesimpulannya proses falling terjadi jika perubahan input dari 1 ke 0.
Dua buah switch akan dihubungkan pada pin
INT0 dan I NT1 sama seperti Percobaan 1 Peneka nan switch akan
menginterupsi program utama (yang berada pada fungsi loop) da n memaksa
untuk menjalankan rutin in terupsi yang telah dideskripsikan pada program. Pada
Percobaan mode interupsi yan g digunakan adalah rising.
#include
<LiquidCrystal.h> LiquidCrystal
lcd(A0,A1,A2,A3,A4,A5); unsigned int countLoop
= 0;
void setup() {
lcd.begin(16,2);
lcd.clear(); attachInterrupt(0, rutinInterupsi0, RISING); attachInterrupt(1,
rutinInterupsi1, RISING);
}
void loop() {
lcd.setCursor(0,0); lcd.print("Main
Program");
lcd.setCursor(0,1); lcd.print("Count
Loop "); lcd.print
(countLoop);
countLoop++; delay(1000);
}
void rutinInterupsi0()
{
lcd.setCursor(0,0); lcd.print("Int0
Program");
lcd.setCursor(0,1); lcd.print("Interrupt
INT0");
delay(2000);
}
void rutinInterupsi1()
{
lcd.setCursor(0,0); lcd.print("Int1
Program");
lcd.setCursor(0,1); lcd.print("Interrupt
INT1");
delay(2000);
}
Kondisi Awal
Kondisi saat pushbutton ditekan
Kondis saat pushbutton dilepas
Penjelasan:
Program intrupsi rising terjadi jika saat switch dilepas, jadi saat switch di tekan proram intrupsi tidak akan berjalan namu saat switch diepas maka program intrupsi akan aktif jadi skesimpulan intrupsi ekternal mode rising akan aktif jika perubahan input dari 0 ke 1.
3. Intrupsi Eksternal Mode Any Change
Pada Percobaan mode interupsi yang digunakan
adalah any change. Dua buah switch akan dihubungkan pada pin INT0
dan INT1. Penekanan switch akan membuat program utama pada fungsi
loop terhenti dan mengeksekusi rutin interupsi.
1. Ganti sintak program seperti dibawah :
#include
<LiquidCrystal.h>
LiquidCrystal
lcd(A0,A1,A2,A3,A4,A5);
unsigned int countLoop = 0;
void setup() {
lcd.begin(16,2);
lcd.clear();
attachInterrupt(0, rutinInterupsi0,
CHANGE);
attachInterrupt(1, rutinInterupsi1,
CHANGE);
}
void loop() {
lcd.setCursor(0,0); lcd.print("Main
Program");
lcd.setCursor(0,1); lcd.print("Count
Loop ");
lcd.print(countLoop);
countLoop++; delay(1000);
}
void rutinInterupsi0()
{
lcd.setCursor(0,0); lcd.print("Int0
Program");
lcd.setCursor(0,1); lcd.print("Interrupt
INT0");
delay(2000);
}
void rutinInterupsi1()
{
lcd.setCursor(0,0); lcd.print("Int1
Program");
lcd.setCursor(0,1); lcd.print("Interrupt
INT1");
delay(2000);
}
2. Amati proses pengintrupsian menggunakan mode any change dengan menggunakan simulator proteus :
Kondisi saat switch ditekan
Kondi saat switch di lepas
Penjelasan :
Karena mode any change ini
adalah gabungan dari mode falling dan rising maka saat perubahan masukan input
dari 1 ke 0 (falling) maka program akan menjalankan proses intrupsi dan saat
perubahan input dari 0 ke 1 maka layar lcd akan menampilkan INT0 atua INT1