Percobaan 2
Interrupt Arduino
1. FOTO HARDWARE DAN DIAGRAM BLOK [Kembali]
a. Hardware
1. dipswitch
2. arduino una
3. resitor
4. power supply
5. ground
6. IC Max7219
7. LED dot matrix
2. arduino una
3. resitor
4. power supply
5. ground
6. IC Max7219
7. LED dot matrix
b. Diagram Blok
2. PROSEDUR PERCOBAAN [Kembali]
- Rangkai semua komponen
- Buat program di aplikasi arduino IDE
- Setelah selesai masukkan program ke arduino
- Jalankan program pada simulasi dan cobakan dengan modul
3. RANGKAIAN SIMULASI DAN PRINSIP KERJA [Kembali]
Pada percobaan 2 menggunakan interruot arduino dimana fungsi ini akan menunda program utama selama kondisi untuk mengaktifkan interrupt ini masih terpenuhi. jadi ketika switch tidak dalam keadaan falling (yaitu perubahan dari 1 ke 0) maka arduino akan menjalankan program utama. disini program utamanya berupa hitungan angka dari dengan pertambahan 1 dan akan ditampilkan ke LCD. jika switch dalam kondisi falling, maka akan dijalankan program interrupt yang bernama "tombol_ditekan". pada program ini memiliki output buzzer yang mana buzzer akan berbunyi dan pada LCD akan mati. ketika kondisi pada switch tidak falling lagi maka arduino akan kembali menjalankan program utama.
a. Flowchart
b. Listing Program
#include<LiquidCrystal_I2C.h>
#define LED 13 //pin 13 bernama LED
#define tombol 2 //pin 2 (pin interrupt) bernama tombol
#define buzzer 11
volatile byte led_nyala = LOW; //kondisi mula-mula LED mati
static int count = 0;
volatile byte buzzer_nyala = LOW;
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
lcd.init();
lcd.backlight();
pinMode(LED,OUTPUT);
pinMode(tombol,INPUT);
attachInterrupt(digitalPinToInterrupt(2),tombol_ditekan, FALLING); //pin 2 (interrupt 0) digunakan
sebagai interrupt eksternal
}
void loop() { //Main Program
digitalWrite(LED,HIGH);
digitalWrite(buzzer,LOW);
lcd.setCursor(0,0);
lcd.print("Count:");
lcd.setCursor(0,1);
lcd.print(count);
count += 1; // menambahkan integer count dengan angka 1
delay(1000);
}
//membuat fungsi bernama tombol_ditekan, fungsi ini (ISR) dieksekusi secara otomatis setelah arduino
memperoleh sinyal interrupt di pin 2
void tombol_ditekan()
{
digitalWrite(LED,LOW);
digitalWrite(buzzer,HIGH);
count = 0;
delay(100000);
}
5. KONDISI [Kembali]
ketika kondisi pada pin interrupt berada dalam kondisi falling maka program interrupt akan dijalankan dan menunda program utama. jika kondisi pada pin interrupt tidak falling lagi maka program utama akan kembali dijalankan
6. VIDEO RANGKAIAN [Kembali]


Tidak ada komentar:
Posting Komentar