Percobaan II
Interrupt Arduino - LCD,LED, dan Motor DC
1. Prosedur [Kembali]
- Rangkailah seperti rangkaian berikut
- Buka Arduino IDE dan masukan listing program
- Upload program ke arduino
- Mencoba rangkaiannya dengan memvariasikan kondisi interupt (Falling, Rising, High dan Low)
Gambar 1. Rangkaian Hardware
1. Arduino Uno
2. LED
4. LCD
6. Resistor
7. Kabel jumper
Diagram Blok:
Gambar 1. Rangkaian Simulasi. Prinsip Kerja: Pada rangkaian percobaan 2 ini menggunakan Dip Switch yang berfungsi sebagai input, kemudian buzzer, LED, dan LCD berfungsi sebagai output. Ketika Arduino diaktifkan, perangkat akan secara terus-menerus mengatur pencahayaan LED dan menampilkan peningkatan nilai hitungan secara berkala pada layar LCD. Pada saat tombol dipencet, langkah-langkah dalam fungsi "tombol_ditekan()" akan dijalankan. Ini mengakibatkan LED dimatikan, buzzer diaktifkan, dan nilai hitungan dikembalikan ke nol. Langkah-langkah ini memberikan umpan balik kepada pengguna bahwa aksi telah diambil setelah tombol dipencet. Perlu dicatat bahwa fungsi "tombol_ditekan()" menggunakan interrupt untuk merespons dengan cepat terhadap tindakan pengguna. |
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.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);
}
Kondisi percobaan 2 sesuai modul 2
᭒ HTML↠ klik disini
᭒ Gambar Rangkaian ↠ klik disini
᭒ Video Demo ↠ klik disini
᭒ Listing Program ↠ klik disini
᭒ Video Demo ↠ klik disini
᭒ Listing Program ↠ klik disini
᭒ Download Datasheet ARDUINO UNO ↠ klik disini
᭒ Download Datasheet LCD 2X16 ↠ klik disini
᭒ Donwload Datasheet Buzzer ↠ Klik disini
᭒ Download Datasheet LED ↠ Klik disini
Tidak ada komentar:
Posting Komentar