Interrupt External Arduino


2:19 AM |

PRAKTIKUM 4
INTERUPSI EKSTERNAL

A.  TUJUAN :
1.      Mampu membuat program untuk penggunaan fitur interupsi eksternal.
2.      Memahami perbedaan mode interupsi eksternal (falling, rising, dan any change).
B.  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
: 1 pcs

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

Gambar 4.1 Rangkaian percobaan 4.1
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();
pinMode(2,INPUT); digitalWrite(2,HIGH);
pinMode(3,INPUT); digitalWrite(3,HIGH);
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 ?
è Jika Switch di tekan akan tampil tampilan seperti berikut ini.
Tapi jika di lepas, Program counter pada main program akan melanjutkan prosesnya kembali.

è Pada saat praktikum “Interupsi Eksternal” ketika terjadi perubahan logika dari switch button, fungsi dari interupsi akan di eksekusi.
void  rutinInterupsi0() {......}
di karenakan fungsi delay() tidak dapat berfungsi pada fungsi attachInterrupt() , maka setelah push button(INT 0 / INT1) di tekan maka arduino akan menjalankan program yang ada pada fungsi rutinInterupsi0() / rutinInterupsi1(), tetapi hanya beberapa saat saja dan kembali pada program utama arduino.
2.    Jelaskan pada saat kapan terjadinya proses interupsi ?
è Pada praktikum eksternal interrupt terjadi saat di beri perintah dari luar dengan memberikan logika ke pin INT0/INT1.

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();
pinMode(2,INPUT); digitalWrite(2,HIGH);
pinMode(3,INPUT); digitalWrite(3,HIGH);
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 ? 
è Jika Switch di tekan , kemudian di lepas kembali akan tampil tampilan seperti berikut ini. Ini di sebabkan kodisi switch yang di pull-up.
Tapi jika di lepas, Program counter pada main program akan melanjutkan prosesnya kembali.

è  Pada saat praktikum “Interupsi Eksternal” ketika terjadi perubahan logika dari switch button, fungsi dari interupsi akan di eksekusi.
void  rutinInterupsi0() {......}
di karenakan fungsi delay() tidak dapat berfungsi pada fungsi attachInterrupt() , maka setelah push button(INT 0 / INT1) di tekan maka arduino akan menjalankan program yang ada pada fungsi rutinInterupsi0() / rutinInterupsi1(), tetapi hanya beberapa saat saja dan kembali pada program utama arduino.
2.    Jelaskan pada saat kapan terjadinya proses interupsi ?
è  Pada praktikum eksternal interrupt terjadi saat di beri perintah dari luar dengan memberikan logika ke pin INT0/INT1
3.    Kapankah interupsi mode falling terjadi ? kapankah interupsi mode rising terjadi ? Jelaskan !
è Mode falling terjadi saat ada perubahan logika HIGH ke LOW.
è Mode rising terjadi saat ada perubahan logika LOW ke HIGH.



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();
pinMode(2,INPUT); digitalWrite(2,HIGH);
pinMode(3,INPUT); digitalWrite(3,HIGH);
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 praktikum “Interupsi Eksternal” ketika terjadi perubahan logika dari switch button, fungsi dari interupsi akan di eksekusi.
void  rutinInterupsi0() {......}
di karenakan fungsi delay() tidak dapat berfungsi pada fungsi attachInterrupt() , maka setelah push button(INT 0 / INT1) di tekan maka arduino akan menjalankan program yang ada pada fungsi rutinInterupsi0() / rutinInterupsi1(), tetapi hanya beberapa saat saja dan kembali pada program utama arduino.
2.    Jelaskan pada saat kapan terjadinya proses interupsi ?
è  Pada praktikum eksternal interrupt terjadi saat di beri perintah dari luar dengan memberikan logika ke pin INT0/INT1
3.    Kapankah interupsi mode any change terjadi ? Jelaskan !
è  Mode any change akan terjadi jika ada perubahan logika/nilai pada pin INT0/INT1.




You Might Also Like :


Pengikut