Percobaan I
Sensor LDR dengan LCD
1. Foto Hardware dan Diagram Blok [Kembali]
4. DIP Switch
5. L293D
6. Motor DC
7. Potensiomotor
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
Prinsip Kerja
Pada percobaan 1 kondisi 5 ini menggunakan komponen antara lain yaitu Arduino Uno, Sensor LDR, motor DC, LCD, DIP Switch, Driver L293D, Potensiometer, Baterai, Resistor, Power Supply, dan Ground.
Rangkaian ini menggunakan mikrokontroler berupa arduino uno sebagai pusat pengendali, yang terhubung dengan Motor DC dan LCD 16X2 sebagai outputnya untuk menampilkan informasi dan mengontrol gerakan motor. Sensor LDR berfungsi mengubah sinyal analog menjadi sinyal digital dengan rumus Vout/Vin X 1023 untuk mempermudah pembacaan sensor analog pada mikrokontroler. Nilai analog yang dibaca oleh sensor ADC ini kemudian akan diproses oleh Arduino Uno. Arduino Uno akan membandingkan nilai tersebut dengan nilai referensi yang telah ditetapkan, dimana pada rangkaian ini dengan 2 kondisi nilai ADC nya besar dari 600 dan kecil dari 200.
Ketika nilai ADC nya besar dan 600 dengan nilai kedua switch ON yang berfungsi sebagai trigger. Arduino Uno akan mengirimkan sinyal ke motor driver (L293D) untuk mengaktifkan motor DC dan membuatnya berputar ke kanan 3 detik lalu kiri 4 detik. Secara bersamaan, Arduino Uno juga akan mengirimkan sinyal ke LCD 16x2 untuk menampilkan karakter "683" pada kolom pertama. Begitu pula ketika nilai ADC nya kecil dari 200.
4. Flowchart dan Listing Program [Kembali]
Listing Program:
#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
int sw1 = 2;
int sw2 = 3;
int sw3 = 4;
int sw4 = 5;
int front = A1;
int back = A2;
void setup() {
lcd.begin(16,2);
pinMode(sw1,INPUT);
pinMode(sw2,INPUT);
pinMode(sw3,INPUT);
pinMode(sw4,INPUT);
pinMode(front,OUTPUT);
pinMode(back,OUTPUT);
Serial.begin(9600);
}
void loop(){
int s1 = digitalRead(sw1);
int s2 = digitalRead(sw2);
int s3 = digitalRead(sw3);
int s4 = digitalRead(sw4);
int ldr = analogRead(A0);
if( s1==HIGH&&s2==HIGH&&s3==HIGH&&s4==HIGH ){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(ldr);
if(ldr < 200){
digitalWrite(front,LOW);
digitalWrite(back,HIGH);
delay(3000);
digitalWrite(front,HIGH);
digitalWrite(back,LOW);
delay(4000);
}else if( ldr>600)
{
digitalWrite(front,LOW);
digitalWrite(back,HIGH);
delay(3000);
digitalWrite(front,HIGH);
digitalWrite(back,LOW);
delay(4000);
}
else{
lcd.clear();
lcd.setCursor(0,0);
lcd.print(ldr);
digitalWrite(front,LOW);
digitalWrite(back,LOW);
}
}
else {
digitalWrite(front,LOW);
digitalWrite(back,LOW);
}
}
Pada kondisi 5 dari percobaan 1, (Ketika ADC < 200 atau >600) dan semua switch aktif, motor berputar ke kanan 3 detik lalu kiri 4 detik dan muncul karakter pada kolom 1 LCD
᭒ HTML↠ klik disini
᭒ Aplikasi↠ klik disini
᭒ Video Percobaan↠ 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