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.
Prosedur :
1.
Rangkailah rangkaian pada Gambar
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 ?
Pada saat
switch ditekan pad lcd akan muncul tulisan
“Interrupt INT0” dan saat switch
dilepas maka “Count Loop” akan berjalan seperti biasa.
2. Jelaskan
pada saat kapan terjadinya proses interupsi ?
Pada saat
inputan kondisi HIGH to LOW, karena setting awal switch buat bernilai 1,
sehingga proses interupsi terjadi pada saat switch ditekan.
2.
Interupsi Eksternal dengan Mode Rising
Dua buah switch akan dihubungkan pada pin
INT0 dan INT1 sama seperti Percobaan . 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 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 ditekan pada lcd akan muncul tulisan
“Count
Loop” dan saat switch
dilepas maka akan muncul tulisan “Interrupt INT0
”
2. Jelaskan
pada saat kapan terjadinya proses interupsi ?
Pada saat
inputan kondisi LOW to HIGH, sehingga proses interupsi terjadi pada saat switch
dilepas.
3. Kapankah
interupsi mode falling terjadi ? kapankah interupsi mode rising terjadi
? Jelaskan !
Pada saat
inputan kondisi HIGH menuju LOW, disebut dengan falling, sementara rising
saat inputan kondisi LOW menuju HIGH.
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 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 ?
Penggabungan anatara interupsi falling
dan interupsi rising dimana pada saat switch ditekan maka akan muncul di
LCD “interrupt INT0” dan saat switch dilepas maka akan muncul lagi di LCD
“interrupt INT0”.
2.
Jelaskan
pada saat kapan terjadinya proses interupsi ?
Pada saat
terjadi perubahan nilai dari 1 ke 0 ataupun dari 0 ke 1. Saat switch ditekan
maka terjadi proses interupsi falling
dan saat dilepas maka terjadi interupsi rising.
3.
Kapankah
interupsi mode any change terjadi ? Jelaskan !
Perubahan
nilai dari 1 ke 0(falling) atau dari 0 ke 1(rising) maka ini disebut interupsi
any change.
No comments:
Post a Comment