Tugas Pendahuluan 1 Modul 2


 [KEMBALI KE MENU SEBELUMNYA]


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 percobaan ini, sebuah rangkaian menggunakan komponen seperti LCD, Arduino Uno, motor, dipswitch, dan sensor LDR. Dipswitch digunakan sebagai input, sedangkan LCD dan motor sebagai output. Sensor LDR digunakan untuk mengatur nilai ADC-nya. Ketika kedua dipswitch diaktifkan, output dari dipswitch dikirim ke Arduino dan diteruskan ke LCD, LED, dan motor. Sehingga motor akan berputar ke kanan dan pada kolom pertama LCD akan muncul karakter "berputar kekanan". Namun, jika salah satu atau kedua dipswitch tidak aktif, LCD tidak menampilkan karakter apa pun dan motor tidak hidup.


Flowchart:



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[] = {2, 3, 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_PULLUP);
  }
  
  // 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 kiri
    digitalWrite(MOTOR_EN_PIN, LOW);
    digitalWrite(MOTOR_OUT1_PIN, HIGH);
    digitalWrite(MOTOR_OUT2_PIN, HIGH);
    
    // Tampilkan karakter pada kolom 2 LCD
    lcd.setCursor(0, 1);
    lcd.print("Motor ke kanan");
  } 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]) == LOW;
  bool switch2_active = digitalRead(DIPSW_PIN[1]) == LOW;

  // Mengembalikan nilai true hanya jika kedua switch diaktifkan
  return switch1_active && switch2_active;
}

4. Kondisi [Kembali]

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

Komentar

Postingan populer dari blog ini

Kontrol Tanaman Bayam

Modul 1 Praktikum Sistem Digital

Tugas Besar - Kontrol Hidroponik Tanaman Mint