Laporan Akhir 1 (M2)

Sensor LDR & LCD

1. Prosedur Percobaan  [Kembali]

1. Rangkai komponen sesuai percobaan dan yang dipilih.

2. Membuat program menggunakan Arduino IDE.

3. Transfer program yang telah dibuat ke Arduino Uno.

4. Uji coba program pada rangkaian percobaan sesuai dengan kondisi yang diinginkan.

5. Proses selesai setelah uji coba berhasil dilakukan.

2. Foto Hardware dan Diagram Blok [Kembali]

     Arduino Uno
            
    







   
         Sensor LDR
         
 
 
Spesifikasi sensor LDR:
Suplai : 3,3 V - 5 V (tersedia Arduino)
Tipe Keluaran: Keluaran digital (0 dan 1)
Keluaran Terbaik
Sertakan komparator tegangan IC LM393
Sensitivitasnya dapat diatur
Dimensi ukuran PCB: 3,2 cm x 1,4 cm

Grafik Sensor LDR:



 LCD 16x2
            
 
Spesifikasi LCD:


Pengemudi Motor L293d

Spesifikasi driver motor L293d:


Motor DC

Spesifikasi motor dc:


Grafik motor dc:

Saklar Celup

Spesifikasi:
Tipe slide, berlapis timah, seri sakelar DIP SPST
Spesifikasi Teknis:
- Resistensi kontak = 50-100 M{o}
- Peringkat kontak = 24 VDC, 25mA di Make & Brake
50VDC, 100mA di steade state



Batrai 18650


spesifikasi:


Kabel Pelompat





Diagram Blok:
 




Rangkaian Simulasi
 




Prinsip Kerja

        Rangkaian ini terdiri dari beberapa komponen, termasuk mikrokontroler (ATMEGA328P-PU), dipswitch, driver motor LD293D,Sensor LDR,LCD,serta motor dan kipas. Pada rangkaian ini Sensor LDR bertindak sebagai input analog dan Dipswitch sebagai input digital. Prinsip kerja rangkaian ini adalah sensor LDR berfungsi sebagai input analaog yang menjadi paramater instruksi yang diberikan pada motor. Kemudian ada dipswitch dengan 4 pin, dimana untuk pin 4 untuk mengaktifkan motor, pin 3 untuk inputan analog dari LDR untuk ADC, pin 2 untuk mengatur arah putaran motor berdasarkan nilai inputan LDR, dan pin 4 untuk mengatur PWM dari motor. Kemudian sebagai output pada LCD akan menampilkan karakter ELECTRICAL INSTRUMEN. 

4. Flowchart dan Listing Program [Kembali]

Flowchart



Listing Program:

#include <LiquidCrystal.h>

LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

int sw1 = 2;
int sws[]={3,4,7};
int numsw = 3;
int front = 6;
int back = 5;

void setup() {
  // put your setup code here, to run once:
lcd.begin(16,2);
pinMode(sw1,INPUT);
for(int thesw = 0; thesw < numsw; thesw++){
  pinMode(sws[thesw],INPUT);
}
pinMode(front,OUTPUT);
pinMode(back,OUTPUT);
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
int s1 = digitalRead(sw1);
int ldr = analogRead(A0);
if(s1 == HIGH){
  int activesw = 0;
  int thesw = 0;
  for(thesw; thesw < numsw; thesw++){
    if(digitalRead(sws[thesw]) == HIGH){
      activesw++;
    }
  }
Serial.print("Number of Switch : ");
Serial.println(activesw);
Serial.print("Number of Activation : ");
Serial.println(thesw);
delay(200);
switch(activesw){
  case 0 :
  lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(ldr);
    lcd.setCursor(0,1);
    lcd.print("The LDR Value");
    digitalWrite(front,LOW);
    digitalWrite(back,LOW);
    delay(200);
    break;
  
  case 1 :
  lcd.clear();
    lcd.setCursor(2,0);
    lcd.print("Running The");
    lcd.setCursor(2,1);
    lcd.print("Motor");
    digitalWrite(front,HIGH);
    digitalWrite(back,LOW);
    delay(200);
    break;

  case 2 :
  lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("LDR Value : ");
    lcd.setCursor(13,0);
    lcd.print(ldr);
    if(ldr < 650){
      lcd.setCursor(0,1);
      lcd.print("                 ");
      lcd.setCursor(0,1);
      lcd.print("turn Motor right");
      digitalWrite(front,HIGH);
      digitalWrite(back,LOW);
    }else{
      lcd.setCursor(0,1);
      lcd.print("                 ");
      lcd.setCursor(0,1);
      lcd.print("turn Motor left");
      digitalWrite(front,LOW);
      digitalWrite(back,HIGH);
    }
    break;

  case 3 :
  int pwm = map(ldr,0,1023,0,255);
    digitalWrite(back,LOW);
    analogWrite(front,pwm);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("PWM = ");lcd.print(pwm);
    lcd.setCursor(0,1);
    lcd.print(" Control ???");
    delay(200);
    break;

}
delay(10);
}else{
  Serial.println("look at the LCD");
  digitalWrite(back,LOW);
  digitalWrite(front,LOW);
  lcd.clear();
  lcd.setCursor(4,0);
  lcd.print("ELECTRONIC");
  lcd.setCursor(0,1);
  lcd.print("&INSTRUMENTATION");
  delay(100);
}
}


5. Kondisi [Kembali]

Ketika ADC antara 200 dan 600 dan 1 Switch aktif, motor berputar ke kiri 8 detik lalu mati dan muncul karakter pada kolom 2 LCD.

6. Video Simulasi [Kembali]


    Download HTML
    Download Rangkaian
    
Download Program
    
Download Video Simulasi
    Download Datasheet 7-Segment
    Download Datasheet Button
    
Download Datasheet Arduino Uno


Tidak ada komentar:

Posting Komentar

BAHAN PRESENTASI UNTUK PRAKTIKUM uP & uC 2023 Oleh : Farrel Luis Fadhlika NIM. 2110952049   Dosen Pengampu : Dr. Darwison, S. T., M. T. ...