Rabu, 23 Oktober 2013

Posted by Unknown |
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.



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>  // 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