Mengendalikan Motor DC dengan TB6612FNG dan Arduino
Dalam tutorial ini, kita akan mempelajari cara mengontrol kecepatan dan arah motor DC menggunakan modul penggerak motor TB6612FNG. Pengaturan ini akan memungkinkan kita untuk menggerakkan dua motor secara independen, memberikan cara yang praktis untuk membangun robot beroda atau proyek mekanis. Selain itu, kita akan mengeksplorasi cara menggunakan Pulse Width Modulation (PWM) untuk mengontrol kecepatan setiap motor secara akurat, meningkatkan kemampuan pergerakan proyek Anda.
Sepanjang panduan ini, kita akan menggunakan papan Arduino bersama dengan papan breakout TB6612FNG dan dua motor gear DC. TB6612FNG adalah peningkatan besar dibandingkan driver bipolar lama seperti L298N karena menggunakan MOSFET efisiensi tinggi. Ini sangat berguna dalam aplikasi bertenaga baterai yang membutuhkan daya tahan dan efisiensi daya, karena driver ini memberikan lebih banyak daya ke motor tanpa terlalu panas atau memerlukan heatsink besar.
Untuk klarifikasi lebih lanjut tentang pengaturan dan pemrograman, pastikan untuk memeriksa video terkait di (dalam video pada 00:00).
Penjelasan Perangkat Keras
Komponen utama dalam proyek ini termasuk penggerak motor TB6612FNG, mikrokontroler (Arduino), dan dua motor DC. Driver TB6612FNG mengambil sinyal logika arus rendah dari Arduino dan menggunakannya untuk mengalihkan daya arus tinggi dari baterai ke motor. Driver ini biasanya memiliki pin khusus untuk daya logika, daya motor, kontrol arah (AIN1, AIN2, BIN1, BIN2), dan kontrol kecepatan (PWMA, PWMB).
Motor DC menerima daya termodulasi dari pin output driver (A01/A02 dan B01/B02) untuk berputar. Pin standby (STBY) berfungsi sebagai saklar utama, menyediakan cara cepat untuk menonaktifkan motor dan menempatkan chip ke dalam keadaan tidur daya rendah. Setiap komponen memainkan peran penting dalam memastikan sistem penggerak bekerja dengan lancar dan efisien.
Detail Datasheet
|
Produsen |
Toshiba (IC) / Berbagai (Modul) |
|---|---|
|
Nomor bagian |
TB6612FNG |
|
Tegangan logika/IO |
2,7 V hingga 5,5 V |
|
Tegangan suplai (VM) |
2,7 V hingga 15 V |
|
Arus output (per saluran) |
1,2 A kontinu |
|
Arus puncak (per saluran) |
3,2 A |
|
Panduan frekuensi PWM |
Hingga 100 kHz |
|
Ambang batas logika input |
Tinggi: > 2,0V, Rendah: < 0,8V (pada VCC 5V) |
|
Penurunan tegangan / RDS(on) / saturasi |
0,5 Ω (khas) |
|
Batas termal |
Sirkuit pematian termal bawaan |
|
Kemasan |
SSOP24 / Papan Breakout |
|
Catatan / varian |
Menggantikan L298N dengan efisiensi yang jauh lebih tinggi. |
-
Pastikan tingkat tegangan yang tepat (sesuaikan VCC dengan 5V Arduino Anda atau 3,3V ESP32).
-
Sediakan catu daya baterai terpisah untuk pin VM (Daya Motor).
-
Berhati-hatilah untuk menghubungkan semua ground (baterai, Arduino, dan modul) bersama-sama untuk mencegah perilaku yang tidak menentu.
-
Uji koneksi sebelum menyalakan daya untuk mencegah korsleting.
-
Selalu tarik pin STBY ke HIGH, atau motor tidak akan berjalan.
Instruksi Pengkabelan
Mulailah dengan menghubungkan daya dan ground untuk semua komponen. Hubungkan ground dari Arduino Anda ke rel negatif breadboard Anda. Kemudian, hubungkan lead positif baterai eksternal Anda ke pin VM pada penggerak motor, dan pin 5V Arduino ke pin VCC pada driver.
Selanjutnya, hubungkan input logika: hubungkan AIN1 ke pin digital 2 pada Arduino, AIN2 ke pin digital 4, dan PWMA ke pin yang mendukung PWM, seperti pin digital 5. Untuk motor kedua, hubungkan BIN1 ke 7, BIN2 ke 8, dan PWMB ke pin 6. Pastikan untuk menghubungkan pin STBY ke pin digital 9.
Untuk output ke motor, hubungkan dua terminal motor DC pertama Anda ke A01 dan A02. Hubungkan motor DC kedua Anda ke B01 dan B02. Periksa kembali bahwa semua ground terbagi pada rel ground yang sama.
Contoh Kode & Penjelasan
Mari kita lihat beberapa pengidentifikasi kunci dan potongan kode yang digunakan dalam proyek ini. Bagian pertama dari kode menginisialisasi pin untuk kontrol arah, kecepatan, dan standby:
const int AIN1 = 2;const int AIN2 = 4;const int PWMA = 5;const int STBY = 9;
Di sini, AIN1 dan AIN2 ditetapkan untuk mengontrol arah Motor A, sementara PWMA akan digunakan untuk kontrol kecepatan melalui PWM. STBY memungkinkan Arduino untuk membangunkan chip atau menidurkannya.
Selanjutnya, fungsi setup mengonfigurasi pin-pin ini sebagai output dan mengaktifkan chip:
void setup() { pinMode(AIN1, OUTPUT); pinMode(AIN2, OUTPUT); pinMode(PWMA, OUTPUT); pinMode(STBY, OUTPUT); // Mengaktifkan driver motor digitalWrite(STBY, HIGH);}
Perintah pinMode() mengatur pin ke mode output. Mengatur STBY ke HIGH memastikan TB6612FNG aktif dan siap menerima perintah.
Dalam fungsi loop, kita memerintahkan motor untuk berputar maju dengan kecepatan penuh, berhenti, lalu mundur:
void loop() { // Maju dengan kecepatan penuh digitalWrite(AIN1, HIGH); digitalWrite(AIN2, LOW); analogWrite(PWMA, 255); delay(2000); // Berhenti (Coast) digitalWrite(AIN1, LOW); digitalWrite(AIN2, LOW); analogWrite(PWMA, 0); delay(1000);}
Di sini, mengatur AIN1 HIGH dan AIN2 LOW memberi tahu H-bridge internal untuk mendorong arus dalam satu arah. analogWrite(PWMA, 255) menerapkan kecepatan maksimum. Untuk berhenti, kita menarik kedua pin arah ke LOW.
Untuk detail lebih lanjut dan kode lengkap yang menampilkan kontrol motor ganda dan fungsi khusus, silakan merujuk ke program lengkap yang dimuat di bawah artikel.
Demonstrasi / Apa yang Diharapkan
Setelah kabel terpasang dan kode diunggah, Anda akan melihat motor berputar maju selama dua detik, berhenti selama satu detik, dan mengulangi siklus tersebut (jika Anda menambahkan logika mundur, motor akan berputar mundur berikutnya). Pastikan motor merespons sinyal PWM dengan benar; jika motor berputar mundur saat Anda mengharapkannya maju, cukup tukar kabel yang terhubung ke A01 dan A02 (dalam video pada 12:30).
Kesalahan umum termasuk lupa menarik pin STBY ke HIGH, atau mencoba memberi daya motor langsung dari pin 5V Arduino alih-alih baterai khusus pada pin VM, yang dapat menyebabkan Arduino reset di bawah beban berat. Pastikan untuk memeriksa ulang sumber daya dan ground bersama Anda.
Hal-hal yang mungkin Anda butuhkan
-
Amazon
-
AmazonBuy TB6612FNG or DRV8833 motor driver board from AliExpresss.click.aliexpress.com
Sumber daya & referensi
Belum ada sumber daya.
Berkas📁
Lembar Data (pdf)
-
motor driver TB6612FNG datasheet
motor_driver_TB6612FNG_datasheet.pdf0.20 MB