1. Prosedur [back]
Langkah-langkah percobaan :
1. Siapkan alat dan bahan yaitu dengan komponen yaitu Arduino Uno,
Dipswitch, LCD, Motor, dan komponen lainnya
2. Rangkai sesuai gambar percobaan.
3, Rancang kerja rangkaian sesuai kondisi.
4. Jalankan simulasi.
2. Hardware dan diagram blok [back]
- Arduino Uno
- Dipswitch
- LCD
- IC PCF 8574
- Potensiometer
- Motor
- Diagram blok
3. Rangkaian Simulasi dan Prinsip Kerja [back]
- Prinsip Kerja :
Pada rangkaian diatas menggunakan interrupt arduino dengan motor dan tampilan LCD. Pada saat dipswitch aktif Motor akan berputar ke kanan selama 5 detik, lalu mati 3 detik, berputar kekiri 5 detik dan mati 7 detik. Hal ini disetting menjadi loop interrupt counting arduino. Kemudian LCD akan menampilkan counting dari 50 sampai 0, interrupt counting diulang dari 50 dan kemudian motor DC berhenti 3 detik
4. Flowchart dan Listing Program [back]
- Flowchart
- Listing Program
#include <LiquidCrystal_I2C.h>
#define tombol 2 // pin 2 (pin interrupt) bernama tombol
#define motorPin 11 // pin 11 untuk motor
#define motorDelay 500 // Waktu rotasi motor dalam milidetik
#define stopDelay 300 // Waktu motor berhenti dalam milidetik
#define restartDelay 700 // Waktu sebelum penghitungan dimulai ulang dalam milidetik
volatile int count = 50; // Mulai dari 50
LiquidCrystal_I2C lcd(0x27, 16, 2);
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);
}
6. Kondisi [back]
Percobaan 2 (Interrupt Arduino - LCD,LED, dan Motor DC) Kondisi 7 :
Motor ke kanan 5 detik lalu mati 3 detik berputar ke kiri 5 detik dan mati 7 detik ,LCD menampilkan counting dari 50 sampai 0, interrupt counting diulang dari 50 dan motor DC berhenti 3 detik
7. Video Simulasi [back]
8. Download File [back]
Tidak ada komentar:
Posting Komentar