#define in1 9 //Deklarasi pin 9 sebagai input 1
#define in2 10 //Deklarasi pin 10 sebagai input 2
#define duration 2000 //Deklarasi durasi 2000 ms
void setup() { //Semua kode dalam fungsi ini di eksekusi sekali
pinMode(in1, OUTPUT); //Deklarasi in1 sebagai OUTPUT
pinMode(in2, OUTPUT); //Deklarasi in2 sebagai OUTPUT
}
void loop() { //Semua kode dalam fungsi ini dieksekusi berulang
digitalWrite(in1, HIGH); //in1 diberi logika 1
digitalWrite(in2, LOW); //in2 diberi logika 0
delay(1000); //Jarak waktu 1000 ms setelah input dieksekusi
digitalWrite(in1, LOW); //in1 diberi logika 0
digitalWrite(in2, LOW); //in2 diberi logika 0
delay(1000); //Jarak waktu 1000 ms setelah input dieksekusi
digitalWrite(in1, LOW); //in1 diberi logika 0
digitalWrite(in2, HIGH); //in2 diberi logika 1
delay(1000); //Jarak waktu 1000 ms setelah input dieksekusi
digitalWrite(in1, LOW); //in1 diberi logika 0
digitalWrite(in2, LOW); //in2 diberi logika 0
delay(1000); //Jarak waktu 1000 ms setelah input dieksekusi
}
Prinsip Kerja
Driver motor L293D dihubungkan kaki in1 dan in2 nya ke pin 9 dan 10 oada arduino, Lalu out1 dan out 2 nya dihubungkan ke motor ,dan diberi tegangan oleh vcc dan battery. Prinsip kerja dari L293D ini adalah apabila diberi input yang berbeda barulah motor akan berputar dan ketika diberi input yang sama motor tidak akan berputar. Dengan input (1,0) motor akan berputar searah jarum jam , dan input (0,1) motor akan berputar berlawanan arah jarum jam
1.
analisa program dan rangkaian saat kita ingin membuat motor tersebut
maju selama 1 detik lalu belok kanan selama 1 detik,maju lagi 1 detik, belok
kiri 1 detik lalu lurus lagi 1 detik menggunakan 2 motor?
Jawab :
IC
L293D memiliki prinsip kerja apabila diberi input yang berbeda barulah
motor akan berputar dan ketika diberi input yang sama motor tidak akan
berputar. Dengan input (1,0) motor akan berputar searah jarum jam, dan input
(0,1) motor akan berputar berlawanan arah jarum jam. Lalu dengan syarat ketentuan
pada Analisa tentu kodingan Arduino berubah menjadi :
#define in1 10 //Deklarasi
pin 10 sebagai input 1
#define in2 9 //Deklarasi pin 9
sebagai input 2
#define in3 6 //Deklarasi
pin 6 sebagai input 3
#define in4 5 //Deklarasi pin 5
sebagai input 4
// #define duration 2000
void setup() { //Semua kode dalam
fungsi ini di eksekusi sekali
pinMode(in1, OUTPUT); //Deklarasi in1 sebagai
OUTPUT
pinMode(in2, OUTPUT); //Deklarasi in2 sebagai
OUTPUT
pinMode(in3, OUTPUT); //Deklarasi in3 sebagai
OUTPUT
pinMode(in4, OUTPUT); //Deklarasi in4 sebagai
OUTPUT
}
void loop() { //Semua kode dalam fungsi ini dieksekusi berulang
digitalWrite(in1, HIGH); //in1 diberi logika 1
digitalWrite(in2, LOW); //in2 diberi logika 0
digitalWrite(in3, HIGH); //in3 diberi logika 1
digitalWrite(in4, LOW); //in4 diberi logika 0
delay(1000);
//Jarak waktu 1000 ms setelah input
dieksekusi
// untuk bergerak maju satu detik
digitalWrite(in1, HIGH); //in1 diberi logika 1
digitalWrite(in2, LOW); //in2 diberi logika 0
digitalWrite(in3, LOW); //in3 diberi logika 0
digitalWrite(in4, LOW); //in4 diberi logika 0
delay(1000); //Jarak waktu 1000 ms setelah input dieksekusi
// untuk belok kanan satu
detik
digitalWrite(in1, HIGH); //in1 diberi logika 1
digitalWrite(in2, LOW); //in2 diberi logika 0
digitalWrite(in3, HIGH); //in3 diberi logika 1
digitalWrite(in4, LOW); //in4 diberi logika 0
delay(1000); //Jarak waktu 1000 ms setelah input dieksekusi
// untuk bergerak maju satu detik
digitalWrite(in1, LOW); //in1 diberi logika 0
digitalWrite(in2, LOW); //in2 diberi logika 0
digitalWrite(in3, LOW); //in3 diberi logika 0
digitalWrite(in4, HIGH); //in4 diberi logika 1
delay(1000); //Jarak waktu 1000 ms setelah input dieksekusi
// untuk belok kiri satu detik
}
Untuk rangkaian seperti pada gambar diatas
Tidak ada komentar:
Posting Komentar