Percobaan 1 Kondisi 1
Sensor LDR dengan LCD
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 :
Pada rangkaian percobaan ini terdapat lcd, arduino uno, motor, dipswitch dan sensor ldr. dimana dipswitch sebagai input dan sebagai outputny adalah lcd dan motor. kemudian tedapat sensor ldr untuk mengatur ADC-nya
ketika kedua switch diaktifkan maka switch akan mengirim output ke arduino dan diteruskan ke lcd, led dan motor sehingga motor akan berputar ke kanan dan muncul karakter "berputar kekanan" pada kolom 1 lcd, kemudian jika salah satu atau kedua switch tidak aktif maka lcd tidak menampilkan karakter dan motor tidak menyala.
Listing Program :
#include <LiquidCrystal.h> // Inisialisasi pin const int LDR_PIN = A0; const int MOTOR_EN_PIN = A1; const int MOTOR_OUT1_PIN = A2; const int MOTOR_OUT2_PIN = A3; const int DIPSW_PIN[] = {4, 5}; const int LCD_RS_PIN = 13; const int LCD_EN_PIN = 12; const int LCD_D4_PIN = 11; const int LCD_D5_PIN = 10; const int LCD_D6_PIN = 9; const int LCD_D7_PIN = 8; // Konfigurasi LCD LiquidCrystal lcd(LCD_RS_PIN, LCD_EN_PIN, LCD_D4_PIN, LCD_D5_PIN, LCD_D6_PIN, LCD_D7_PIN); void setup() { // Inisialisasi pin mode pinMode(LDR_PIN, INPUT); pinMode(MOTOR_EN_PIN, OUTPUT); pinMode(MOTOR_OUT1_PIN, OUTPUT); pinMode(MOTOR_OUT2_PIN, OUTPUT); for (int i = 0; i < 4; i++) { pinMode(DIPSW_PIN[i], INPUT); } // Inisialisasi LCD lcd.begin(16, 2); } void loop() { // Baca nilai LDR int ldrValue = analogRead(LDR_PIN); // Cek kondisi ADC < 500 dan 2 switch aktif if (ldrValue < 500 && checkSwitches()) { // Aktifkan motor berputar ke kanan digitalWrite(MOTOR_EN_PIN, HIGH); digitalWrite(MOTOR_OUT1_PIN, LOW); digitalWrite(MOTOR_OUT2_PIN, LOW); // Tampilkan karakter pada kolom 2 LCD lcd.setCursor(1, 0); lcd.print("Motor kekanan"); } else { // Matikan motor dan bersihkan LCD jika tidak memenuhi kondisi digitalWrite(MOTOR_EN_PIN, LOW); digitalWrite(MOTOR_OUT1_PIN, LOW); digitalWrite(MOTOR_OUT2_PIN, LOW); lcd.clear(); } delay(100); // Delay untuk stabilitas } // Fungsi untuk memeriksa apakah dua switch aktif bool checkSwitches() { bool switch1_active = digitalRead(DIPSW_PIN[0]) == HIGH; bool switch2_active = digitalRead(DIPSW_PIN[1]) == HIGH; // Mengembalikan nilai true hanya jika kedua switch diaktifkan return switch1_active && switch2_active; }
Ketika ADC < 500 dan 2 switch aktif, motor berputar ke kanan dan muncul karakter pada kolom 1 LCD
HTML klik disini
Rangkaian Simulasi klik disini
Video Simulasi klik disini
Listing Program klik disini
Tidak ada komentar:
Posting Komentar