LA 2 MODUL 2
Percobaan 6
Sensor LDR dan LCD
1. Foto Hardware dan Diagram Blok [Kembali]
a. Hardware
b. Diagram Blok
2. PROSEDUR PERCOBAAN [Kembali]
- Rangkai semua komponen
- Buat program di aplikasi arduino IDE
- Setelah selesai masukkan program ke arduino
- Jalankan program pada simulasi dan cobakan dengan modul
3. RANGKAIAN SIMULASI DAN PRINSIP KERJA[Kembali]
Pada percobaan kali ini menggunakan komponen input berupa Dipswicth dan sensor LDR serta komponen output berupa LCD dan Motor DC, prinsip kerjanya adalah LDR memberikan input berupa nilai ADC yang akan ditampilkan pada LCD dan akan mempengaruhi gerakan motor seperti arah rotasi motor ataupun kecepatan motor dengan menggunakan nilai PWM, sedangkan dipswitch akan mengatur kondisi yang telah diprogram terdapat 4 kondisi, yaitu kondisi 0, kondisi 1, kondisi 2, dan kondisi 3.
4. FLOWCHART DAN LISTING PROGRAM [Kembali]
#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() {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() {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]
Pada Kondisi 0 atau saat switch 1 yang aktif maka akan memunculkan nilai dari sensor LDR, Pada kondisi 1 saat 2 switch yang aktif maka motor akan menyala atau berjalan, pada kondisi 2 saat 3 switch aktif maka motor akan berputar sesuai nilai LDR ketika nilai LDR kurang dari 550 maka motor akan berputar ke kiri, saat nilai LDR lebih dari 550 maka motor akan berputar ke kanan, pada kondisi 3 saat 4 switch aktif maka kecepatan motor akan diatur dari LDR dan PWM saat nilai LDR rendah atau terdeteksi banyak cahaya maka PWM akan naik maka kecepatan motor akan cepat, saat nilai LDR tinggi atau nilai PWM rendah maka kecepatan motor akan melambat.
6. VIDEO RANGKAIAN [Kembali]
7. ANALISA [Kembali]
8. LINK DOWNLOAD [Kembali]
HTML klik disini
Listing Program klik disini
Video Percobaan klik disini
Datasheet Arduino klik disini
Datasheet Dipswitch klik disini
Datasheet Driver L293 Klik Disini
Komentar
Posting Komentar