TUJUAN :
1.
Mampu
membuat program untuk penggunaan fitur interupsi eksternal.
2.
Memahami
perbedaan mode interupsi eksternal (falling, rising, dan any
change).
PERALATAN :
|
|
|
1.
|
Komputer
|
|
2.
|
Arduino Uno
|
|
3.
|
Project board
|
|
4.
|
Kabel
jumper
|
|
5.
|
Switch pushbutton
|
|
6.
|
LCD
|
|
7.
|
Potensiometer 10K
|
|
PERCOBAAN :
4.1 Interupsi Eksternal dengan
Mode Falling
Prosedur:
1. Rangkailah rangkaian pada gambar 4.1
2.
Tuliskan sintaks program
berikut ini, kemudian
lakukan kompilasi dan upload
program ke sistem minimum Arduino.
#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);
Tugas dan Pertanyaan :
1. Biarkan program berjalan sehingga pada
LCD nilai count loop increment sampai diatas 5. Kemudian tekan salah
satu switch yang terhubung pada INT0 atau INT1 selama 5 detik kemudian
lepaskan. Amati teks yang ditampilkan pada LCD. Apakah yang akan terjadi jika switch
ditekan ? Apakah yang akan terjadi jika switch dilepas ?
Jawab:
Ketika switch INT0 (Pin
Digital 2) ditekan, maka
pada layar LCD akan menampilkan teks
“Interrupt INT0”
(InterupsiEksternal 0), sedangkan ketika switch INT1 (Pin
Digital 3) yang
ditekan, maka layar LCD akan menampilkan teks “InterruptINT1” (InterupsiEksternal 1). Dan ketika switch di lepas, maka program looping berhitungnya akan
kembali bekerja kembali.
2. Jelaskan pada saat kapan terjadinya
proses interupsi ?
Jawab:
Proses
Interupsi terjadi ketika salah satu switch (Switch INT0 atau Switch INT1)
dilepas kemudian ditekan.
4.2 Interupsi Eksternal dengan
Mode Rising
Dua buah switch akan
dihubungkan pada pin INT0 dan INT1 sama seperti Percobaan 4.1. Penekanan switch
akan menginterupsi program utama (yang berada pada fungsi loop) dan
memaksa untuk menjalankan rutin interupsi yang telah dideskripsikan pada
program. Pada Percobaan mode interupsi yang digunakan adalah rising.
Prosedur :
#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);
}
Tugas dan Pertanyaan :
1.
Biarkan program berjalan sehingga pada LCD nilai count
loop increment sampai diatas 5. Kemudian tekan salah satu switch
yang terhubung pada INT0 atau INT1 selama 5 detik kemudian lepaskan. Amati teks
yang ditampilkan pada LCD. Apakah yang akan terjadi jika switch ditekan
? Apakah yang akan terjadi jika switch dilepas ?
Jawab:
Ketika switch INT0 (Pin Digital 2) di tekan, LCD tetap akan
berlooping (Berhitung), tetapi pada saat switch di lepas akan terjadi proses interupsi, pada layar LCD muncul teks “Interrupt INT0” (InterupsiEksternl 0) dan akan muncul di LCD selama 2 detik (Delay 2000). Begitu juga ketika switch INT1 (Pin Digital 3) di tekan, LCD tetap akan berlooping (Berhitung) dan pada saat switch
di lepas, akan terjadi
proses interupsi dan pada layar LCD muncul teks “Interrupt INT1” (InterupsiEksternl1) selama 2 detik (Delay 2000).
2. Jelaskan pada saat kapan terjadinya proses
interupsi ?
Jawab:
Proses
Interupsi terjadi pada saat salahsatu switch (INT0 atau INT1) ditekan kemudian dilepas.
3. Kapankah interupsi mode falling terjadi ?
kapankah interupsi mode rising terjadi ? Jelaskan !
Jawab:
Interupsi mode Falling terjadi jika salah satu switch ditekan
(Logika HIGH menuju LOW), sedangkan Interupsi mode Rising akan terjadi jika salahsatu
switch dilepas (Logika LOW menuju HIGH).
4.3 Interupsi Eksternal dengan
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 membuatprogram
utama pada fungsi loop terhenti dan mengeksekusi rutin int erupsi.
Prosedur :
1. Gantilah sintaks program pada
Percobaan 4.2 dengan sintaks program berikut ini. Lakukan kompilasi dan upload
program ke sistem minimum Arduino.
#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);
Tugas dan Pertanyaan :
1.
Biarkan program berjalan sehingga pada LCD nilai count
loopincrement sampai diatas 5. Kemudian tekan salah satu switch yang
terhubung pada INT0 atau INT1 selama 5 detik kemudian lepaskan. Amati teks yang
ditampilkan pada LCD. Apakah yang akan terjadi jika switch ditekan ?
Apakah yang akan terjadi jika switch dilepas ?
Jawab:
Pada saat switch INT0 (Pin Digital 2) di tekan, maka proses interrupt akan terjadi “Interupt INT0” (InterupsiEksternal 0) akan muncul di layar LCD selama 2
detik (Delay
2000), (tekan dan tahan switch selama 5 detik/beberapa detik) selama beberapa detik maka looping increasenya
tetap berjalan, dan ketika switch di lepas, maka proses interupsi akan kembali
muncul lagi di layar selama 2 detik sebelum program looping increase kembali
berjalan secara normal kembali. Begitu pula dengan switch INT1. Pada saat switch
INT1 (Pin Digital 3) di tekan, maka proses interrupt akan terjadi“Interupt INT1” (InterupsiEksternal 1), akan muncul di layar LCD selama 2 detik (Delay 2000), (tekan dan tahan switch selama 5 detik/beberapa detik) selama beberapa detik maka looping increasenya
tetap berjalan, dan ketika switch di lepas, maka proses interupsi akan kembali
muncul lagi di layar selama 2 detik sebelum program looping increase kembali
berjalan secara normal.
2.
Jelaskan pada saat kapan terjadinya proses interupsi
?
Jawab:
Proses
interupsi akan terjadi jika salahsatu switch (INT0 atau INT1) ditekan dan dilepas.
3.
Kapankah interupsi mode any change terjadi
? Jelaskan !
Jawab:
Proses
Interupsi akan terjadi apabila switch ditekan dan dilepas. (LogikaHIGH menuju
LOW atau sebaliknya Logika LOW menuju HIGH).