Anda di halaman 1dari 27

Antarmuka Modul Driver Motor DC L298N dengan Arduino

1. Motor DC
Pengantar

Motor DC

Motor DC menggunakan Arus Searah (energi listrik) untuk menghasilkan gerakan mekanis yaitu gerakan
rotasi. Ketika itu mengubah energi listrik menjadi energi mekanik maka disebut sebagai motor DC dan
ketika itu mengubah energi mekanik menjadi energi listrik maka disebut generator DC.

Prinsip kerja motor DC didasarkan pada kenyataan bahwa ketika konduktor pembawa arus ditempatkan
pada medan magnet, ia mengalami gaya mekanis dan mulai berputar. Arah rotasinya tergantung pada
Aturan Tangan Kiri Fleming.

Motor DC digunakan dalam banyak aplikasi seperti robot untuk kontrol gerakan, mainan, quadcopter,
CD / DVD disk drive di PC / Laptop dll.

Konstruksi
Ini terutama memiliki dua bagian utama sebagai,

Stator - Bagian statis motor.

Rotor - Bagian motor yang berputar.

Kutub Selatan dan Utara magnet permanen atau Elektromagnet adalah bagian stator dari motor DC dan
dinamo yang dihubungkan dengan komutator adalah bagian yang berputar dari motor DC.

Kutub Selatan dan Utara digunakan untuk membuat medan magnet seperti yang ditunjukkan pada
gambar.

Armature adalah material penghantar yang ditempatkan di antara medan magnet yang dihasilkan oleh
kutub Utara & Selatan.

Arus (i) yang ditunjukkan pada gambar mengalir melalui Angker.


Brush digunakan untuk memasang suplai DC ke Armature melalui komutator.

Komutator memiliki segmen yang dipasang dengan setiap ujung angker konduktor. Karenanya,
komutator juga berputar dengan Armature. Kuas merupakan bagian stator yang selalu berhubungan
dengan komutator.

Prinsip kerja

Seperti yang ditunjukkan pada gambar di atas, sisi kiri angker terangkat ke atas dan sisi kanan angker ke
bawah. Ini karena gaya, yang bergantung pada arah medan magnet dan arah arus yang mengalir melalui
dinamo. Aturan Tangan Kiri Fleming digunakan untuk menentukan arah gaya (naik / turun)

Mari kita lihat bagaimana gaya bekerja pada konduktor jangkar.

Seperti yang ditunjukkan pada gambar di atas, arah arus (i) yang mengalir melalui konduktor adalah ke
dalam, maka medan magnet yang dihasilkan di sekitar konduktor memiliki arah sesuai Aturan Pegangan
Tangan Kanan yang ditunjukkan pada gambar.

Medan magnet di antara kutub Utara dan Selatan memiliki arah dari Utara ke Selatan seperti yang
ditunjukkan pada gambar.

Garis gaya magnet yang dihasilkan oleh konduktor pembawa arus dan oleh dua kutub ditunjukkan pada
gambar. Kedua garis gaya ini terlihat ke arah yang sama di setengah bagian atas konduktor sedangkan di
bagian bawah konduktor melihat ke arah yang berlawanan.
Oleh karena itu konsentrasi garis gaya magnet lebih banyak di atas bagian konduktor yang
mengakibatkan gaya yang menggerakkan konduktor ke bawah.

Ini untuk satu sisi konduktor jangkar sedangkan di sisi lain dari konduktor jangkar arah arus akan
berlawanan seperti yang ditunjukkan pada diagram konstruksi dan karenanya gaya akan menggerakkan
penghantar jangkar ke arah yang berlawanan. Karenanya dua sisi dinamo bergerak ke atas dan ke bawah
yang menghasilkan rotasi dinamo.

Kita juga dapat mengubah arah putaran (Searah jarum jam / berlawanan arah jarum jam) dari motor DC
hanya dengan mengubah polaritas tegangan yang diberikan pada terminal motor.

Sekarang mari kita lihat tentang kecepatan putaran Motor DC.

Pengatur Kecepatan Motor DC

Kecepatan (N) motor DC diukur dalam RPM (Rotasi Per Menit) dan diberikan oleh,

N = 60AE / PZ Φ

Dimana,

E = Kembali EMF

A = Jalur paralel

Z = Jumlah konduktor jangkar


P = Jumlah kutub

Φ = Fluks

Konstanta Perangkat K = 60A / PZ

Kembali EMF E = V - IARA

Karenanya, kecepatan N = K * (V - IARA) / Φ

Di sini, kita dapat melihat bahwa kecepatan motor DC dapat dikendalikan melalui,

Tegangan terminal jangkar yaitu V

Resistensi eksternal dengan angker yaitu RA

Fluks medan yaitu Φ

Dari parameter kontrol kecepatan di atas, kita dapat menemukan bahwa V dan RA terkait dengan
rangkaian jangkar dan Φ terkait dengan medan magnet, oleh karena itu diklasifikasikan sebagai,

Metode kontrol angker

Metode pengendalian lapangan

Kami dapat memvariasikan V di terminal motor dengan menggunakan metode PWM.

Teknik Modulasi Lebar Pulsa

Modulasi Lebar Pulsa adalah teknik populer untuk mengontrol kecepatan motor DC. Ini mengontrol
tegangan rata-rata (V) yang diterapkan ke terminal motor DC dengan menggunakan lebar pulsa seperti
yang ditunjukkan pada gambar di bawah ini.
TON adalah waktu di mana sinyalnya TINGGI dan TOFF adalah waktu di mana sinyalnya RENDAH. Jadi
tegangan terminal berlaku untuk motor DC hanya untuk TON (ON) waktu periode.

Misalnya.

Jika PWM dengan duty cycle 50% seperti pada gambar diatas maka akan memberikan tegangan rata-
rata ≈50% ke terminal motor.

Jadi dengan cara ini kita mendapatkan kontrol kecepatan motor DC sederhana dengan menggunakan
metode PWM.
Siklus kerja yang lebih tinggi menghasilkan kecepatan yang lebih tinggi dan siklus kerja yang lebih rendah
menghasilkan kecepatan yang lebih rendah.

Kita dapat memvariasikan lebar pulsa dengan tepat menggunakan Mikrokontroler untuk mendapatkan
kontrol yang baik atas motor DC.

Sekarang, kita akan melihat bagaimana mengubah arah rotasi motor DC.

Motor DC Dua Arah Menggunakan Konfigurasi H-Bridge

Motor DC adalah dua arah yaitu kita dapat memutar motor DC ke salah satu arah (Searah jarum jam /
berlawanan arah jarum jam) hanya dengan mengubah polaritas terminalnya. Arah motor DC dapat
dikendalikan dengan menggunakan konsep H-Bridge seperti pada gambar di bawah ini.

- Karena semua sakelar OFF, Motor tetap terputus, yaitu OFF.


Pada gambar di bawah ini,

Kondisi: Sakelar 1 dan Sakelar 4 ditutup

Sakelar 2, Sakelar 3 terbuka

Dalam kondisi ini Motor akan mulai berputar searah jarum jam.
Pada gambar di bawah ini,

Kondisi: Sakelar 3 dan Sakelar 2 ditutup.

Sakelar 1, Sakelar 4 terbuka.

Dalam kondisi ini Motor akan mulai berputar berlawanan arah jarum jam.
Ada konfigurasi lain ketika semua sakelar ditutup yang dikenal tidak valid karena koneksi jenis hubung
singkatnya seperti yang ditunjukkan pada gambar di bawah ini.
Dengan cara ini kita dapat mengontrol motor DC di kedua arahnya.

IC driver motor L293D dapat digunakan untuk mengontrol pergerakan motor DC di kedua arah. Ini
memiliki penggerak motor H-bridge built-in.

2. Antarmuka Modul Driver Motor DC L298N dengan Arduino


Jika Anda berencana merakit teman robot baru Anda, pada akhirnya Anda ingin belajar tentang
cara mengendalikan motor DC. Salah satu cara termudah dan murah untuk mengontrol motor DC
adalah dengan menghubungkan Driver Motor L298N dengan Arduino. Ini dapat mengontrol
kecepatan dan arah putaran dua motor DC.

Dan sebagai bonus, ia bahkan dapat mengendalikan motor stepper bipolar seperti NEMA 17.

Mengontrol Motor DC

Untuk memiliki kendali penuh atas motor DC, kita harus mengontrol kecepatan dan arah
putarannya. Ini dapat dicapai dengan menggabungkan kedua teknik ini.

• PWM - Untuk mengontrol kecepatan

• H-Bridge - Untuk mengontrol arah rotasi

PWM - Untuk mengontrol kecepatan

Kecepatan motor DC dapat dikontrol dengan memvariasikan tegangan inputnya. Teknik umum
untuk melakukan ini adalah dengan menggunakan PWM (Pulse Width Modulation)

PWM adalah teknik dimana nilai rata-rata tegangan input diatur dengan mengirimkan rangkaian
pulsa ON-OFF.

Tegangan rata-rata sebanding dengan lebar pulsa yang dikenal sebagai Siklus Tugas.

Semakin tinggi duty cycle maka semakin besar tegangan rata-rata yang dialirkan ke motor dc
(Kecepatan Tinggi) dan semakin rendah duty cycle maka semakin kecil tegangan rata-rata yang
diterapkan pada motor dc (Kecepatan Rendah).
Gambar di bawah mengilustrasikan teknik PWM dengan berbagai duty cycle dan tegangan rata-
rata.

Teknik Pulse Width Modulation (PWM)

H-Bridge - Untuk mengontrol arah putaran

Arah putaran motor DC dapat dikontrol dengan mengubah polaritas tegangan inputnya. Teknik
umum untuk melakukan ini adalah dengan menggunakan H-Bridge.

Sirkuit H-Bridge berisi empat sakelar dengan motor di tengah membentuk pengaturan seperti-H.

Menutup dua sakelar tertentu pada saat yang sama membalikkan polaritas tegangan yang
diterapkan ke motor. Hal ini menyebabkan perubahan arah putaran motor.

Animasi di bawah ini menggambarkan cara kerja rangkaian H-Bridge.


Pengerjaan H-Bridge

IC Pengemudi Motor L298N


Inti modul adalah chip hitam besar dengan heat sink tebal adalah L298N.
L298N adalah driver motor H-Bridge saluran ganda yang mampu menggerakkan sepasang motor
DC. Itu berarti dapat menggerakkan hingga dua motor secara individual sehingga ideal untuk
membangun platform robot roda dua.
Sumber Daya listrik
Modul driver motor L298N diberi daya melalui terminal sekrup 3-pin 3,5 mm. Ini terdiri dari pin
untuk catu daya motor (Vs), ground dan catu daya logika 5V (Vss).
IC driver motor L298N sebenarnya memiliki dua pin daya input yaitu. 'Vss' dan 'Vs'.
Dari pin Vs, H-Bridge mendapatkan tenaganya untuk menggerakkan motor yang bisa 5 hingga
35V. Vss digunakan untuk menggerakkan sirkuit logika yang bisa 5 hingga 7V. Dan mereka
berdua tenggelam ke kesamaan yang disebut 'GND'.
Modul ini memiliki regulator 78M05 5V on-board dari STMicroelectronics. Ini dapat diaktifkan
atau dinonaktifkan melalui jumper.
Saat jumper ini dipasang, regulator 5V diaktifkan, memasok catu daya logika (Vss) dari catu
daya motor (Vs). Dalam hal ini, terminal input 5V bertindak sebagai pin output dan memberikan
5V 0,5A. Anda dapat menggunakannya untuk menyalakan Arduino atau sirkuit lain yang
membutuhkan catu daya 5V.
Saat jumper dilepas, regulator 5V dinonaktifkan dan kami harus memasok 5 Volt secara terpisah
melalui terminal input 5 Volt.
Peringatan:
Anda dapat memasang jumper pada tempatnya, jika catu daya motor di bawah 12V. Jika lebih
besar dari 12V, Anda harus melepas jumper untuk menghindari regulator 5V onboard rusak.
Juga JANGAN menyuplai daya ke input catu daya motor dan input catu daya 5V saat jumper
terpasang.
Penurunan tegangan driver motor L298N sekitar 2V. Hal ini disebabkan oleh penurunan
tegangan internal pada transistor switching di sirkuit H-Bridge.
Jadi, jika kita menghubungkan 12V ke terminal catu daya motor, motor akan menerima tegangan
sekitar 10V. Artinya motor DC 12V tidak akan pernah berputar pada kecepatan maksimumnya.
Untuk mendapatkan kecepatan maksimum dari motor, catu daya motor harus bertegangan sedikit
lebih tinggi (2V) dari yang dibutuhkan motor sebenarnya.
Mempertimbangkan penurunan tegangan 2V, jika Anda menggunakan motor 5V, Anda harus
menyediakan 7V pada terminal catu daya motor. Jika Anda memiliki motor 12V maka tegangan
suplai motor Anda harus 14V

Saluran keluaran driver motor L298N untuk motor A dan B dipecah ke tepi modul dengan dua
terminal sekrup pitch 3,5 mm.
Anda dapat menghubungkan dua motor DC yang memiliki tegangan antara 5 hingga 35V ke
terminal ini.
Setiap saluran pada modul dapat mengirimkan hingga 2A ke motor DC. Namun, jumlah arus
yang disuplai ke motor tergantung pada catu daya sistem.
Pin Kontrol
Untuk setiap saluran L298N, ada dua jenis pin kontrol yang memungkinkan kita untuk
mengontrol kecepatan dan arah putaran motor DC pada saat yang sama, yaitu. Pin kontrol arah &
pin kontrol kecepatan
Dengan menggunakan pin pengatur arah, kita dapat mengontrol apakah motor berputar maju atau
mundur. Pin ini sebenarnya mengontrol sakelar rangkaian H-Bridge di dalam IC L298N.
Modul ini memiliki dua pin kontrol arah untuk setiap saluran. Pin IN1 dan IN2 mengontrol arah
putaran motor A sedangkan IN3 dan IN4 mengontrol motor B.
Arah putaran motor dapat dikontrol dengan menerapkan logika TINGGI (5 Volt) atau logika
RENDAH (Arde) ke input ini. Bagan di bawah ini menggambarkan bagaimana ini dilakukan.

Arah Pemintalan
Input1 Input2

Low(0) Low(0) Motor MATI

High(1) Low(0) Maju

Low(0) High(1) Mundur


High(1) High(1) Motor MATI

Pin Kontrol Kecepatan

Pin kontrol kecepatan yaitu. ENA dan ENB digunakan untuk menghidupkan motor, OFF dan
mengontrol kecepatannya.
Menarik pin ini TINGGI akan membuat motor berputar, menariknya RENDAH akan
membuatnya berhenti. Tapi, dengan Pulse Width Modulation (PWM), kita sebenarnya bisa
mengontrol kecepatan motor.
Modul biasanya dilengkapi dengan jumper pada pin ini. Saat pelompat ini dipasang, motor
diaktifkan dan berputar dengan kecepatan maksimum. Jika Anda ingin mengontrol kecepatan
motor secara terprogram, Anda perlu melepas jumper dan menghubungkannya ke pin yang
mendukung PWM di Arduino.
Pinout Modul Driver Motor L298N
Sebelum mempelajari hookup dan kode contoh, pertama-tama mari kita lihat Pinout-nya.
Pin VCC menyuplai daya untuk motor. Bisa di mana saja antara 5 hingga 35V. Ingat, jika jumper
5V-EN terpasang, Anda perlu menyuplai 2 volt ekstra dari yang dibutuhkan motor sebenarnya,
untuk mendapatkan kecepatan maksimum dari motor Anda.
GND adalah pin ground yang sama.
Pin 5V memasok daya untuk rangkaian logika switching di dalam IC L298N. Jika jumper 5V-
EN sudah terpasang, pin ini berfungsi sebagai output dan dapat digunakan untuk menyalakan
Arduino Anda. Jika jumper 5V-EN dilepas, Anda perlu menghubungkannya ke pin 5V di
Arduino.
Pin ENA digunakan untuk mengontrol kecepatan Motor A. Menarik pin ini TINGGI (Menjaga
jumper pada tempatnya) akan membuat Motor A berputar, menariknya RENDAH akan membuat
motor berhenti. Melepas jumper dan menghubungkan pin ini ke input PWM akan
memungkinkan kita mengontrol kecepatan Motor A.
Pin IN1 & IN2 digunakan untuk mengontrol arah putaran Motor A. Jika salah satunya TINGGI
dan RENDAH, Motor A akan berputar. Jika kedua inputnya TINGGI atau RENDAH, Motor A
akan berhenti.
Pin IN3 & IN4 digunakan untuk mengontrol arah putaran Motor B. Jika salah satunya TINGGI
dan RENDAH, Motor B akan berputar. Jika kedua inputnya TINGGI atau RENDAH, Motor B
akan berhenti.
Pin ENB digunakan untuk mengontrol kecepatan Motor B. Menarik pin ini TINGGI (Menjaga
jumper pada tempatnya) akan membuat Motor B berputar, menariknya RENDAH akan membuat
motor berhenti. Melepas jumper dan menghubungkan pin ini ke input PWM akan
memungkinkan kita mengontrol kecepatan Motor B.
Pin OUT1 & OUT2 terhubung ke Motor A.
Pin OUT3 & OUT4 terhubung ke Motor B.
Pengkabelan modul driver motor L298N dengan Arduino UNO
Sekarang kita tahu segalanya tentang modul, kita bisa mulai menghubungkannya ke Arduino
kita!
Mulailah dengan menghubungkan catu daya ke motor. Dalam eksperimen kami, kami
menggunakan Motor Gearbox DC (juga dikenal sebagai motor 'TT') yang biasanya ditemukan
pada robot penggerak dua roda. Mereka diberi peringkat untuk 3 hingga 12V. Jadi, kami akan
menghubungkan catu daya 12V eksternal ke terminal VCC. Dengan mempertimbangkan
penurunan tegangan internal IC L298N, motor akan menerima 10V dan akan berputar pada RPM
yang sedikit lebih rendah. Tapi, tidak apa-apa.
Selanjutnya, kita perlu memasok 5 Volt untuk sirkuit logika L298N. Kami akan menggunakan
regulator 5V on-board dan menurunkan 5 volt dari catu daya motor jadi, pertahankan jumper 5V-
EN di tempatnya.
Sekarang, pin input dan enable (ENA, IN1, IN2, IN3, IN4 dan ENB) dari modul L298N
terhubung ke enam pin output digital Arduino (9, 8, 7, 5, 4 dan 3). Perhatikan bahwa pin
keluaran Arduino 9 dan 3 keduanya berkemampuan PWM.
Terakhir, hubungkan satu motor ke terminal A (OUT1 & OUT2) dan motor lainnya ke terminal
B (OUT3 & OUT4). Anda dapat menukar koneksi motor Anda, secara teknis, tidak ada cara
yang benar atau salah.
Setelah selesai, Anda akan mendapatkan sesuatu yang terlihat mirip dengan ilustrasi yang
ditampilkan di bawah.
Arduino Code - Mengontrol Motor DC
Sketsa berikut akan memberi Anda pemahaman lengkap tentang cara mengontrol kecepatan dan
arah putaran motor DC dengan driver motor L298N dan dapat berfungsi sebagai dasar untuk
eksperimen dan proyek yang lebih praktis

// Motor A connections
intenA = 9;
int in1 = 8;
int in2 = 7;
// Motor B connections
intenB = 3;
int in3 = 5;
int in4 = 4;
voidsetup() {
// Set all the motor control pins to outputs
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);

// Turn off motors - Initial state


digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}

voidloop() {
directionControl();
delay(1000);
speedControl();
delay(1000);
}

// This function lets you control spinning direction of motors


voiddirectionControl() {
// Set motors to maximum speed
// For PWM maximum possible values are 0 to 255
analogWrite(enA, 255);
analogWrite(enB, 255);

// Turn on motor A & B


digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(2000);
// Now change motor directions
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(2000);

// Turn off motors


digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}

// This function lets you control speed of the motors


voidspeedControl() {
// Turn on motors
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);

// Accelerate from zero to maximum speed


for (inti = 0; i<256; i++) {
analogWrite(enA, i);
analogWrite(enB, i);
delay(20);
}

// Decelerate from maximum speed to zero


for (inti = 255; i>= 0; --i) {
analogWrite(enA, i);
analogWrite(enB, i);
delay(20);
}

// Now turn off motors


digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}

Penjelasan Kode:
Kode Arduino cukup mudah. Tidak memerlukan perpustakaan apa pun untuk membuatnya
berfungsi. Sketsa dimulai dengan mendeklarasikan pin Arduino yang dihubungkan dengan pin
kontrol L298N.

// Motor A connections
intenA = 9;
int in1 = 8;
int in2 = 7;
// Motor B connections
intenB = 3;
int in3 = 5;
int in4 = 4;

Di bagian penyetelan kode, semua pin kontrol motor dinyatakan sebagai OUTPUT digital dan
ditarik LOW untuk mematikan kedua motor.

voidsetup() {
// Set all the motor control pins to outputs
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);

// Turn off motors - Initial state


digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}

Di bagian loop dari kode kita memanggil dua fungsi yang ditentukan pengguna pada interval satu
detik.

voidloop() {
directionControl();
delay(1000);
speedControl();
delay(1000);
}

Fungsi-fungsi tersebut adalah:


• directionControl () - Fungsi ini memutar kedua motor ke depan dengan kecepatan maksimum
selama dua detik. Kemudian membalik arah putaran motor dan berputar selama dua detik lagi.
Akhirnya mematikan motor

voiddirectionControl() {
// Set motors to maximum speed
// For PWM maximum possible values are 0 to 255
analogWrite(enA, 255);
analogWrite(enB, 255);

// Turn on motor A & B


digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(2000);

// Now change motor directions


digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(2000);

// Turn off motors


digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}

• speedControl () - Fungsi ini mempercepat kedua motor dari nol ke kecepatan maksimum
dengan menghasilkan sinyal PWM menggunakan fungsi analogWrite (), kemudian
memperlambatnya kembali ke nol. Akhirnya mematikan motor.

Anda mungkin juga menyukai