Tutorial #11: Kawalan DC Motor Dengan Module L298N

Dalam Tutorial ini, anda akan pelajari bagaimana mengawal DC Motor dengan Arduino.

DC Motor

Dalam mengawal DC dengan menggunakan Arduino, terdapat beberapa perkara penting yang anda perlu tahu, terutamanya untuk mengelakkan daripada board Arduino anda rosak dan terbakar:

  • Limitasi Output Current dari Arduino (Amps)
    Dari datasheet Arduino, pin-pin Input/Output (I/O) hanya mampu mengeluarkan dan menahan current keluaran 40mA maksimum!
    Jika sebarang output kawalan seperti LED dan DC Motor menggunakan lebih dari 40mA, ini bermakna kebarangkalian besar board Arduino akan terbakar.
  • Limitasi Voltan Output dari ARduino (Volt)
    Kesemua pin-pin I/O Arduino hanya mampu mengeluarkan voltan 5V maksimum, dan 3.3V untuk sesetengah board yang lain.
  • Ketahui penggunaan Voltan dan Current DC Motor
    Sebelum memilih sebarang Motor DC, pastikan anda tahu 2 perkara ini sebelum memilihnya. Terdapat pelbagai jenis DC Motor dalam pasaran, ada yang 5V ada yang 12V ada yang 24V, juga, penggunaan current bagi setiap motor berbeza.
  • Spesifikasi Motor Controller/Driver 
    Disebabkan perbezaan Output current/volt dari Arduino dan juga pada setiap DC Motor, anda perlu meletakkan Motor Driver/Controller yang menjadi pengantara, antara Arduino dan Motor. Pastikan anda memilih Motor Controller yang mempunyai rating Voltan Input serta Current maksimum yang melebihi dari rating DC Motor, sekurang-kurangnya 1.5X hingga 2X ganda.Tugas Motor Controller hanyalah menjadi “Amplifier” yang meng-amplify atau menaikkan Output dari Arduino supaya bersesuaian untuk mengawal DC Motor
  • Jenis Kawalan Motor Driver
    Anda juga perlu pastikan, Motor Controller tersebut dapat di kawal dengan Output-output Kawalan dari Arduino. Antara jenis input yang biasa adalah , Digital Output 5V (HIGH/LOW), PWM 5V TTL, SPI dan juga I2C.Kebiasaan motor-motor controller yang terdapat dalam pasaran mempunyai standard kawalan Digital 5V serta PWM control

Dalam Tutorial ini, kita akan menggunakan Motor standard yang digunakan dalam kebanyakan barang mainan seperti remote control kereta dan lain-lain.

a13-1-pcs-high-quality-1v-6v-font-b-dc-b-font-hobby-font-b-motor

DC Motor 6V , 0.5A Current

Ataupun, model DC Motor yang sama dan bersama unit Gearbox.

Item-No-19_1

Mempunyai Spesifikasi yang sama

L298N Motor Driver

Bagi mengawal DC Motor yang tertera di atas, kita akan menggunakan module Motor Controller L298N yang mempunyai rating current 2A maksimum. Controller ini juga dapat menerima voltan input sehingga 35V DC.

Nota Kaki: DC Motor 6V di atas, telah diuji kadar current maksimumnya dengan Multi-meter. Nilai bacaan 200mA direkodkan pada pergerakan kosong dan hampir 1A sebelum Motor terhenti/stall.

L298N Pin Signals

Pin-pin pada Module L298N

Motor Driver L298N ini dapat mengawal 2 DC Motor dengan serentak. Namun dalam Tutorial ini, kita akan focus untuk mengawal 1 motor sahaja.

Sambungan wayar berkenaan:

  • Sambungan Motor
    Motor akan disambungkan pada port A di sebelah kiri module. Letakkan sahaja mana-mana 2 wayar pada terminal pin module. Jika motor berpusing terbalik, anda boleh songsangkan 2 wayar ini.
  • Sambungan Input Power
    Motor driver ini menggunakan “External” power samada dari Battery ataupun dari DC Power Supply. Sambungkan input Power pada pin “VIN”.
    Pin “5V Out” dapat membekalkan voltan 5V pada Arduino jika tidak menggunakan power dari USB.
    (Pin “5V Out” ini tidak akan digunakan dalam tutorial ini)
    PERHATIAN!: Jika DC Power Supply adalah melebihi 12V, cabutkan dan tanggalkan jumper yang ditandakan kuning “>12V jumper” dalam gambar di atas. 
  • Sambungan Kawalan Input Motor A
    Pins V2
    Terdapat 6 pin yang dapat dikawal untuk mengawal 2 motor.
    Bagi, mengawal Motor di Port A, 3 pin di sebelah kiri akan digunakan, iaitu pin ENA, IN1 dan IN2.
    Pin IN1 dan IN2 mengawal arah pusingan motor dengan memberikan signal digital seperti jadual dibawah. Manakala, Pin ENA dapat diberi signal PWM untuk mengawal kelajuan putaran motor.

    Nota Kaki: Tanggalkan jumper pada pin ENA untuk sambungan wayar. Jumper ini digunaka hanya untuk kawalan Stepper Motor.

    Jadual Kawalan

    Jadual Kawalan Module L298N

Teruskan dengan tutorial ini bagi mengawal DC Motor.

Dalam tutorial ini, komponen-komponen berikut perlu disediakan:

  1. Arduino Uno (atau yang lain) (1 unit)
  2. DC Motor 6V (1 unit)
  3. Module Motor Controller L298N (1 unit)
  4. Jumper cable
  5. Battery 6V atau Power Supply (1 unit)

LANGKAH #1: SAMBUNGAN LITAR

Sambungkan litar anda seperti gambarajah berikut:

L298N Pin Signals - Diagram

LANGKAH #2: CODING/SKETCH 

Copy sketch di bawah dan pastekan dalam Arduino IDE anda.

//Tutorial #11 : Kawalan DC Motor
//Code disediakan oleh MatGyver.my

void setup() {
// masukkan code setup di sini, Void Setup berjalan sekali sahaja

 pinMode(4, OUTPUT); //pin ENA, untuk PWM
 pinMode(5, OUTPUT); //pin IN1, digital
 pinMode(6, OUTPUT); //pin IN2, digital

 //offkan semua pin pada peringkat awal
 //dengan meletakkan LOW
 digitalWrite(4, LOW);
 digitalWrite(5, LOW);  
 digitalWrite(6, LOW);

 delay(100);
 //letak sedikit delay untuk program setup

}//penutup Void Setup

void loop() {
// masukkan code utama di sini, untuk program yang berulang

 for(int x = 0; x < 255; x++){ //for loop PERTAMA
   //loop ini akan memusing Motor Forward
   //dengan kelajuan menaik
   digitalWrite(4, LOW);
   digitalWrite(5, HIGH);
   //gabungan LOW/HIGH untuk Motor Forward
   analogWrite(6, x);
   //x akan mengawal Output PWM Motor
   delay(15);//berikan delay 15ms paling laju
 }//penutup for loop
 
 for(int x = 255; x > 0; x--){ //for loop KEDUA
   //loop ini akan memusing Motor Forward
   //dengan kelajuan menurun
   digitalWrite(4, LOW);
   digitalWrite(5, HIGH);
   //gabungan LOW/HIGH untuk Motor Forward
   analogWrite(6, x);  
   //x akan mengawal Output PWM Motor
   delay(15);//berikan delay 15ms paling laju
 }//penutup for loop

 for(int x = 0; x < 255; x++){ //for loop KETIGA
   //loop ini akan memusing Motor Reverse
   //dengan kelajuan menaik
   digitalWrite(4, HIGH);
   digitalWrite(5, LOW);
   //gabungan LOW/HIGH untuk Motor Reverse
   analogWrite(6, x);
   //x akan mengawal Output PWM Motor
   delay(15);//berikan delay 15ms paling laju
 }//penutup for loop
 
 for(int x = 255; x > 0; x--){ //for loop KEEMPAT
   //loop ini akan memusing Motor Reverse
   //dengan kelajuan menurun
   digitalWrite(4, HIGH);
   digitalWrite(5, LOW);
   //gabungan LOW/HIGH untuk Motor Reverse
   analogWrite(6, x);  
   //x akan mengawal Output PWM Motor
   delay(15);//berikan delay 15ms paling laju
 }//penutup for loop

} //penutup Void Loop

Atau, anda boleh download file sketch .ino untuk tutorial ini di URL berikut:

Setelah sketch di-upload, Motor akan bergerak Forward dengan kelajuan menaik, dan kemudian menurun. Kemudian, Motor akan bergerak Reverse dengan kelajuan menaik dan turun semula. Kawalan ini akan berulang-ulang.

Anda juga boleh mengawal kelajuan Motor dengan menggunakan Potentiometer yang di-Map-kan nilai nya untuk output PWM 0~255. Tambahkan satu suis untuk menukar arah pusing Forward – Reverse.

Ini merupakan Tutorial terakhir untuk Tutorial Beginners MatGyver.my. Anda boleh terus mengikuti tutorial-tutorial yang lain yang advance dari URL berikut:

  • Tutorial Advance MatGyver.my

Senarai Tutorial asas Arduino MatGyver.my :

3 thoughts on “Tutorial #11: Kawalan DC Motor Dengan Module L298N

  1. Pingback: Tutorial Beginners Arduino | MatGyver - DIY & Hobby Blog

    • Jenis bateri tidak kisah, tapi bergantung pada voltage yang motor anda boleh terima. Kalau motor perlukan 3V, jangan beri 3Vpada input L298N, berikan 3V juga.

      Kalau 12V motor, gunakan bateri 12V.
      Untuk 12V, tuan/cikpuan boleh gunakan LiPo bateri.

      Like

Tinggalkan Jawapan

Masukkan butiran anda dibawah atau klik ikon untuk log masuk akaun:

WordPress.com Logo

Anda sedang menulis komen melalui akaun WordPress.com anda. Log Out /  Tukar )

Google+ photo

Anda sedang menulis komen melalui akaun Google+ anda. Log Out /  Tukar )

Twitter picture

Anda sedang menulis komen melalui akaun Twitter anda. Log Out /  Tukar )

Facebook photo

Anda sedang menulis komen melalui akaun Facebook anda. Log Out /  Tukar )

Connecting to %s