Percobaan 5 Modul 2
Kontrol Putaran Motor DC
Foto Hardware dan Diagram Blok [Kembali]
Arduino Uno
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
Percobaan 5
Prinsip Kerja
Percobaan 5 adalah kontrol putaran dari motor dc dengan menggunakan sensor infrared. Prinsip kerjanya adalah ketika sensor infrared tersebut idak mendeteksi adanya benda di sekitarnya maka motor dapat berputar yang ditandai dengan indikator tanda panah yang muncul pada dot matrix nya. Namun ketika infrared mendeteksi ada benda di sekitarnya maka motor dc akan berhenti. Kemudian, potensiometer pada rangakian digunakan untuk mengatur kecepatan dari motor dc. Ketika PWM yang diberikan itu tidak sesuai dengan kondisi yang diberikan pada codingan arduino, motor tidak akan berputar yang ditandai dengan indikator X pada dot matrix. selanjutnya PWM juga dapat mengatur arah berputarnya motor sesuai kondisi yang dibuat pada codingan arduino.
Pola-pola yang ditampilkan, seperti panah ke kanan, yang artinya motor akan berputar kearah kanan, panah ke kiri, yang artinya motor akan berputar kearah kiri, dan tanda "X", yang berarti motor berhenti berputar.
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 Potensiometer
Download Datasheet Infrared Sensor
Download Datasheet Arduino Uno
Tidak ada komentar:
Posting Komentar