Tutorial #11: Kawalan DC Motor Dengan Module L298N

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

DC MOTOR & MOTOR CONTROLLER

Dalam mengawal DC dengan menggunakan Arduino, terdapat beberapa perkara penting yang anda perlu tahu, terutamanya untuk mengelakkan daripada board Arduino anda rosak dan terbakar, dan untuk memastikan Motor DC dan Controller dapat beroperasi pada tahap oprimum:

  • Jangan Kawal Motor DIRECT dari Pin Digital Arduino
    Semua Pin Digital pada Board Arduino, hanya mampu mengeluarkan MAKSIMUM 20-40mA current sahaja.
    Kebanyakan DC Motor, memerlukan lebih dari 100mA.

  • RULE of THUMB – Spesifikasi Motor Controller/Driver
    CURRENT RATING Motor Controller, mestilah sekurang-kurangnya 1.5X atau 2.0X LEBIH BESAR dari CURRENT RATING DC Motor.
    Sebagai contoh, jika motor yang dipilih mempunya CURRENT RATING 1A, maka Motor Controller perlu mempunyai rating sekurang-kurangnya 1.5A atau 2.0A.
    Ini adalah disebabkan, DC Motor, apabila ia tersekat/tersangkut atau terhenti dengan mengejut, ia akan MENARIK CURRENT pada tahap lebih besar dari Current Rating.
    Dengan ini, jika situasi ini berlaku, Motor pasti akan terbakar manakala Motor Controller masih dapat diselamatkan lagi.

  • Beri Supply Power pada Motor Controller Secukupnya Jangan Terlalu Lebih
    POWER adalah gabungan VOLTAGE dan CURRENT. POWER berkadar-terus dengan RPM dan TORQUE.
    Jika DC Motor adalah rating 12V, maka JANGAN berikan supply 24V. Voltan tinggi akan menyebabkan Motor cepat panas dan mudah terbakar.
    JANGAN pula terlalu kurang sehingga 6V. Torque Output atau RPM Output dari Motor tidak dapat hasilkan optimum POWER.

    Jika Motor Controller mempunyai Current Rating 2A, maka sediakan supply BATERI atau POWER SUPPLY, sekurang-kurangnya 4A atau 5A.

  • Jenis Motor Controller
    Pastikan Motor Controller yang dipilih/beli, mempunyai pin-pin kawalan yang mampu dikawala oleh Arduino. Contoh pin kawalan ialah seperti:
    1) Pin PWM Input
    2) Pin Digital 0V/5V
    3) Pin Analog
    4) Pin Serial UART/I2C/SPI

Dalam Tutorial ini, kita akan menggunakan Motor standard yang digunakan dalam kebanyakan barang mainan seperti remote control kereta dan lain-lain, DC Motor 6V, Current rating @1A max. Ini bermakna, power output motor ini adalah 6W.

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 CONTROLLER

Dalam Tutorial ini, kita akan menggunakan module Motor Controller L298N yang mempunyai rating Current Rating 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

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

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

Jadual Kawalan
Carta Kawalan Module L298N

SAMBUNGAN LITAR / WIRING

Merujuk kepada 2 gambar di atas, ini adalah 2 SPESIFIKASI-INFO PENTING yang anda perlu dapatkan dari PEMBEKAL hardware Motor dan Controller. Sebaiknya, pastikan 2 info penting ini dikaji dan dibaca SEBELUM membuat pembelian Module atau DC Motor. Selalunya, info ini boleh didapati dari PRODUCT SPESIFICATION page jika pembelian dibuat Online.

CARTA KAWALAN & DIAGRAM-PIN

Kedua-dua carta dan diagram di atas, melengkapkan antara satu sama lain. Carta Kawalan akan menunjukkan bagaimana kaedah menghantar SIGNAL pada Module Controller untuk membuat kawalan Motor.

PIN-PIN L298N

Berdasarkan Carta Kawalan di atas, 2 DC Motor akan dapat dikawal oleh Module ini, yang dilabelkan sebagai MOTOR A dan juga MOTOR B.

MOTOR A:
+ve dan -ve Motor disambungkan pada pin berlabel Motor A

Pin-pin untuk mengawal Motor A adalah:

  • Pin ENA – menerima signal PWM untuk kawalan kadar kelajuan
  • Pin IN1 dan IN2 – menerima signal Digital 0V/5V untuk mengawal arah pusingan

MOTOR B:
+ve dan -ve Motor disambungkan pada pin berlabel Motor B

Pin-pin untuk mengawal Motor B adalah:

  • Pin ENB – menerima signal PWM untuk kawalan kadar kelajuan
  • Pin IN3 dan IN4 – menerima signal Digital 0V/5V untuk mengawal arah pusingan

INPUT POWER/VOLTAGE

  • Pin VIN – Inputkan supply +ve dari sumber Bateri atau Power Supply
  • Pin GND – GND atau penuhnya Ground adalah lokasi -ve dari sumber Bateri atau Power Supply

Nota Kaki: Dalam mana-mana module yang disambungkan pada Arduino, pastikan setiap Pin Ground disambungkan juga pada Ground Arduino

5V OUT

Tidak semua Motor Controller mempunyai Pin 5V Out. Module L298N ini dilengkapi dengan 5V Voltage Regulator, model 78M05 yang boleh regulate input voltage dari 7V~35V, dan diRegulate kepada 5V yang boleh digunakan untuk Arduino atau Module lain.

Ini bermakna, dalam project yang menggunakan Module ini, anda tidak perlu lagi memberi kuasa pada Arduino, dan boleh terus kuasakan board Arduino dengan Pin 5V OUT ini dan hantar pada pin 5V Arduino.

SENARAI KOMPONEN TUTORIAL

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:

  • Motor +Ve & -Ve pada Port Motor A
  • VIN – Battery/Power Supply 6~9V
  • GND – Batter/Power Supply dan Arduino Ground
  • ENA – Digital Pin 6 Arduino
  • IN1 – Digital Pin 5 Arduino
  • IN2 – Digital Pin 4 Arduino
L298N Pin Signals - Diagram

LANGKAH #2: CODING / SKETCH – FORWARD MOTOR

Jadual Kawalan
Carta Kawalan Module L298N

Berdasarkan Carta Kawalan di atas, serta wiring ENA (D6), IN1 (D5) dan IN2 (D4), kaedah FORWARD-kan DC Motor adalah seperti coding berikut.

//Tutorial #11-1 : 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);

}//END VOID SETUP

void loop() {
//Dengan code ini, Motor akan sentiasa Forward
  digitalWrite(4, LOW);  //IN2
  digitalWrite(5, HIGH); //IN1
  analogWrite(6, 255);   //ENA - PWM (255 Speed Max, 0 Speed Min)

}//END VOID LOOP

LANGKAH #3: CODING / SKETCH – REVERSE MOTOR

Jadual Kawalan
Carta Kawalan Module L298N

Berdasarkan Carta Kawalan di atas, serta wiring ENA (D6), IN1 (D5) dan IN2 (D4), kaedah REVERSE-kan DC Motor adalah seperti coding berikut.

Beza coding ini dengan coding FORWARD adalah pada signal IN1 dan IN2 sahaja.

//Tutorial #11-2 : 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);

}//END VOID SETUP

void loop() {
//Dengan code ini, Motor akan sentiasa Forward
  digitalWrite(4, HIGH);  //IN2
  digitalWrite(5, LOW); //IN1
  analogWrite(6, 255);   //ENA - PWM (255 Speed Max, 0 Speed Min)

}//END VOID LOOP

LANGKAH #4: CODING / SKETCH – BRAKE MOTOR

Jadual Kawalan
Carta Kawalan Module L298N

Berdasarkan Carta Kawalan di atas, serta wiring ENA (D6), IN1 (D5) dan IN2 (D4), kaedah BRAKE-kan DC Motor adalah seperti coding berikut.

Beza coding ini dengan coding REVERSE adalah pada signal IN1 dan IN2 sahaja.

//Tutorial #11-3 : 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);

}//END VOID SETUP

void loop() {
//Dengan code ini, Motor akan sentiasa Forward
  digitalWrite(4, HIGH); //IN2
  digitalWrite(5, HIGH); //IN1
  digitalWrite(6, HIGH); //ENA - PWM (255 Speed Max, 0 Speed Min)

}//END VOID LOOP

LANGKAH #5: CONTOH MENJALANKAN FWD,REV & BRAKE

Jadual Kawalan
Carta Kawalan Module L298N

Berdasarkan Carta Kawalan di atas, serta wiring ENA (D6), IN1 (D5) dan IN2 (D4), kaedah BRAKE-kan DC Motor adalah seperti coding berikut.

Beza coding ini dengan coding REVERSE adalah pada signal IN1 dan IN2 sahaja.

//Tutorial #11-4 : 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);

}//END VOID SETUP

void loop() {
//Forward-kan Motor selamat 3 saat
forward();
delay(3000);

//Brake-kan Motor selamat 1 saat
brake();
delay(1000);

//Reverse-kan Motor selamat 5 saat
brake();
delay(5000);

//Brake-kan Motor selamat 1 saat
brake();
delay(1000);

}//END VOID LOOP

void forward(){
  digitalWrite(4, LOW); //IN2
  digitalWrite(5, HIGH); //IN1
  analogWrite(6, 255); //ENA - PWM (255 Speed Max, 0 Speed Min)
}//END FORWARD

void reverse(){
  digitalWrite(4, HIGH); //IN2
  digitalWrite(5, LOW); //IN1
  analogWrite(6, 255); //ENA - PWM (255 Speed Max, 0 Speed Min)
}//END REVERSE

void brake(){
  digitalWrite(4, HIGH); //IN2
  digitalWrite(5, HIGH); //IN1
  digitalWrite(6, HIGH); //ENA - PWM (255 Speed Max, 0 Speed Min)
}//END BRAKE


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:

Senarai Tutorial asas Arduino MatGyver.my :

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

    1. 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

This site uses Akismet to reduce spam. Learn how your comment data is processed.