TUJUAN :
1. Mampu membuat program untuk
penggunaan fitur interupsi eksternal.
2. Memahami perbedaan mode interupsi eksternal (falling,
rising, dan any change).
PERALATAN :
1. Komputer :1 set
2. Arduino Uno :1 pcs
3. Project board :1 pcs
4. Kabel jumper :1 pcs
5. Switch pushbutton :2 pcs
6. LCD :1 pcs
7. Potensiometer 10K :1pcs
PERCOBAAN :
4.1 Interupsi Eksternal dengan Mode Falling
Pada percobaan kali ini akan
dibuat program untuk memahami penggunaan
interupsi
eksternal dengan mode falling. Dua buah switch akan dihubungkan
pada pin
interupsi
eksternal 0 (INT0) dan interupsi eksternal 1 (INT1). Penekanan switch akan
menginterupsi
program utama (yang berada pada fungsi loop)
dan memaksa untuk
menjalankan
rutin interupsi yang telah dideskripsikan pada program.
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> // untuk inisial lcd
LiquidCrystal
lcd(A0,A1,A2,A3,A4,A5); // pin
A0,A1,A2,A3,A4,A5 sebagai input
unsigned int countLoop = 0;
void setup() {
lcd.begin(16,2); //
menyeting jumlah kolom sebanyak 16 dan baris 2
lcd.clear(); // untuk mengeset ulang lcd
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 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 ?
= Jika switch pin
2 di tekan, maka program akan menjalankan void rutinInterupsi 0 dan apabilaswitch pin 3 ditekan, maka program akan menjalankan void rutinInterupsi 1. Jika switch dilepas maka program akankembalimengitung looping ataukembalike
void loop.
2.
Jelaskan
pada saat kapan terjadinya proses interupsi ?
= Pada
saat mode Interupsi Falling, maka
interupsi terjadi pada saat terjadi
perubahan kondisi dari HIGH ke
kondisi LOW pada INT0 atau INT1. Atau
pada saat switch di
tekan.
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
:
1.
Gantilah
program pada Percobaan 4.2 dengan 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, 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 ?
= pada saat switch di tekan interupsi tidak akan
aktif tapi setelah swicth di lepas maka interupsi akan aktif .hal tersebut
terjadi karena pada saat switch ditekan intrupsi berada pada logika 0 sedangkan
saat switch dilepas intrupsi bernilai 1 .
2.
Jelaskan
pada saat kapan terjadinya proses interupsi ?
=interupsi
terjadi pada saat kita menekan salah satu switch dan menahannya dalam beberapa
detik, pada kita lepas disana lah akan kelihatan interupsinya.
3.
Kapankah
interupsi mode falling terjadi ? kapankah interupsi mode rising terjadi
?
Jelaskan !
=interupsi mode
falling adalah perubahan dari high ke low pada saat kita menekan switch , akan
tetapi interupsi mode rising adalah perubahan dari low ke high pada saat kita
menekan switch.
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 membuat
program
utama pada fungsi loop terhenti dan mengeksekusi rutin interupsi.
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 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 ?
= pada saat switch di tekan interupsi
akan aktif dan saat swicth di lepas interupsi juga akan aktif , akan
menghasilkan INT0 atau INT1.
2. Jelaskan pada
saat kapan terjadinya proses interupsi ?
= Proses
Interupsi terjadi pada saat salahsatu switch (INT0 atau INT1) ditekan kemudian
dilepas.
3. Kapankah
interupsi mode any change terjadi ?
Jelaskan !
= Interupsi pada mode “CHANGE”
terjadi ketika terjadi perubahan pada pin
interupsi, baik
kondisi HIGH ke LOW ataupun sebaliknya, LOW ke HIGH.
0 komentar:
Posting Komentar