TP 1 MODUL 2
Percobaan 2 Kondisi 7
Interrupt Arduino
1. Prosedur [Kembali]
- Rangkai semua komponen
- Buat program di aplikasi arduino IDE
- Setelah selesai masukkan program ke arduino
- Jalankan program pada simulasi dan cobakan sesuai kondisi
- Rangkaian
- Prinsip Kerja
Pada percobaan 2 Kondisi 7 bahwa Saat berjalan motor akan berputar ke kanan 5 detik, berhenti 3 detik, berputar ke kiri 5 detik dan berhenti 7 detik LCD akan menampilkan counting dari 50 - 0 saat interrupt counting diulang dari 50 dan motor dc akan berhenti 3 detik.
Maka prinsip kerja dari rangkaian adalah Dipswitch yang dihubungkan pada pin input pada Arduino berguna sebagai interrupt dan output akan ditampilkan pada LCD serta Motor DC yang dihubungkan pada digital output pada arduino sehingga tercapai kondisi diatas.
- Listing Program
#include <LiquidCrystal_I2C.h>
#define tombol 2 // pin 2 (pin interrupt) bernama tombol
#define motorPin 11 // pin 11 untuk motor
#define motorDelay 5000 // Waktu rotasi motor dalam milidetik
#define stopDelay 3000 // Waktu motor berhenti dalam milidetik
#define restartDelay 7000 // Waktu sebelum penghitungan dimulai ulang dalam milidetik
volatile int count = 50; // Mulai dari 50
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
lcd.init();
lcd.backlight();
pinMode(tombol, INPUT);
pinMode(motorPin, OUTPUT);
attachInterrupt(digitalPinToInterrupt(2), tombol_ditekan, FALLING);
}
void loop() { // Main Program
// Rotasi motor ke kanan selama 5 detik
digitalWrite(motorPin, HIGH);
delay(motorDelay);
// Stop motor selama 3 detik
digitalWrite(motorPin, LOW);
delay(stopDelay);
// Rotasi motor ke kiri selama 5 detik
digitalWrite(motorPin, HIGH);
delay(motorDelay);
// Stop motor selama 3 detik
digitalWrite(motorPin, LOW);
delay(stopDelay);
// LCD menampilkan counting dari 50 sampai 0
lcd.setCursor(0, 0);
lcd.print("Count: ");
lcd.setCursor(0, 1);
lcd.print(count);
// Pengurangan integer count dengan angka 1
count -= 1;
// Jika count mencapai 0, reset kembali ke 50 dan tunggu 3 detik
if (count < 0) {
count = 50;
delay(stopDelay);
}
}
// Fungsi interrupt tombol ditekan
void tombol_ditekan() {
count = 50; // Mengatur ulang hitungan
delay(restartDelay);
}
Saat berjalan motor akan berputar ke kanan 5 detik, berhenti 3 detik, berputar ke kiri 5 detik dan berhenti 7 detik LCD akan menampilkan counting dari 50 - 0 saat interrupt counting diulang dari 50 dan motor dc akan berhenti 3 detik.
x HTML klik disini
Simulasi klik disini
Gambar Simulasi klik disini
Video Simulasi klik disini
Listring Program klik disini
Video Simulasi klik disini
Listring Program klik disini
Komentar
Posting Komentar