Percobaan 2
Interrupt Arduino
1. Foto Hardware dan Diagram Blok [Kembali]
3. DIP Switch
4. LED
5. Buzzer
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
Prinsip Kerja
Rangkaian ini menggunakan komponen antara lain yaitu Arduino Uno, LED, LCD, DIP Switch, dan Buzzer.
Prinsip kerja dari percobaan ini adalah ketika rangkaian ini dijalankan, arduino akan terus menghitung angka (Countdown), menyalakan LED dan buzzer, angka tersebut akan terus berkurang dari 100-0 dan ditampilkan pada LCD. perhitungan angka ini akan terus -1 hingga diberikan interupt, dimana interupt pada rangkaian ini digunakan pada pin 2. ketika pin interupt atau pin 2 mengalami kondisi falling (perubahan logika dari logika 1 ke logika 0), maka interupt akan terjadi.
Interupt yang terjadi ialah mengulang angka yang dihitung, mematikan LED dan buzzer, dikarenakan interupt hanya terjadi ketika kondisi Falling, maka program akan kembali menghitung pada angka sebelum terajadinya interrupt dan menyalakan LED serta buzzer. Kondisi interrupt akan diulang lagi hingga pin interupt/pin 2 mengalami kondisi Falling kembali.
4. Flowchart dan Listing Program [Kembali]
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);
}
Pada kondisi 2 dari percobaan 2, Motor ke kanan,LCD menampilkan counting dari 100 sampai 0, interrupt maka motor DC berhenti 4 detik.
᭒ HTML↠ klik disini
᭒ Rangkaian ↠ klik disini
᭒ Video Percobaan↠ klik disini
᭒ Program↠ klik disini
᭒ Datasheet Arduino↠ klik disini
᭒ Datasheet LCD↠ klik disini
᭒ Datasheet DIP Switch↠ klik disini
᭒ Datasheet LED↠ klik disini
᭒ Datasheet Buzzer ↠ klik disini
Tidak ada komentar:
Posting Komentar