M2 - Laporan Akhir 1




M2 Percobaan 1
1. Prosedur
[Kembali]

1. Rangkai rangkaian pada alat sesuai dengan modul.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan rangkaian.

2. Hardware dan Diagram Blok [Kembali]

Hardware :



Diagram Blok:


                


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :



Prinsip Kerja :

Pada percobaan 1 ini membahas bagaimana rangkaian sensor LDR dengan output berupa LCD dan juga sebuah motor. Dimana terdapat juga komponen pendukung seperti dipswitch untuk mengatur case/if yang diinginkan serta sebuah motor driver agar memudahkan pengaturan arah putaran ataupun kecepatan dari motor nantinya.

Dari 4 switch yang ada, 1 diantaranya berfungsi sebagai pengaktifan jalannya kondisi, bisa dilihat pada program jika s1 HIGH akan masuk kondisi dimana switch yang lain akan dibaca namun jika s1 LOW, maka akan langsung menampilkan Electronic Instrumentation walau bagaimana pun kondisi switch lainnya.

Disini untuk sensor LDR sendiri digunakan rangkaian pull up. Dikarenakan dari power supply,ldr, dan resistor dihubung seri, kemudian tegangan output yang diambil adalah tegangan dari ldr nya. Prinsip kerja sensor LDR adalah ketika adanya intensitas cahaya yang masuk akan mempengaruhi nilai resistansi dalam LDR tersebut. Disaat intensitas cahaya meningkat maka resistansi dari LDR akan mengecil. Karena kita mengambil tegangan pada ldr, disaat resistansi ldr kecil maka tegangan LDR kecil yang digunakan sebagai tegangan output. Maka di rangkaian ini bisa kita lihat intensitas cahaya akan berbanding terbalik dengan tegangan output. Tegangan output akan masuk ke pin A0 dimana nilai tegangan tadi akan dikonversi kan ke nilai ADC 10 bit, dan tentu saja nilai tegangan akan sebanding dengan nilai ADC. Jika kita kembali ke intensitas  cahaya, akan berbanding terbalik dengan nilai ADC. Disaat intensitas cahaya meningkat maka nilai ADC akan semakin kecil.

Kembali ke pembacaan switch, disaat switch 1 sebagai pengaktifan telah HIGH maka sesuai program akan dilanjutkan pembacaan switch lainnya yang menggunnakan for, jadi disini bebas switch manapun yang diaktifkan namun yang jadi pertimbangan disini adalah jumlah switch yang aktif. If yang digunakan disini dalam bentuk case dengan jumlah switch yang aktif. Case 0 berarti tidak ada switch yg aktif selain switch 1, maka tindakannya adalah menampilkan nilai ADC LDR yang terbaca pada arduino. Pada case 1 berarti ada salah satu switch yang aktif. Maka rangkaian akan menjalankan motor. Case 2 berarti ada 2 switch yang aktif, maka akan menampilkan nilai LDR serta masuk kondisi if, jika ADC nya kecil dari 550 maka motor akan berputar ke kanan, selain itu maka motor akan berputar ke kiri. Pada case 3 berarti semua switch selain switch 1 aktif, maka disini dilakukan fungsi map untuk konversi nilai ADC LDR ke nilai pwm. Ditampilkan nilai PWM kemudian disini kecepatan motor berputar akan bergantung pada nilai pwm nya, semakin kecil nilai PWM maka semakin lambat motor nya 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");
 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 < 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]

Percobaan 1 : Sensor LDR dengan LCD

6. Video Demo [Kembali]



7. Soal Analisa [Kembali]

1. analisa perbedaan penggunaan sensor LDR dalam voltage devider tipe pull up & pull down serta jelaskan pengaruhnya terhadap ADC sistem? 
2. Analisa perbedaan pengontrolan motor dc ketika pada case 2 dan case 3
3. Apa pengaruh tipe 7-segment dalam pemakaian fungsi bit map di Arduino Uno
4. Analisa penggunaan millis tanpa dan dengan operasi matematika
5. Pada sensor LDR pemakaian ketika paralel dan seri terhadap sistem


8. Download File [Kembali]

File Rangkaian klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Button klik disini
Datasheet Led klik disini
Datasheet Resistor klik disini

Tidak ada komentar:

Posting Komentar