Sunday, November 3, 2013

INTERUPSI EKSTERNAL

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