Driver Motor Arduino

Ketika kita hendak membuat sebuah perangkat yang membutuhkan sebuah motor untuk penggeraknya baik itu untuk sistem otomatis, atau robotik, maka kita akan dihadapkan pada permasalahan bagaimana menggerakkan sebuah motor yang membutuhkan daya yang cukup besar dengan memanfaatkan mikrokontroler, sedangkan kita tau bahwa pada umumnya mikrokontroler hanya mengeluarkan daya dari tiap pin sekitar 5V, sedangkan bila kita menggunakan aktuator/motor daya yang dibutuhkan bisa lebih dari itu, kadang bisa sampai 12V.
Maka untuk mengatasi permasalahan tersebut kita dapat menggunakan sebuah driver motor, fungsi dari pada driver ini adalah mengontrol arus yang besar dengan menggunakan arus yang kecil (yang dikeluarkan oleh mikrokontroller). Kita dapat membuat sebuah driver motor dengan menggunakan transistor yang disusun sedemikian rupa, atau kita juga bisa menggunakan IC (Integrated Circuit) sebagai alternatifnya. OK, langsung saja disini saya akan membahas mengenai komponen apa saja yang dapat digunakan sebagai driver motor, diantaranya adalah:

1. Menggunakan H-Bridge dengan Transitor NPN dan PNP
Pada beberapa buku atau artikel mungkin ada yang menggunakan jenis transistor yang lain, seperti transistor MOSFET atau yang lainnya. tetapi saya mencoba membuat pilihan lain yaitu dengan menggunakan transistor jenis BJT (Bipolar Junction Transistor) NPN BD139, dan PNP BD140, setelah saya mencobanya, ternyata dapat bekerja dengan cukup baik. rangkaian yang saya buat dapat dilihat pada Gambar berikut



dari Gambar diatas, dapat kita lihat jumlah transistor yang digunakan secara keseluruhan ada 6, yang terdiri dari 2 Transistor PNP, yang digunakan untuk mengalirkan tegangan positif. 2 Transistor NPN, yang digunakan untuk mengalirkan tegangan negatif, kemudian terdapat 2 transistor NPN (NPN A dan NPN B), NPN A digunakan untuk mengaktifkan transistor PNP 1 dan NPN 2. NPN B digunakan untuk mengaktifkan transistor PNP 2 dan NPN 1.

2. Menggunakan Relay
Relay yang digunakan merupakan relay dengan daya 5 Volt, karena tegangan keluaran Mikrokontroler umumnya 5 Volt. pada rangkaian ini, saya menggunakan 2 buah relay DPDT (Double pole Double throw), satu buah digunakan untuk memutar motor searah jarum jam, dan satu lagi digunakan untuk memutar motor berlawanan arah jarum jam.
rangkaian yang saya buat dapat dilihat pada Gambar berikut:


3. Menggunakan IC L293D

IC L293D merupakan IC half H-bridge yang berguna sebagai pengendali motor. Karakteristik IC L293D sebagai berikut:
- Tegangan Masukan maksimum= 4,5 sampai 36 volt.
- Tegangan Logic Maksimum = 4,5 – 36 volt.
- Arus keluaran maksimum perkanal = 1 ampere.
- Dispasi daya maksimum = 5 volt.
- Masukan suply dan logic terpisah.
- Kemasan = PDIP-16.
IC ini dapat mengendalikan 2 Motor DC, dengan arah putaran CW dan CCW.
skema yang dibuat adalah sebagai berikut.

untuk lebih jelasnya mengenai fungsi Pin IC L293D dapat dilihat pada tabel berikut:

contoh source-code yang saya buat dapat dilihat dibawah

int Mkir = 3;
int Mkan = 5;
int Mkir2 = 9;
int Mkir2 = 10;

void setup(){
pinMode (Mkir, OUTPUT);
pinMode (Mkan, OUTPUT);
pinMode (Mkir2, OUTPUT);
pinMode (Mkan2, OUTPUT);
}

void loop(){
/* menyalakan motor secara bergantian, motor 1 dan motor 2, berputar kekiri dan kekanan, dengan jeda 500 ms (0,5 detik) */

digitalWrite (Mkir, HIGH); delay(500); digitalWrite (Mkir, LOW);
digitalWrite (Mkan, HIGH); delay(500); digitalWrite (Mkan, LOW);
digitalWrite (Mkir2, HIGH); delay(500); digitalWrite (Mkir2, LOW);
digitalWrite (Mkan2, HIGH); delay(500); digitalWrite (Mkan2, LOW);

}

Comments