Senin, 18 Maret 2024

TP M2P1K2

 



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]

1. Susun semua elemen perangkat
2. Buatlah sebuah skrip di dalam aplikasi Arduino IDE
3. Setelah selesai, unggulkan skrip ke papan Arduino
4. Aktifkan skrip dalam simulasi dan uji dengan modul yang ada


Rangkaian Simulasi
 

Prinsip Kerja

Rangkaian ini melibatkan Arduino Uno sebagai otak utama yang terhubung dengan beberapa komponen termasuk sensor LDR, motor DC, LCD 16x2, DIP Switch, Driver L293D, potensiometer, baterai, resistor, power supply, dan ground. Sensor LDR berperan sebagai sensor cahaya yang menghasilkan sinyal analog yang kemudian diubah menjadi nilai digital oleh ADC (Analog-to-Digital Converter) di Arduino Uno. Nilai ADC tersebut kemudian dibandingkan dengan nilai referensi 500. Motor DC dan LCD 16x2 hanya akan aktif jika kedua saklar pada DIP Switch ditekan bersamaan, dan nilai ADC lebih besar dari 500. Arduino Uno mengontrol motor DC untuk berputar ke kiri dan menampilkan pesan "Motor ke kiri" pada LCD 16x2. Potensiometer digunakan untuk mengatur kontras layar LCD, sedangkan resistor berfungsi untuk membatasi arus pada rangkaian.

4. Flowchart dan Listing Program [Kembali]

Flowchart

http://www.plantuml.com/plantuml/png/HO-xJWCn54HxVyLKqMwNXYQHK0HRK8I6y0EN-2w-yiEM7rhbxx434OqbZu_FQ4wbKgxDErMiX4IPF8eX7JS9trZ95LRgpgZ3XMjBqtnKcHDJLS3XXQw488u4v-NZs2DPCTs3ViSpdlPxx7P8dCKMkcnIhsQQPrJ30TEDowo0BdeJtPAb01zhpFZYd5flXMLOoNByfJx99t43Irp6IPfmVbt6Cxl2lJh-2T-fohzFKnZE8cPaZnz1opfMBEpezfY5pOZhffeRptrwJEhKoURT3m00

Listing Program:
 
#include <LiquidCrystal.h>

// Inisialisasi pin
const int PIN_LDR = A0;  // Pin untuk sensor LDR
const int PIN_EN_MOTOR = A1;
const int PIN_OUT1_MOTOR = A2;
const int PIN_DIPSW[] = {2, 3, 4, 5};  // Array pin untuk dip switch
const int PIN_RS_LCD = 13;  // Pin RS LCD
const int PIN_EN_LCD = 12;  // Pin EN LCD
const int PIN_D4_LCD = 11;  // Pin D4 LCD
const int PIN_D5_LCD = 10;  // Pin D5 LCD
const int PIN_D6_LCD = 9;   // Pin D6 LCD
const int PIN_D7_LCD = 8;   // Pin D7 LCD

// Konfigurasi LCD
LiquidCrystal lcd(PIN_RS_LCD, PIN_EN_LCD, PIN_D4_LCD, PIN_D5_LCD, PIN_D6_LCD, PIN_D7_LCD);

void setup() {
  // Inisialisasi mode pin
  pinMode(PIN_LDR, INPUT);  // Inisialisasi pin sensor LDR sebagai input
  pinMode(PIN_EN_MOTOR, OUTPUT);
  pinMode(PIN_OUT1_MOTOR, OUTPUT);
  for (int i = 0; i < 4; i++) {
    pinMode(PIN_DIPSW[i], INPUT_PULLUP);  // Inisialisasi pin dip switch dengan pull-up resistor internal
  }
 
  // Inisialisasi LCD
  lcd.begin(16, 2);  // Inisialisasi LCD dengan ukuran 16x2 karakter
}

// Fungsi untuk memeriksa apakah kedua switch aktif
bool periksaSwitch() {
  bool switch1_aktif = digitalRead(PIN_DIPSW[0]) == HIGH;  // Membaca status dip switch 1
  bool switch2_aktif = digitalRead(PIN_DIPSW[1]) == HIGH;  // Membaca status dip switch 2

  // Mengembalikan nilai true hanya jika kedua switch diaktifkan
  return switch1_aktif && switch2_aktif;
}

void loop() {
  // Baca nilai LDR
  int nilaiLDR = analogRead(PIN_LDR);  // Membaca nilai sensor LDR
 
  // Periksa jika nilai ADC > 500 dan dua switch aktif
  if (nilaiLDR > 500 && periksaSwitch()) {
    // Hidupkan motor berputar ke kiri
    digitalWrite(PIN_EN_MOTOR, HIGH);
    digitalWrite(PIN_OUT1_MOTOR, LOW);
    
    // Tampilkan pesan pada baris kedua LCD
    lcd.setCursor(0, 1);  // Set kursor LCD ke baris kedua
    lcd.print("Motor berputar ke kiri");  // Tampilkan pesan pada LCD
  } else {
    // Matikan motor dan bersihkan LCD jika tidak memenuhi kondisi
    digitalWrite(PIN_EN_MOTOR, LOW);
    digitalWrite(PIN_OUT1_MOTOR, LOW);
    lcd.clear();  // Bersihkan tampilan LCD
  }
 
  delay(100); // Delay untuk stabilitas
}

5. Kondisi [Kembali]

Ketika ADC > 500 dan 2 switch aktif, motor berputar ke kiri dan muncul karakter pada kolom 2 LCD


    Download HTML
    Download Rangkaian
   
Download Program
   
Download Video Simulasi
    Download Datasheet SW-SPDT
    Download Datasheet Sensor LDR
    
Download Datasheet Arduino Uno
   
Download Datasheet Motor DC
    Download Datasheet L293D 

    Download Datasheet LCD 2x16

 











Tidak ada komentar:

Posting Komentar

Tugas Besar Machine Learning: Penerapan Penerapan Jaringan Syaraf Tiruan Backpropagation untuk Smart Control Early Warning System (EWS)

Referensi : Rahardi, G. A. (2023). Penerapan Jaringan Syaraf Tiruan Backpropagation untuk Smart Control Early Warning System (EWS).  CYCLOTR...