Promo Selama Mei 2015: Order 5 Arduino UNO Stater Kit - 10% OFF!


Kendali Sederhana Motor DC dengan Arduino

Gerak pada robot dihasilkan salah satunya dari motor dc. Komponen ini mengubah energi listrik menjadi tenaga putaran. Kebanyakan motor listrik yang dipakai dalam robot skala kecil adalah motor arus searah (motor dc) yang beroperasi pada tegangan 6 - 12 volt, meskipun ada juga motor dc dengan tegangan hingga 24 volt.

Catudaya Motor DC

Sebuah motor dc memiliki dua kabel untuk menghubungkannya ke catudaya listrik. Kedua kabel itu umumnya berwarna merah dan hitam. Kabel merah untuk kutub positif, sedangkan kabel hitam untuk kutub negatif.

Arah Putar Motor DC

Clock Wise (CW)

Dalam keadaan normal sebuah motor DC akan berputar searah jarum jam (Clock Wise atau CW). Keadaan normal yang saya maksud adalah kabel positif motor terhubung ke kutub positif catudaya, sedangkan kabel negatif motor terhubungk ke kutub negatif catudaya.

Counter Clock Wise (CCW)

Arah putaran motor dc dapat dibalik dengan cara menukar hubungan kedua kabelnya pada catudaya. Artinya, kabel positif motor dihubungkan ke kutub negatif catudaya, sebaliknya kabel negatif motor dihubungkan ke kutub posifif catudaya. Putaran yang terbalik ini dikenal dengan istilah Counter Clock Wise (CCW).

Prinsip Menghubungkan Motor DC ke Board Arduino

Motor DC dapat dikendalikan dengan microcontroller, misalnya dengan Board Arduino UNO. Prinsip menguhubungkan motor dc ke Board Arduino UNO adalah sebagai berikut:
  • Kabel positif motor dihubungkan ke salah satu pin digital
  • kabel neagatif motor dihubungkan ke pin GND
Hubungan diatas menghasilkan arah putaran maju (forward), namun jika hubungan dibalik maka akan menghasilkan arah putaran mundur (reverse).

Pemrograman Sederhana untuk Kendali Motor DC


Kendali diatas akan menjadikan motor mula-mula berhenti, bergerak maju, belok kanan dan akhirnya belok kiri. Kode diatas juga dapat ditulis dalam fungsi-fungsi tersendiri seperti berikut:


Dari kode diatas tampak bahwa kita definisikan empat buah fungsi tersendiri, dan kemudian memanggil masing-masing fungsi itu dari fungsi loop().

Saran

Pin digital pada Board Arduino menghasilkan sinyal digital dengan besar tegangan sekitar 5 volt. Hal ini kurang memadai jika operasi motor dc yang butuh 6 volt. Saya sarankan untuk melengkapi motor dengan sebuah rangkaian pendorong (driver), baik berupa transistor maupun modul khusus untuk driver motor.

Selain itu kendali sederhana seperti ini tidak bisa dipakai untuk gerak mundur, kecuali anda menukar hubungan kabel-kabel motornya.

Struktur Dasar Sketch

Telah saya jelaskan pada tulisan sebelumnya bahwa untuk memprogram Board Arduino dapat digunakan software Arduino. Kode-kode pemrograman yang kita tulis dengan software itu disebut juga Sketch.


Sebuah Sketch memiliki struktur dasar sebagai berikut:


void adalah perintah untuk memanggil suatu fungsi. Untuk menyusun Sketch diperlukan dua fungsi pokok, yaitu setup() dan loop().

Fungsi setup() diperlukan untuk melakukan pengaturan-pengaturan awal seperti menetapkan mode pin, mendeklarasikan variabel, pemakaian library dan sebagainya. Fungsi ini hanya akan dikesekusi sekali saja, yaitu pada awal Board Arduino dihidupkan (on).

Fungsi loop() berisi pernyataan-pernyataan atau perintah-perintah yang akan dieksekusi secara berulang-ulang selama Board Arduino dalam keadaan beroperasi (on). Didalam fungsi inilah kendali itu berada.

LED Built-in

Board Arduino UNO dilengkapi dengan sebuah LED yang terpasang didalamnya. Ini disebut juga LED built-in. LED tersebut tersambung/terpasang dengan pin digital 13. Kita bisa memanfaatkan LED built-in ini untuk latihan membuat kode pemrograman (sketch) sederhana.

Beberapa Perintah Pemrograman

pinMode

Perintah ini digunakan untuk menetapkan mode sebuah pin digital, sebagai titik masukan (input) ataukah sebagai titik keluaran (output). Kita menetapkan mode sebuah pin ini didalam fungsi setup(). Contoh:

pinMode(13,OUTPUT);

Contoh diatas menunjukkan pengaturan mode pin 13 sebagai titik keluaran (titik output).

digitalWrite

Perintah ini digunakan untuk menulis kondisi logic sebuah pin digital, HIGH ataukah LOW. Perhatikan contoh berikut:

digitalWrite(13,HIGH);

Contoh diatas menunjukkan bahwa pin 13 diatur dalam kondisi HIGH. Untuk mengatur pin 13 dalam kondisi LOW, perintahnya ditulis seperti ini:

digitalWrite(13,LOW);

Jika sebuah pin digital berada dalam kondisi HIGH, maka pin itu akan mengeluarkan tegangan atau sinyal sebesar 5 volt. Sebaliknya, jika berada dalam kondisi LOW, maka tegangan pada pin itu sebesar 0 volt.

delay

Perintah ini digunakan untuk menunda eksekusi program beberapa saat sesuai dengan lamanya waktu yang ditentukan (dalam satuan milidetik). Ketika batas waktu sudah terlampaui maka eksekusi program akan dilanjutkan ke baris berikutnya.

digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
delay(500);

contoh diatas menunjukkan begitu pin 13 berada dalam kondisi HIGH maka eksekusi program akan ditunda sejenak selama 500 milidetik. Hal ini berarti pin 13 akan berada dalam kondisi HIGH selama 500 milidetik. Setelah itu pin 13 akan diubah kondisinya menjadi LOW.

Contoh Sketch


Anda bisa mencoba sketch diatas dan melihat hasil yang ditunjukkan oleh LED built-in.