PRATIKUM
4
INTERUPSI EKTERNAL
INTERUPSI EKTERNAL
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 : 1 pcs
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 di hubungkan 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 4.1
2. Tuliskan sintaks program berikut ini,kemudian lakukan
kompilasi dan upload program ke system 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);
pinMode(2,0);
pinMode(3,0);
digitalWrite(2,1);
digitalWrite(3,1);
}
void
loop() {
lcd.setCursor(0,0);
lcd.print(“Main Program”);
lcd.setCursor(0,1);
lcd.print(“Count Loop”); lcd.print(count
loop);
countLoop++;
delay(1000);
}
void
rutinInterupsi0( ){
lcd.setCursor(0,0);
lcd.print( lcd.print(“Int0 Program”);
lcd.setCursor(0,1);
lcd.print( 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 :
Jawab:
Pada saat menekan salah
satu Button maka akan terjadi interupsi pada INT0 atau INT1. Tapi melihat
proses interupsi hanya sebentar di karenakan penekanan switch akan
menginterupsi program utama (yang berada pada fungsi loop) dan pada fungsi
untuk memanggil interupsi tidak ada
delay.
Pada saat Buttonnya di
lepas maka tidak ada terjadi apa-apa, hanya menampilkan count loopnya lagi
Jawab :
Proses interupsi mode falling
terjadi pada perubahan dari kondisi high ke low Antara INT0 atau INT1.
4.2 Interupsi Eksternal
dengan mode Rising
Dua buah switch akan di
hubungkan 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 laukan komplikasi dan upload program ke system minimum arduino.
#include <LiquidCrystal.h>
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);
unsigned int countLoop = 0;
lcd.begin(16,2); lcd.clear();
attachInterrupt(0, rutinInterupsi0, RISING);
attachInterrupt(1, rutinInterupsi1, RISING);
pinMode(2,0);
pinMode(3,0);
digitalWrite(2,1);
digitalWrite(3,1);
lcd.setCursor(0,0); lcd.print(“Main Program”);
lcd.setCursor(0,1); lcd.print(“Count Loop”); lcd.print(count loop);
countLoop++; delay(1000);
}
lcd.setCursor(0,0); lcd.print(“Int0 Program”);
lcd.setCursor(0,1); lcd.print(“Interrupt INT0“);
delay(2000);
}
lcd.setCursor(0,0); lcd.print(“Int1 Program”);
lcd.setCursor(0,1); lcd.print(“Interrupt INT1”);
delay(2000);
}
Tugas dan pertanyaan :
Jawab:
Pada saat menekan salah satu Button maka belum terjadi interupsi pada INT0 atau INT1. Tapi pada saat Buttonnya di lepas maka akan terjadi interupsi Antara INT0 atau INT1
Jawab :
Pada saat Buttonya di lepas sehingga terjadi perubahan interupsi kondisi dari low ke high.
Jawab :
Proses interupsi mode falling terjadi pada perubahan dari kondisi high ke low. Kalau mode rising terjadi pada perubahan kondisi dari low ke high.
4.3
Interupsi Eksternal dengan mode Any Change
Pada
percobaan mode interupsi yang di gunakan adalah any change.dua buah switch akan
di hubungkan pada pin INT0 atau 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
system 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);
pinMode(2,0);
pinMode(3,0);
digitalWrite(2,1);
digitalWrite(3,1);
}
void
loop() {
lcd.setCursor(0,0); lcd.print(“Main Program”);
lcd.setCursor(0,1); lcd.print(“Count Loop”); lcd.print(count loop);
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 di atas 5.
Kemudian tekan salah satu switch yang terhubung pada INT0 atau INT1 selama 5
detik kemudian lepaskan.amati teks yang di tampilkan pada LCD. Apakah yang akan
terjadi jika switch di tekan?apakah yang akan terjadi jika switch di lepas ?
Jawab :
Pada saat menekan salah satu Button maka terjadi
interupsi pada INT0 atau INT1. Dan pada
saat Buttonnya di lepas maka akan terjadi interupsi pada INT0 atau INT1 juga.
Jawab :
Pada saat Buttonya di tekan dan di lepas sehingga terjadi perubahan
interupsi kondisi Antara high ke low atau dari low ke high.
Jawab :
Proses interupsi mode any change terjadi pada perubahan dari kondisi
high ke low atau low ke high.
Tidak ada komentar:
Posting Komentar