Laporan Akhir 1 - Percobaan 1
[KEMBALI KE MENU SEBELUMNYA]
DAFTAR ISI
1. Prosedur
2. Hardware dan Diagram Blok
3. Rangkaian Simulasi dan Prinsip Kerja
4. Flowchart dan Listing Program
5. Kondisi
6. Video Demo
7. Download File
M2 - Laporan Akhir 1
Percobaan 1
a. Rangkai rangkaian sesuai dengan modul praktikum.
b. Tulis program untuk arduino di software Arduino IDE.
b. Tulis program untuk arduino di software Arduino IDE.
c. Sambungkan arduino dengan laptop
d. Upload program tadi ke arduino
e. Setelah program selesai di upload, jalankan simulasi rangkaian
d. Upload program tadi ke arduino
e. Setelah program selesai di upload, jalankan simulasi rangkaian
f. Mencoba rangkaiannya dengan memvariasikan kondisi pada sensor LDR dengan karakter pada LCD
Rangkaian Simulasi :
Prinsip Kerja :
Rangkaian diatas merupakan rangkaian percobaan untuk 1 sensor LDR dan LCD. Pada tahap pertama, program menginisialisasi perangkat keras seperti layar LCD dan pin yang akan digunakan untuk input dan output. Kemudian, pada loop utama, program membaca keadaan saklar utama SW1 dan nilai sensor LDR. Jika saklar utama SW1 berada pada posisi HIGH (ditekan), maka program akan menghitung jumlah saklar tambahan yang aktif dan menampilkan informasinya secara digital melalui monitor serial. Tergantung pada berapa banyak saklar tambahan yang aktif, program akan menampilkan informasi yang sesuai pada LCD dan melakukan tindakan yang sesuai, yaitu menampilkan nilai sensor LDR, menggerakkan motor maju baik mundur atau mengatur kecepatan motor menggunakan PWM. Jika saklar utama pada posisi LOW (tidak ditekan), program akan menampilkan pesan “ELECTRONICS & INSTRUMENTATION” pada LCD.
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);
}
}
}
Percobaan 1 - Sensor LDR dengan LCD
HTML 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 Motor DC klik disini
Komentar
Posting Komentar