Tutorial Lengkap Menggunakan Driver L298N dengan Arduino

Pengertian Driver Motor L298N

Driver Motor L298N adalah sebuah modul yang sering sekali digunakan untuk mengendalikan motor DC. Dengan menggunakan Driver Motor L298N kita bisa dengan mudah mengendalikan baik itu kecepatan maupun arah rotasi 2 motor sekaligus. Driver Motor L298N dirancang menggunakan IC L298 Dual H-Bridge Motor Driver berisikan gerbang gerbang logika yang sudah sangat populer dalam dunia elektronika sebagai pengendali motor.

Driver Motor L298N sangat cocok digunakan di dalam proyek karena kompatibel dengan mikrokontroler seperti Arduino, harga terjangkau, ukuran cukup kecil dan sangat mudah dioperasikan. Cara menggunakan Driver Motor L298N pada Arduino akan kita bahas tuntas pada artikel ini.

Diagram Blok Driver Motor L298N

Di bawah ini adalah diagram blok Driver Motor L298N.

Diagram Blok Driver Motor L298N

Diagram Rangkaian Driver Motor L298N

Di bawah ini adalah diagram Rangkaian Driver Motor L298N.

Diagram Rangkaian Driver Motor L298N

Pin-Pin pada Driver Motor L298N

Di bawah ini adalah rinci pin out Driver Motor L298N.

Driver Motor L298N pinout

Rincian pin out Driver Motor L298N

  • 1 = Jumper 5V enable, jika dijumper maka tegangan IC akan diambil dari input tegangan motor (8) yang telah diturunkan dengan regulator .
  • 2 = Jumper enable Motor A. Jika dijumper maka kecepatan motor akan maksimum dan konstan berdasarkan input power motor yang digunakan.
  • 3 = Jumper enable Motor B. Jika dijumper maka kecepatan motor akan maksimum dan konstan berdasarkan input power motor yang digunakan.
  • 4 dan 5 = Out 1 dan Out 2 = Pin out Motor A.
  • 6 dan 7 = Out 4 dan Out 3 = Pin out Motor B.
  • 8 = Sumber tegangan Motor.
  • 9 = Ground.
  • 10 = Sumber tegangan IC (Tegangan operasional). Dapat berfungsi sebagai Input maupun Output tergantung kondisi.
  • 11 = ENA = Berfungsi sebagai Enable motor A. Terdapat tiga keadaan yang memungkinkan, pertama dihubungkan menggunakan jumper 2, kedua dihubungkan ke pin PWM mikrokontroler untuk mengatur kecepatan motor, ketiga dibiarkan terbuka yang mengakibatkan keluaran pin motor A tidak aktif.
  • 12, 13, 14, 15 = Input Out 1, Input Out 2, Input Out 3, Input Out 4. Input yang diterima berupa input digital (HIGH atau LOW).
  • 16 = ENB = Berfungsi sebagai Enable motor B. Terdapat tiga keadaan yang memungkinkan, pertama dihubungkan menggunakan jumper 3, kedua dihubungkan ke pin PWM mikrokontroler untuk mengatur kecepatan motor, ketiga dibiarkan terbuka yang mengakibatkan keluaran pin motor A tidak aktif.

Data Singkat Driver Motor L298N (Spesifikasi)

  • Tegangan Input: 3.2V - 40V.
  • Driver: Driver Motor L298N Dual H Bridge DC.
  • Catu Daya: 5V .
  • Arus puncak: 2 Amper.
  • Kisaran operasi: 0 - 36 mA.
  • Konsumsi daya maksimum: 20W (ketika suhu 75 ℃).
  • Suhu penyimpanan: -25 ℃ ~ +130 ℃.
  • Keluaran pin 10 (sumber tegangan IC) jika berfungsi sebagai pin output: 5V.
  • Ukuran: 3.4 cm x 4.3 cm x 2.7 cm.

Tabel Logika Driver Motor L298N

Di bawah ini adalah tabel logika input daripada Driver Motor L298N.

Tabel Logika Driver Motor L298N

Tabel logika di atas juga berlaku untuk motor B (ENB, IN 3, IN 4).

Aturan Penggunaan Driver Motor L298N (Ini penting)

Ketentuan sumber tegangan IC dan Motor

  • Jika menggunakan motor dengan tegangan kerja di bawah 5V misalnya 3V, maka catu daya IC dan motor harus terpisah. Pada sumber tegangan motor (pin 8) diberikan input tegangan sesuai kebutuhan yakni 3V dan jumper 1 terbuka (nonaktif). Kemudian sumber tegangan IC (pin 10) diberi tegangan sebesar 5V sesuai dengan spesifikasi IC.
  • Jika menggunakan motor yang memiliki tegangan kerja dalam rentang 5 - 12V, sumber tegangan IC dan motor dapat digabung. Dimana pada sumber tegangan motor (pin 8) diberi tegangan 12V, sumber tegangan IC (pin 10) dibiarkan tanpa input dari luar dan jumper 1 harus tertutup (aktif). Dengan begini IC memperoleh tegangan dari pin 8.
  • Jika menggunakan motor dengan tegangan kerja di atas 12V, maka sumber tegangan harus terpisah (ya walaupun sebenarnya IC regulator yang digunakan pada driver ini (LM78M05) mampu menerima Vin hingga 35V berdasarkan datasheet, namun untuk mencegah panas yang berlebih maka dianjurkan menggunakan jumper 1 (pin 1) apabila tegangan motor tidak lebih dari 12V. Misal tegangan kerja motor 24V, maka pada sumber tegangan motor (pin 8) diberi tegangan 24V, sumber tegangan IC (pin 10) diberi tegangan 5V dan jumper 1 (pin 1) harus terbuka (nonaktif).
  • Ground mikrokontroler dan ground pada driver L298N harus common atau disatukan, jika tidak maka tidak akan bisa bekerja.

Kesimpulan

  1. Jika tegangan motor yang dibutuhkan kurang dari 5V maka sumber tegangan IC dan Motor harus terpisah. Lihat: Rangkaian tegangan motor kurang dari 5V.
  2. Jika tegangan kerja motor di antara 5 - 12V maka sumber tegangan IC dan motor bisa digabung atau dipisah. Rekomendasi saya dipisah. Lihat: Rangkaian tegangan motor 5V - 12V.
  3. Jika tegangan kerja motor yang dibutuhkan lebih dari 12V yaitu 13V - 35V maka sumber tegangan motor dan IC sebaiknya dipisah untuk mencegah panas berlebih pada IC regulator LM78M05 dan jumper 1 (pin 1) harus terbuka (nonaktif). Lihat: Rangkaian tegangan motor 13V - 35V.
  4. Ground mikrokontroler dan driver L298N harus disatukan.

Contoh Rangkaian Arduino Menggunakan Driver Motor L298N

Berikut adalah beberapa rangkaian Driver Motor L298N.

Menggunakan Motor dengan Tegangan Kerja di bawah 5V

Rangkaian di bawah ini adalah rangkaian untuk mengendalikan 2 buah motor DC yang memiliki tegangan kerja di bawah 5V menggunakan driver motor L298N. Seperti yang bisa kita lihat, apabila tegangan di bawah 5V, dianjurkan untuk memisah sumber tegangan antara IC dan motor, karena tegangan optimal untuk IC adalah 5V. Untuk lebih jelas dapat dilihat pada Aturan Penggunaan.

Rangkaian Arduino Menggunakan Driver Motor L298N

Menggunakan Motor dengan Tegangan Kerja 5V - 12V

Untuk motor dengan tegangan kerja 5V - 12V bisa menggunakan sumber tegangan yang sama seperti yang ditunjukkan oleh rangkaian di bawah ini.

Rangkaian Arduino Menggunakan Driver Motor L298N

Rekomendasi:

Rangkaian Arduino Menggunakan Driver Motor L298N

Menggunakan Motor dengan Tegangan Kerja 13V - 35V

Untuk jenis motor DC yang menggunakan tegangan 13V - 35V, sumber tegangan sebaiknya dipisahkan seperti yang ditunjukkan oleh rangkaian di bawah ini.

Rangkaian Arduino Menggunakan Driver Motor L298N

Catatan: Pin ENA dan ENB pada semua rangkaian di atas saya buat terhubung ke pin PWM Arduino agar kecepatan motor dapat diatur. Namun apabila kita hanya ingin mengatur motor agar berputar pada kecepatan penuh, kita bisa memasang jumper 2 dan jumper 3 tanpa harus menghubungkannya ke Arduino. Untuk lebih jelas mengenai jumper dapat dilihat pada pin-pin pada driver motor L298N.

Contoh Program Driver Motor L298N dengan Arduino

Kode di bawah tinggal di copy ke Arduino IDE. Saya menggunakan Arduino UNO, jika kita menggunakan jenis papan Arduino yang lain, pin pin tinggal disesuaikan. Untuk rangkaian dapat dilihat pada subjudul sebelumnya yaitu: Rangkaian driver motor L298N pada Arduino.

/**Contoh Program Driver Motor L298N menggunakan Arduino
* Author: M. Habib Al Khairi
* Blog: https://mahirelektro.com
* Link tutorial: https://mahirelektro.com/2020/02/tutorial-menggunakan-driver-motor-l298n-pada-Arduino.html
*/


#define IN1 10 // deklarasi pin IN1
#define IN2 9 // deklarasi pin IN2
#define IN3 5 // deklarasi pin IN3
#define IN4 4 // deklarasi pin IN4
#define ENA 11 // deklarasi pin ENA
#define ENB 3 // deklarasi pin ENB

void setup() {
// Konfigurasi pin-pin sebagai Output
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
}

void loop() {
// Motor A dan B berputar ke kanan 2000 ms (2 detik) dengan kecepatan penuh
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(ENA, 255); // Mengatur kecepatan motor A (0-255)
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
digitalWrite(ENB, 255); // Mengatur kecepatan motor B (0-255)
delay(2000); // Jeda 2 detik

// Motor A dan B berputar ke kiri 2000 ms (2 detik) dengan kecepatan penuh
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(ENA, 255); // Mengatur kecepatan motor A (255 = 100%)
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
digitalWrite(ENB, 255); // Mengatur kecepatan motor B (255 = 100%)
delay(2000); // Jeda 2 detik;

// Motor A ke kiri dan motor B ke kanan 2000 ms (2 detik) dengan kecepatan 50%
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(ENA, 128); // Mengatur kecepatan motor A (128 = 50%)
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
digitalWrite(ENB, 128); // Mengatur kecepatan motor B (128 = 50%)
delay(2000); // Jeda 2 detik;

// Motor A dan motor B berhenti selama 2000 ms (2 detik)
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(ENA, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
digitalWrite(ENB, LOW);
delay(2000);
}

Video Cara Mengontrol Motor DC Menggunakan Driver L298N

Berikut adalah sebuah video yang sangat bagus dari Circuit Magic tentang cara menggunakan driver motor L298N dengan Arduino.

Penutup

Mungkin itu saja tutorial menggunakan Driver Motor L298N pada Arduino, semoga artikel ini bermanfaat. Silakan berkomentar jika ada hal yang mungkin kurang jelas. Sampai jumpa.