PERCOBAAN 2
Interrupt Arduino
1. Rangkai komponen sesuai percobaan dan kondisi yang dipilih.
2. Buat program menggunakan Arduino IDE.
3. Compile program yang telah dibuat lalu Upload ke dalam Arduino Uno.
4. Uji coba program pada rangkaian percobaan sesuai dengan kondisi yang diinginkan.
5. Selesai
2. Hardware dan Diagram Blok
[Kembali]
3. Rangkaian Simulasi dan Prinsip Kerja
[Kembali]
Rangkaian Simulasi:
Prinsip Kerja:
Pada percobaan 2 kita menggunakan arduino sebagai mikrokontroler yang menerima input dari pin dipswitch dan untuk outputnya akan ditampilkan pada LCD, LED dan buzzer. Dimana untuk kondisi nya sudah di atur pada program yang ada pada modul dan program ini nantinya akan dibuat pada arduino ide dan akan di upload pada kommponen arduino pada rangkaian percobaan. Untuk percobaan, sesuai dengan program yang ada, jika tida ada inputan atau dipswitch berlogika low maka pada LCD akan menampilkan cunting dari 0 sampai tak hingga. Kemudian saat dipswitch berlogika high maka inputan akan masuk ke arduino dan akan terbaca sehingga sesuai dengan program saat dipswitch high maka LCD akan menampilkan counting. Dan saat diberi interrupt maka LED akan menyala dan buzzer berbunyi, dan setelah selesai akan kembali seperti semula yaitu counting diulang.
4. Flowchart dan Listing Program
[Kembali]
Flowchart :
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.clear();
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(3000);
}
5. Kondisi [Kembali]
Percobaan 2 sesuai dengan modul 2.
7. Analisa dan Pembahasan [Kembali]
Tidak ada komentar:
Posting Komentar