Jumat, 29 Maret 2024

LA 1


Percobaan I

 Sensor LDR dengan LCD

1. Prosedur [Kembali]

  • Rangkailah seperti rangkaian berikut
  • Buka Arduino IDE dan masukan listing program
  • Upload program ke arduino
  • Variasikan tombol yang ditekan dan amati keluarannya pada LCD
Gambar 1. Rangkaian Hardware
 

   1. Arduino Uno

    2. dip switch 



    3. LCD


    4. Kabel jumper

    5. Breadboard
    6. Potensiometer
    7. Resistor


    8. Baterai
    9. Sensor LDR
    10. Driver Motor L293D
    11. Kipas

Diagram Blok:






Prinsip Kerja :

    Pada percobaan ini yang menjadi inputan adalah Sensor LDR dan Dipswitch yang dikendalikan oleh arduino dan outpuynya adalah LCD 16x2 dan Motor DC yang terhubung ke  Driver Motor L293D. untuk LCD terhubung ke pin 8-13 arduino, dan dipswitch terhubung ke pin 2,3,4,7 arduino. Dan driver motor terhubung ke pin 5 dan 6. 
    Sensor LDR berfungsi mengubah sinyal analog menjadi sinyal digital dengan rumus Vout/Vin X 1023.  Nilai resistansi LDR akan berubah sesuai dengan intensitas cahaya yang diterimanya. Nilai yang diperoleh dari LDR kemudian akan dikonversi menjadi nilai yang dapat digunakan untuk mengatur PWM. Setelah nilai LDR dikonversi, nilai tersebut akan digunakan untuk mengatur PWM pada pin yang terhubung ke kontrol kecepatan motor. Semakin tinggi nilai yang diperoleh dari LDR (yang mengindikasikan cahaya yang lebih terang), semakin tinggi duty cycle PWM yang akan diberikan ke motor, sehingga kecepatan putaran motor akan meningkat. 
    Pada saat dipswitch ke 4 akitf atau berlogika high maka LCD hanya akan menampilkan nilai value ldr yang telah dikonversi. selanjutnya jika sitch ke  3 yang aktif maka maka output yang dihasilkan adalah motor DC bergerak kekanan dan ditampilkan pada LCD bahwa motor bergerak dengan jeda 0.2 detik. jika switch ke 2 yang aktif maka akan terjadi dua kondisi , yang pertama jika nilai adc LDR yang terbaca nilainya lebih kecil dari 550 maka motor akan bergerak kekanan dan LCD akan menampilkan tulisan motor bergerak kekanan dan jika nilai adc LDR besar dari 550 maka motor akan berputar ke kiri dan LCD akan menampilkan tulisan motor berputar kekiri. sedangkan jika switch ke 1 yang aktif maka LCD akan menampilkan nilai PWM pada LCD dan motor akan berhenti berputar




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; for(int thesw = 0; thesw < numsw; thesw++){ if(digitalRead(sws[thesw]) == HIGH){ activesw++; } } Serial.print("Number of Switch : "); Serial.println(activesw); delay(200); switch(activesw){ case 0 : lcd.clear(); lcd.setCursor(0,0); lcd.print(ldr); lcd.setCursor(0,1); lcd.print("The LDR Value"); 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 < 550){ 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{ lcd.clear(); lcd.setCursor(4,0); lcd.print("ELECTRONIC"); lcd.setCursor(0,1); lcd.print("&INSTRUMENTATION"); delay(100); } }

5. Kondisi [Kembali]

   Ketika ada cahaya yang dideteksi oleh sensor LDR dan Switch pada DIpswitch aktif maka LCD akan menampilkan keluaran nilai ADC serta kondisi pada motor dan motor akan bergerak kekanan.

᭒ HTML↠ klik disini
᭒ Gambar Rangkaian ↠ klik disini
᭒ Video Demo ↠ klik disini
᭒ Listing Program ↠ klik disini
᭒ Datasheet Arduino↠ klik disini
᭒ Datasheet Potensiometer↠ klik disini
᭒ Datasheet LCD↠ klik disini
᭒ Datasheet DIP Switch↠ klik disini
᭒ Datasheet L293D↠ klik disini
᭒ Datasheet Sensor LDR↠ klik disini
᭒ Datasheet Motor DC↠ klik disini  


Tidak ada komentar:

Posting Komentar