Kod Ara

TB6612FNG ve Arduino ile DC Motorların Kontrolü

TB6612FNG ve Arduino ile DC Motorların Kontrolü

Bu eğitimde, TB6612FNG motor sürücü modülünü kullanarak DC motorların hızını ve yönünü nasıl kontrol edeceğimizi öğreneceğiz. Bu kurulum, iki motoru bağımsız olarak sürmemize olanak tanıyarak tekerlekli robotlar veya mekanize projeler inşa etmek için pratik bir yol sağlayacaktır. Ayrıca, her motorun hızını doğru bir şekilde kontrol etmek için Darbe Genişliği Modülasyonunu (PWM) nasıl kullanacağımızı keşfedeceğiz ve bu da projenizin hareket yeteneklerini artıracaktır.

TB6612FNG_motor_driver-0

Bu kılavuz boyunca, bir Arduino kartı, TB6612FNG breakout kartı ve iki DC redüktörlü motor kullanacağız. TB6612FNG, yüksek verimli MOSFET'ler kullandığı için L298N gibi eski bipolar sürücülere göre büyük bir yükseltmedir. Bu, dayanıklılık ve güç verimliliği gerektiren pille çalışan uygulamalarda özellikle kullanışlıdır, çünkü bu sürücü aşırı ısınmadan veya büyük bir soğutucu gerektirmeden motorlara daha fazla güç iletir.

Kurulum ve programlama hakkında daha fazla açıklama için, ilişkili videoyu (videoda 00:00'da) kontrol ettiğinizden emin olun.

Donanım Açıklaması

Bu projedeki ana bileşenler TB6612FNG motor sürücüsü, bir mikrodenetleyici (Arduino) ve iki DC motordur. TB6612FNG sürücüsü, Arduino'dan gelen düşük akımlı mantık sinyallerini alır ve bunları bir bataryadan motorlara yüksek akımlı güç sağlamak için kullanır. Genellikle mantık gücü, motor gücü, yön kontrolü (AIN1, AIN2, BIN1, BIN2) ve hız kontrolü (PWMA, PWMB) için özel pinlere sahiptir.

TB6612FNG_motor_driver-3

DC motorlar, sürücünün çıkış pinlerinden (A01/A02 ve B01/B02) modüle edilmiş gücü alarak döner. Bekleme pini (STBY), motorları hızlı bir şekilde devre dışı bırakmanın ve çipi düşük güçlü uyku durumuna geçirmenin bir yolunu sağlayan ana anahtar görevi görür. Her bileşen, sürüş sisteminin sorunsuz ve verimli çalışmasını sağlamada çok önemli bir rol oynar.

Veri Sayfası Ayrıntıları

Üretici

Toshiba (IC) / Çeşitli (Modül)

Parça numarası

TB6612FNG

Mantık/G/Ç voltajı

2,7 V ila 5,5 V

Besleme voltajı (VM)

2,7 V ila 15 V

Çıkış akımı (kanal başına)

1,2 A sürekli

Tepe akımı (kanal başına)

3,2 A

PWM frekansı yönergesi

100 kHz'e kadar

Giriş mantık eşikleri

Yüksek: > 2,0V, Düşük: < 0,8V (5V VCC'de)

Gerilim düşümü / RDS(on) / doyum

0,5 Ω (tipik)

Termal sınırlar

Dahili termal kapatma devresi

Paket

SSOP24 / Breakout Kartı

Notlar / varyantlar

L298N'nin yerini çok daha yüksek verimlilikle alır.

 

  • Doğru voltaj seviyelerini sağlayın (VCC'yi Arduino'nuzun 5V veya ESP32'nizin 3,3V değerine eşleştirin).

  • VM (Motor Gücü) pini için ayrı bir pil güç kaynağı sağlayın.

  • Düzensiz davranışı önlemek için tüm toprakları (pil, Arduino ve modül) birbirine bağlamaya dikkat edin.

  • Kısa devreleri önlemek için güç vermeden önce bağlantıları test edin.

  • STBY pinini her zaman YÜKSEK çekin, aksi takdirde motorlar çalışmaz.

Bağlantı Talimatları

Tüm bileşenler için güç ve toprak bağlantılarını yaparak başlayın. Arduino'nuzun toprağını breadboard'unuzun negatif rayına bağlayın. Ardından, harici pilinizin pozitif ucunu motor sürücüsündeki VM pinine ve Arduino'nun 5V pinini sürücüdeki VCC pinine bağlayın.

Ardından, mantık girişlerini bağlayın: AIN1'i Arduino'daki dijital pin 2'ye, AIN2'yi dijital pin 4'e ve PWMA'yı dijital pin 5 gibi PWM destekli bir pine bağlayın. İkinci motor için BIN1'i 7'ye, BIN2'yi 8'e ve PWMB'yi pin 6'ya bağlayın. STBY pinini dijital pin 9'a bağladığınızdan emin olun.

Motorlara çıkış için, ilk DC motorunuzun iki terminalini A01 ve A02'ye bağlayın. İkinci DC motorunuzu B01 ve B02'ye bağlayın. Tüm toprakların ortak toprak rayında paylaşıldığını tekrar kontrol edin.

TB6612FNG_motor_driver-1

Kod Örnekleri ve Açıklama

Projede kullanılan bazı önemli tanımlayıcılara ve kod parçacıklarına bir göz atalım. Kodun ilk kısmı yön kontrolü, hız ve bekleme için pinleri başlatır:

const int AIN1 = 2;const int AIN2 = 4;const int PWMA = 5;const int STBY = 9;

Burada, AIN1 ve AIN2 Motor A'nın yönünü kontrol etmek için atanırken, PWMA PWM yoluyla hız kontrolü için kullanılacaktır. STBY, Arduino'nun çipi uyandırmasını veya uyku moduna geçirmesini sağlar.

Ardından, kurulum fonksiyonu bu pinleri çıkış olarak yapılandırır ve çipi etkinleştirir:

void setup() {  pinMode(AIN1, OUTPUT);  pinMode(AIN2, OUTPUT);  pinMode(PWMA, OUTPUT);  pinMode(STBY, OUTPUT);    // Motor sürücüsünü etkinleştir  digitalWrite(STBY, HIGH);}

pinMode() komutları pinleri çıkış moduna ayarlar. STBY pinini HIGH yapmak, TB6612FNG'nin aktif olduğunu ve komut almaya hazır olduğunu garanti eder.

Loop fonksiyonunda, motora tam hızda ileri dönmesini, durmasını ve ardından geri dönmesini komut ederiz:

void loop() {  // Tam hızda ileri  digitalWrite(AIN1, HIGH);  digitalWrite(AIN2, LOW);  analogWrite(PWMA, 255);  delay(2000);  // Dur (Serbest dönüş)  digitalWrite(AIN1, LOW);  digitalWrite(AIN2, LOW);  analogWrite(PWMA, 0);  delay(1000);}

Burada, AIN1 pinini HIGH ve AIN2 pinini LOW yapmak, dahili H-köprüsüne akımı tek yönde itmesini söyler. analogWrite(PWMA, 255) maksimum hızı uygular. Durdurmak için, her iki yön pinini de LOW çekeriz.

Daha fazla ayrıntı ve çift motor kontrolü ile özel fonksiyonları içeren tam kod için, lütfen makalenin altında yüklenen tam programa bakın.

Gösterim / Ne Beklemeli

Kablolama tamamlandığında ve kod yüklendiğinde, motorun iki saniye ileri döndüğünü, bir saniye durduğunu ve döngüyü tekrarladığını görmelisiniz (geri dönüş mantığını eklediyseniz, bir sonraki adımda geriye dönecektir). Motorun PWM sinyallerine doğru yanıt verdiğinden emin olun; ileri gitmesini beklerken geriye dönüyorsa, A01 ve A02'ye bağlı kabloları değiştirin (videoda 12:30'da).

Yaygın hatalar arasında STBY pinini HIGH yapmayı unutmak veya motorları Arduino'nun 5V pininden doğrudan beslemek yerine VM pinine ayrı bir pil bağlamamak yer alır; bu, ağır yük altında Arduino'nun sıfırlanmasına neden olabilir. Güç kaynaklarınızı ve ortak toprakları mutlaka kontrol edin.

Görseller

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
Kod eklenmemiş.

İhtiyacın olabileceğini düşünüyor

Kaynaklar ve referanslar

Henüz kaynak yok.

Dosyalar📁

Veri Sayfası (pdf)