Pages

Sabtu, 30 November 2013

PRATIKUM 4 INTERUPSI EKTERNAL



PRATIKUM 4
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 :

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

2.      Jelaskan pada saat kapan terjadinya proses interupsi? 
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;

void setup() { 
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);

}

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 nilsi count loop 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 belum terjadi interupsi pada INT0 atau  INT1. Tapi pada saat Buttonnya di lepas maka akan terjadi interupsi Antara INT0 atau INT1

2.      Jelaskan pada saat kapan terjadinya proses interupsi? 
Jawab : 
Pada saat Buttonya di lepas sehingga terjadi perubahan interupsi kondisi dari low ke high.

3.      Kapankah interupsi mode falling terjadi?kapankah interupsi mode rising terjadi?jelaskan? 
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.

2.jelaskan pada saat kapan terjadinya proses interupsi? 
Jawab :
Pada saat Buttonya  di tekan dan di lepas sehingga terjadi perubahan interupsi kondisi Antara high ke low atau dari low ke high.



3.kapankah interupsi mode any change terjadi?jelaskan?
Jawab :
 
Proses interupsi mode any change terjadi pada perubahan dari kondisi high ke low atau low ke high.



Tidak ada komentar:

Posting Komentar