MOTOR DC
Motor DC adalah motor listrik yang memerlukan suplai tegangan arus searah pada kumparan medan untuk diubah menjadi energi gerak mekanik. Kumparan medan pada motor dc disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar). Motor arus searah, sebagaimana namanya, menggunakan arus langsung yang tidak langsung/direct-unidirectional.
Driver Motor L293D
IC L293D adalah IC yang didesain khusus sebagai driver motor DC dan dapat dikendalikan dengan rangkaian TTL maupun mikrokontroler. Motor DC yang dikontrol dengan driver IC L293D dapat dihubungkan ke ground maupun ke sumber tegangan positif karena di dalam driver L293D sistem driver yang digunakan adalah totem pool. Dalam 1 unit chip IC L293D terdiri dari 4 buah driver motor DC yang berdiri sendiri sendiri dengan kemampuan mengalirkan arus 1 Ampere tiap drivernya. Sehingga dapat digunakan untuk membuat driver H-bridge untuk 2 buah motor DC. Konstruksi pin driver motor DC IC l293D adalah sebagai berikut.
Fungsi Pin Driver Motor DC IC L293D
1. Pin EN (Enable, EN1.2, EN3.4) berfungsi untuk mengijinkan driver menerima perintah untuk menggerakan motor DC.
2. Pin In (Input, 1A, 2A, 3A, 4A) adalah pin input sinyal kendali motor DC
3. Pin Out (Output, 1Y, 2Y, 3Y, 4Y) adalah jalur output masing-masing driver yang dihubungkan ke motor DC
3. Pin VCC (VCC1, VCC2) adalah jalur input tegangan sumber driver motor DC, dimana VCC1 adalah jalur input sumber tegangan rangkaian kontrol dirver dan VCC2 adalah jalur input sumber tegangan untuk motor DC yang dikendalikan.
4. Pin GND (Ground) adalah jalu yang harus dihubungkan ke ground, pin GND ini ada 4 buah yang berdekatan dan dapat dihubungkan ke sebuah pendingin kecil.
Fungsi Pin Driver Motor DC IC L293D
1. Pin EN (Enable, EN1.2, EN3.4) berfungsi untuk mengijinkan driver menerima perintah untuk menggerakan motor DC.
2. Pin In (Input, 1A, 2A, 3A, 4A) adalah pin input sinyal kendali motor DC
3. Pin Out (Output, 1Y, 2Y, 3Y, 4Y) adalah jalur output masing-masing driver yang dihubungkan ke motor DC
3. Pin VCC (VCC1, VCC2) adalah jalur input tegangan sumber driver motor DC, dimana VCC1 adalah jalur input sumber tegangan rangkaian kontrol dirver dan VCC2 adalah jalur input sumber tegangan untuk motor DC yang dikendalikan.
4. Pin GND (Ground) adalah jalu yang harus dihubungkan ke ground, pin GND ini ada 4 buah yang berdekatan dan dapat dihubungkan ke sebuah pendingin kecil.
#include <LiquidCrystal.h> //library untuk LCD
LiquidCrystal lcd (41,39,37,35,33,31); // menunjukkan pin yang dihubungkan pada di LCD
int m1 = 7; //pin m1 pada L293 dihubungkan ke pin 14 pada Arduino
int m2 = 6; //pin m2 pada L293 dihubungkan ke pin 15 pada Arduino
int m3 = 5; //pin m3 pada L293 dihubungkan ke pin 16 pada Arduino
int m4 = 4; //pin m4 pada L293 dihubungkan ke pin 17 pada Arduino
const int s1 = 16; // switch 1 dihubungkan ke pin 19 pada Arduino
const int s2 = 17; // switch 2 dihubungkan ke pin 20 pada Arduino
const int s3 = 18; // switch 3 dihubungkan ke pin 21 pada Arduino
void setup() // Settingan kondisi yang akan digunakan
{
pinMode(m1,OUTPUT); // menjelaskan bahwa pin m1 sebagai output
pinMode(m2,OUTPUT); // menjelaskan bahwa pin m2 sebagai output
pinMode(m3,OUTPUT); // menjelaskan bahwa pin m3 sebagai output
pinMode(m4,OUTPUT); // menjelaskan bahwa pin m4 sebagai output
pinMode(s1, INPUT); // menjelaskan switch 1 sebagai input
pinMode(s2, INPUT); // menjelaskan switch 2 sebagai input
pinMode(s3, INPUT); // menjelaskan switch 3 sebagai input
digitalWrite(s1, HIGH); // menjelaskan kondisi awal dari switch 1 berlogika high
digitalWrite(s2, HIGH); // menjelaskan kondisi awal dari switch 2 berlogika high
digitalWrite(s3, HIGH); // menjelaskan kondisi awal dari switch 3 berlogika high
lcd.begin(16,2);
}
void loop() // Perulangan dari semua kondisi yang ditetapkan
{
int switch1 = digitalRead (s1); // tetapkan switch 1 sebagai input dengan pembacaan digital
int switch2 = digitalRead (s2); // tetapkan switch 1 sebagai input dengan pembacaan digital
int switch3 = digitalRead (s3); // tetapkan switch 1 sebagai input dengan pembacaan digital
if (switch1 == LOW && switch2 == LOW && switch3 == LOW)
{
lcd.setCursor (0,0); // posisi kursor lcd
lcd.print ("Motor Mati"); // cetak LCD
lcd.clear(); // reset LCD
digitalWrite (m1,LOW); // m1 kondisi mati
digitalWrite (m2,LOW); // m1 kondisi mati
digitalWrite (m3,LOW); // m1 kondisi mati
digitalWrite (m4,LOW); // m1 kondisi mati
}
else if (switch1 == HIGH && switch2 == LOW && switch3 == LOW)
{
lcd.setCursor (0,0); // posisi kursor lcd
lcd.print ("Motor Pelan"); // cetak pada lcd
delay(50);
lcd.clear(); // reset LCD
delay(1); // delay selama 1 ms
analogWrite (m1,80); // m1 kondisi dengan nilai analog 50 dari 255
analogWrite (m2,0); // m2 kondisi mati
analogWrite (m3,80); // m3 kondisi dengan nilai analog 50 dari 255
analogWrite (m4,0); // m4 kondisi mati
}
else if (switch1 == LOW && switch2 == HIGH && switch3 == LOW)
{
lcd.setCursor (0,0); // posisi lcd
lcd.print ("Motor Sedang"); // cetak tulisan pada LCD
delay(50);
lcd.clear(); // reset lcd
delay(1); // delay selama 1 ms
analogWrite (m1,150); // m1 kondisi dengan nilai analog 150 dari 255
analogWrite (m2,0); // m2 kondisi mati
analogWrite (m3,150); // m3 kondisi dengan nilai analog 150 dari 255
analogWrite (m4,0); // m4 kondisi mati
}
else if (switch1 == LOW && switch2 == LOW && switch3 == HIGH)
{
lcd.setCursor (0,0); // posisi lcd
lcd.print ("Motor Cepat"); // cetak tulisan pada lcd
delay(50);
lcd.clear(); // reset lcd
delay(1); // delay selama 1 ms
analogWrite (m1,255); // m1 kndisi dengan nilai 200 dari 255
analogWrite (m2,0); // m2 kondisi mati
analogWrite (m3,255); // m3 kondisi denga nilai 200 dari 255
analogWrite (m4,0); // m4 kondisi mati
}
else
{
lcd.setCursor (0,0); // posisi lcd
lcd.print ("Tidak Ada Kondisi !!"); // cetak tulisan pada lcd
lcd.clear(); // reset lcd
analogWrite (m1,0); // m1 kondisi mati
analogWrite (m2,0); // m2 kondisi mati
analogWrite (m3,0); // m3 kondisi mati
analogWrite (m4,0); } } // m4 kondisi mati
LiquidCrystal lcd (41,39,37,35,33,31); // menunjukkan pin yang dihubungkan pada di LCD
int m1 = 7; //pin m1 pada L293 dihubungkan ke pin 14 pada Arduino
int m2 = 6; //pin m2 pada L293 dihubungkan ke pin 15 pada Arduino
int m3 = 5; //pin m3 pada L293 dihubungkan ke pin 16 pada Arduino
int m4 = 4; //pin m4 pada L293 dihubungkan ke pin 17 pada Arduino
const int s1 = 16; // switch 1 dihubungkan ke pin 19 pada Arduino
const int s2 = 17; // switch 2 dihubungkan ke pin 20 pada Arduino
const int s3 = 18; // switch 3 dihubungkan ke pin 21 pada Arduino
void setup() // Settingan kondisi yang akan digunakan
{
pinMode(m1,OUTPUT); // menjelaskan bahwa pin m1 sebagai output
pinMode(m2,OUTPUT); // menjelaskan bahwa pin m2 sebagai output
pinMode(m3,OUTPUT); // menjelaskan bahwa pin m3 sebagai output
pinMode(m4,OUTPUT); // menjelaskan bahwa pin m4 sebagai output
pinMode(s1, INPUT); // menjelaskan switch 1 sebagai input
pinMode(s2, INPUT); // menjelaskan switch 2 sebagai input
pinMode(s3, INPUT); // menjelaskan switch 3 sebagai input
digitalWrite(s1, HIGH); // menjelaskan kondisi awal dari switch 1 berlogika high
digitalWrite(s2, HIGH); // menjelaskan kondisi awal dari switch 2 berlogika high
digitalWrite(s3, HIGH); // menjelaskan kondisi awal dari switch 3 berlogika high
lcd.begin(16,2);
}
void loop() // Perulangan dari semua kondisi yang ditetapkan
{
int switch1 = digitalRead (s1); // tetapkan switch 1 sebagai input dengan pembacaan digital
int switch2 = digitalRead (s2); // tetapkan switch 1 sebagai input dengan pembacaan digital
int switch3 = digitalRead (s3); // tetapkan switch 1 sebagai input dengan pembacaan digital
if (switch1 == LOW && switch2 == LOW && switch3 == LOW)
{
lcd.setCursor (0,0); // posisi kursor lcd
lcd.print ("Motor Mati"); // cetak LCD
lcd.clear(); // reset LCD
digitalWrite (m1,LOW); // m1 kondisi mati
digitalWrite (m2,LOW); // m1 kondisi mati
digitalWrite (m3,LOW); // m1 kondisi mati
digitalWrite (m4,LOW); // m1 kondisi mati
}
else if (switch1 == HIGH && switch2 == LOW && switch3 == LOW)
{
lcd.setCursor (0,0); // posisi kursor lcd
lcd.print ("Motor Pelan"); // cetak pada lcd
delay(50);
lcd.clear(); // reset LCD
delay(1); // delay selama 1 ms
analogWrite (m1,80); // m1 kondisi dengan nilai analog 50 dari 255
analogWrite (m2,0); // m2 kondisi mati
analogWrite (m3,80); // m3 kondisi dengan nilai analog 50 dari 255
analogWrite (m4,0); // m4 kondisi mati
}
else if (switch1 == LOW && switch2 == HIGH && switch3 == LOW)
{
lcd.setCursor (0,0); // posisi lcd
lcd.print ("Motor Sedang"); // cetak tulisan pada LCD
delay(50);
lcd.clear(); // reset lcd
delay(1); // delay selama 1 ms
analogWrite (m1,150); // m1 kondisi dengan nilai analog 150 dari 255
analogWrite (m2,0); // m2 kondisi mati
analogWrite (m3,150); // m3 kondisi dengan nilai analog 150 dari 255
analogWrite (m4,0); // m4 kondisi mati
}
else if (switch1 == LOW && switch2 == LOW && switch3 == HIGH)
{
lcd.setCursor (0,0); // posisi lcd
lcd.print ("Motor Cepat"); // cetak tulisan pada lcd
delay(50);
lcd.clear(); // reset lcd
delay(1); // delay selama 1 ms
analogWrite (m1,255); // m1 kndisi dengan nilai 200 dari 255
analogWrite (m2,0); // m2 kondisi mati
analogWrite (m3,255); // m3 kondisi denga nilai 200 dari 255
analogWrite (m4,0); // m4 kondisi mati
}
else
{
lcd.setCursor (0,0); // posisi lcd
lcd.print ("Tidak Ada Kondisi !!"); // cetak tulisan pada lcd
lcd.clear(); // reset lcd
analogWrite (m1,0); // m1 kondisi mati
analogWrite (m2,0); // m2 kondisi mati
analogWrite (m3,0); // m3 kondisi mati
analogWrite (m4,0); } } // m4 kondisi mati
0 komentar:
Posting Komentar