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
- Prinsip Kerja
- Flowchart
- Listing Program
#include
<LiquidCrystal_I2C.h>
// Definisi pin untuk LED dan motor
#define LED1 13
#define LED2 12
#define LED3 11
#define LED4 10
#define motorPin1 9
#define motorPin2 8
#define interruptPin 2
// Flag volatile untuk menandakan apakah tombol telah ditekan
volatile bool buttonPressed = false;
// Variabel untuk menyimpan nilai count
int count = 0;
// Inisialisasi objek LCD I2C dengan alamat 0x27, 16 kolom, dan 2 baris
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// Set pin-mode untuk LED, motor, dan
pin interrupt
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(interruptPin,
INPUT_PULLUP);
// Menghubungkan interrupt pada pin
interruptPin dengan fungsi interruptServiceRoutine saat falling edge
terdeteksi
attachInterrupt(digitalPinToInterrupt(interruptPin),
interruptServiceRoutine, FALLING);
// Inisialisasi LCD dan aktifkan
backlight
lcd.init();
lcd.backlight();
}
void loop() {
count++; // Increment nilai count
// Menampilkan nilai count pada
LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Count: ");
lcd.print(count);
// Memutar motor ke kanan
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
// Menyalakan LED secara
berurutan
for (int i = 0; i < 4; i++) {
digitalWrite(LED1, i == 0);
digitalWrite(LED2, i == 1);
digitalWrite(LED3, i == 2);
digitalWrite(LED4, i == 3);
delay(500);
}
// Mematikan motor
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
}
// Fungsi untuk menangani interrupt
void interruptServiceRoutine() {
count = 0; // Mengatur count kembali
menjadi 0 ketika tombol ditekan
}
Video Simulasi klik disini
Listring Program klik disini
Tidak ada komentar:
Posting Komentar