Jumat, 22 Maret 2024

TP 1 M2


Percobaan I

ADC - Sensor LDR dengan Motor DC

1. Prosedur [Kembali]

  • Rangkailah seperti rangkaian berikut
  • Buka Arduino IDE dan masukan listing program
  • Upload program ke arduino
  • Variasikan nilai ADC dan amati keluarannya pada LCD

2. Hardware dan Diagram Blok [Kembali]

    1. Arduino Uno

    2. Sensor LDR

    3. Dip Switch

    4. LCD

    5. Logic state

    6. Power supply

    7. Ground

    8. Motor DC

    9. Baterai

    10. Resistor

    11. Potensiometer

    12. IC L293D

Diagram Blok:




Prinsip Kerja:

    Pada rangkaian percobaan 1 kondisi 6 ini menggunakan sensor LDR dan dipswitch yang berfungsi sebagai input, LCD dan motor dc berfungsi sebagai output. Dimana ketika nilai sensor LDR < 200 atau >600 dan tidak ada switch aktif maka output pada motor akan berputar ke kanan 3 detik lalu kiri 4 detik dan pada LCD akan menampilkan "Motor Aktif" pada kolom 1 LCD. Dan ketika nilai sensor LDR berada diluar rentang  dan ada switch aktif maka motor tidak berputar, dimana sesuai dengan kondisi 5 yaitu (Ketika ADC < 200 atau >600) dan tidak ada switch aktif, motor berputar ke kanan 3 detik lalu kiri 4 detik dan muncul karakter pada kolom 1 LCD, namun jika ada switch aktif maka motor tidak berputar. 

4. Flowchart dan Listing Program [Kembali]

    Flowchart:



    Listing Program:

#include <LiquidCrystal.h> // Inisialisasi pin const int LDR_PIN = A5; const int MOTOR_EN_PIN = A1; const int MOTOR_OUT1_PIN = A2; const int MOTOR_OUT2_PIN = A3; const int DIPSW_PIN[] = {1, 2}; // Gunakan hanya 2 pin untuk saklar 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 < 2; i++) { // Hanya 2 saklar pinMode(DIPSW_PIN[i], INPUT_PULLUP); } // Inisialisasi LCD lcd.begin(16, 2); } void loop() { // Baca nilai LDR int ldrValue = analogRead(LDR_PIN); // Cek kondisi saklar dan LDR if (digitalRead(DIPSW_PIN[0]) == LOW && digitalRead(DIPSW_PIN[1]) == LOW && (ldrValue < 200 || ldrValue > 600)) { // Aktifkan motor berputar ke kanan selama 3 detik digitalWrite(MOTOR_EN_PIN, HIGH); digitalWrite(MOTOR_OUT1_PIN, LOW); digitalWrite(MOTOR_OUT2_PIN, HIGH); // Tampilkan karakter pada kolom 1 LCD lcd.setCursor(0, 0); lcd.print("Motor Aktif"); delay(3000); // Motor bergerak ke kanan selama 3 detik // Berhenti sejenak digitalWrite(MOTOR_EN_PIN, LOW); delay(1000); // Pause selama 1 detik // Aktifkan motor berputar ke kiri selama 4 detik digitalWrite(MOTOR_EN_PIN, LOW); digitalWrite(MOTOR_OUT1_PIN, HIGH); digitalWrite(MOTOR_OUT2_PIN, LOW); delay(4000); // Motor berputar ke kiri selama 4 detik // Matikan motor dan bersihkan LCD setelah selesai digitalWrite(MOTOR_EN_PIN, LOW); lcd.clear(); } else { // Matikan motor dan bersihkan LCD jika salah satu saklar dalam keadaan aktif atau kondisi LDR tidak memenuhi digitalWrite(MOTOR_EN_PIN, LOW); lcd.clear(); } delay(100); // Delay untuk stabilitas }

5. Kondisi [Kembali]

    Pada kondisi percobaan kali ini yaitu percobaan 1 kondisi 6. (Ketika ADC < 200 atau >600) dan tidak ada switch aktif, motor berputar ke kanan 3 detik lalu kiri 4 detik dan muncul karakter pada kolom 1 LCD, namun jika ada switch aktif maka motor tidak berputar.

HTML↠ klik disini
Rangkaian Simulasi ↠ klik disini
Video Simulasi ↠ klik disini
Listing Program ↠ klik disini













Tidak ada komentar:

Posting Komentar

MODUL 4

    [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. Percobaan Per...