Percobaan 1 Modul 2
Sensor LDR dengan LCD
Foto Hardware dan Diagram Blok [Kembali]
Arduino Uno
DipSwitch
LCD
Motor DC
Diagram Blok:
2. Prosedur Percobaan [Kembali]
1. Susun semua komponen.
2. Buat program menggunakan aplikasi Arduino IDE.
3. Unggah program ke Arduino setelah selesai.
4. Jalankan program pada simulasi dan uji dengan modul.
2. Buat program menggunakan aplikasi Arduino IDE.
3. Unggah program ke Arduino setelah selesai.
4. Jalankan program pada simulasi dan uji dengan modul.
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.
Pada percobaan ini, berbagai kondisi diperhatikan:
- Jika saklar utama atau saklar enable aktif (s1 == HIGH), program akan menentukan jumlah saklar tambahan yang aktif (activesw) dengan melakukan iterasi melalui saklar tambahan (sws[]). Setelah itu, program akan beralih ke dalam blok switch-case berdasarkan jumlah saklar yang aktif.
- Jika tidak ada saklar yang aktif (activesw == 0), nilai LDR akan ditampilkan pada LCD dengan pesan "The LDR Value" dan nilai LDR juga akan ditampilkan.
- Jika satu saklar aktif (activesw == 1), motor DC akan diaktifkan, dan output pada LCD akan menampilkan "Running The Motor".
- Jika dua saklar aktif (activesw == 2), program akan menentukan arah putaran motor DC berdasarkan nilai LDR. Jika nilai LDR kurang dari 650, motor akan berputar ke kanan dan pada LCD akan ditampilkan "Running Motor Right". Jika tidak, motor akan berputar ke kiri, dan pada LCD juga akan ditampilkan "Running motor left".
- Jika tiga saklar aktif (activesw == 3), program akan mengonfigurasi sinyal PWM untuk mengontrol kecepatan motor DC berdasarkan nilai bacaan LDR, dan pada LCD juga ditampilkan indikator nilai PWM "PWM= " serta pesan "control???".
- Jika saklar utama tidak aktif atau saklar enable, program akan membersihkan layar LCD dan menampilkan pesan "ELECTRONIC & INSTRUMENTATION", atau kata dan kalimat yang telah ditetapkan pada program. Kelompok 5 telah mengatur tampilan LCD sebagai "ELECTRICAL INSTRUMEN".
4. Flowchart dan Listing Program [Kembali]
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);
}
}
Download HTML
Download Rangkaian
Download Program
Download Video Simulasi
Download Datasheet L293D
Download Datasheet motor DC
Download Datasheet Arduino Uno
Tidak ada komentar:
Posting Komentar