TP 1

 



Percobaan I

Sensor LDR dengan LCD

1. Foto Hardware dan Diagram Blok [Kembali]

        1. Arduino Uno


        2. LCD




        3. Sensor LDR (ADC)

        

 

      4. DIP Switch

 

      5. L293D

 

 

      6. Motor DC

   

 

      7. Potensiomotor

   

 

      8. Baterai



        9. Resistor



       10. Power Supply




     11. Ground





Diagram Blok:


2. Prosedur Percobaan  [Kembali]

Rangkai semua komponen 
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino 
+ jalankan program pada simulasi dan cobakan dengan modul




Prinsip Kerja

Pada percobaan ini kita mendapatkan kondisi yang meminta kita untuk Pada kondisi 2 dari percobaan 1, Ketika ADC > 500 dan 2 switch aktif, maka motor berputar ke kiri dan muncul karakter pada kolom 2 LCD,disini kita akan memprogramkan program pada arduino uno agar kondisi yang kita dapatkan bisa dijalankan dengan penggunaan komponen yang telah dijelaskan.

4. Flowchart dan Listing Program [Kembali]





Listing Program:


#include <LiquidCrystal.h> // Inisialisasi pin const int LDR_PIN = A0; // Pin untuk sensor LDR const int MOTOR_EN_PIN = A1; // Pin untuk mengontrol enable motor const int MOTOR_OUT1_PIN = A2; // Pin output motor 1 const int MOTOR_OUT2_PIN = A3; // Pin output motor 2 const int DIPSW_PIN[] = {2, 3, 4, 5}; // Array pin untuk dip switch const int LCD_RS_PIN = 13; // Pin RS LCD const int LCD_EN_PIN = 12; // Pin RS LCD const int LCD_D4_PIN = 11; // Pin D4 LCD const int LCD_D5_PIN = 10; // Pin D5 LCD const int LCD_D6_PIN = 9; // Pin D6 LCD const int LCD_D7_PIN = 8; // Pin D7 LCD // 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); // Inisialisasi pin sensor LDR sebagai input pinMode(MOTOR_EN_PIN, OUTPUT); // Inisialisasi pin enable motor sebagai output pinMode(MOTOR_OUT1_PIN, OUTPUT); // Inisialisasi pin output motor 1 sebagai output pinMode(MOTOR_OUT2_PIN, OUTPUT); // Inisialisasi pin output motor 2 sebagai output for (int i = 0; i < 4; i++) { pinMode(DIPSW_PIN[i], INPUT_PULLUP); // Inisialisasi pin dip switch dengan pull-up resistor internal } // Inisialisasi LCD lcd.begin(16, 2); // Inisialisasi LCD dengan ukuran 16x2 karakter } void loop() { // Baca nilai LDR int ldrValue = analogRead(LDR_PIN); // Membaca nilai sensor LDR // Cek kondisi ADC > 500 dan 2 switch aktif if (ldrValue > 500 && checkSwitches()) { // Aktifkan motor berputar ke kiri digitalWrite(MOTOR_EN_PIN, HIGH); // Aktifkan enable motor digitalWrite(MOTOR_OUT1_PIN, LOW); // Putar motor ke kiri digitalWrite(MOTOR_OUT2_PIN, HIGH); // Putar motor ke kiri // Tampilkan karakter pada baris 2 LCD lcd.setCursor(0, 1); // Set kursor LCD ke baris kedua lcd.print("Motor kekiri"); // Tampilkan pesan pada LCD } else { // Matikan motor dan bersihkan LCD jika tidak memenuhi kondisi digitalWrite(MOTOR_EN_PIN, LOW); // Matikan enable motor digitalWrite(MOTOR_OUT1_PIN, LOW); // Matikan output motor digitalWrite(MOTOR_OUT2_PIN, LOW); // Matikan output motor lcd.clear(); // Bersihkan tampilan LCD } delay(100); // Delay untuk stabilitas } // Fungsi untuk memeriksa apakah dua switch aktif bool checkSwitches() { bool switch1_active = digitalRead(DIPSW_PIN[0]) == LOW; bool switch2_active = digitalRead(DIPSW_PIN[1]) == LOW; // Mengembalikan nilai true hanya jika kedua switch diaktifkan return switch1_active && switch2_active; }


5. Kondisi [Kembali]

    Pada kondisi 2 dari percobaan 1, Ketika ADC > 500 dan 2 switch aktif, maka motor        berputar ke kiri dan muncul karakter pada kolom 2 LCD


᭒ HTML↠ klik disini
Proteus ↠ klik disini
᭒ Video Percobaan↠ klik disini

    










Tidak ada komentar:

Posting Komentar

BAHAN PRESENTASI UNTUK MATA KULIAH ELEKTRONIKA 2022 Oleh : Anugrah Illahi NIM. 2110951013   Dosen Pengampu : Dr. Darwison, S. T., M. T. NIDN...