Search Code

Mengendalikan Motor DC dengan TB6612FNG dan Arduino

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.

TB6612FNG_motor_driver-0

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

TB6612FNG_motor_driver-3

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.

TB6612FNG_motor_driver-1

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.

Gambar

TB6612FNG_motor_driver-4
TB6612FNG_motor_driver-4
TB6612FNG_motor_driver-3
TB6612FNG_motor_driver-3
TB6612FNG_motor_driver-2
TB6612FNG_motor_driver-2
TB6612FNG_motor_driver-1
TB6612FNG_motor_driver-1
TB6612FNG_motor_driver-0
TB6612FNG_motor_driver-0
Tidak ada kode terlampir.

Hal-hal yang mungkin Anda butuhkan

Sumber daya & referensi

Belum ada sumber daya.

Berkas📁

Lembar Data (pdf)