İçindekiler:

TB6612FNG ile Küçük Motorları Sürüş: 8 Adım
TB6612FNG ile Küçük Motorları Sürüş: 8 Adım

Video: TB6612FNG ile Küçük Motorları Sürüş: 8 Adım

Video: TB6612FNG ile Küçük Motorları Sürüş: 8 Adım
Video: DRV8833 Motor Sürücüsü Kullanımı ve TB6612FNG Arasındaki Farklar #57 2024, Aralık
Anonim
TB6612FNG ile Küçük Motorları Sürüş
TB6612FNG ile Küçük Motorları Sürüş

TB6612FNG, Toshiba'nın çift motorlu sürücü IC'sidir. Bunun için çok sayıda devre kartı var ve küçük motorları sürmek için en popüler seçeneklerden biri.

TB6612FNG'yi kullanmaya başlamak için pek çok çevrimiçi kaynak var ama karşılaştığımı daha iyi derlemek için yine de bunu yazmaya karar verdim.

Kontrol mantığına odaklanacağım ve ayrıca bu talimatta Sparkfun TB6612FNG motor sürücü kitaplığını ayrıntılı olarak açıklayacağım.

Adım 1: Gerekli Parçalar

İşte bugün kullanacağımız şey:

1) Mikro Metal motorlar

2) TB6612FNG motor sürücüsü

3) Bir Arduino ve USB kablosu

4) Motorlar için güç kaynağı

5) ekmek tahtası

6) Atlama telleri

2. Adım: TB6612FNG Breakout Board

TB6612FNG Koparma Kartı
TB6612FNG Koparma Kartı

Daha önce de belirttiğim gibi, TB6612FNG için farklı üreticilerin çok sayıda devre kartı var. Hepsinin üzerinde aşağı yukarı aynı bileşenler ve benzer pinoutlar var.

Kondansatörler, motorlardan gelen gürültüye karşı koruma için karta lehimlenmiştir, bu nedenle bu seramik kapasitörleri motorlara lehimlemeniz gerekmeyecektir.

IC ayrıca motorlardan gelen arka EMF'den korumak için dahili diyotlarla birlikte gelir. Ancak ekstra güvenlik önlemleri almak kimseye zarar vermez. Motorlarım çok büyük olmadığı ve diyotlarım yetersiz olduğu için eklemedim:|

Adım 3: Pin Çıkışları

Pin Çıkışları
Pin Çıkışları

TB6612FNG devre kartı çok rahat bir pin çıkışına sahiptir. Tüm motor çıkışları, girişleri ve güç bağlantıları, maksimum kullanım kolaylığı için güzel bir şekilde gruplandırılmıştır.

Pinout'ların ve nasıl bağlanacağının bir illüstrasyonunu yaptım, umarım tüm bu kabloları bağlarken işe yarar:)

Adım 4: Şemalar

şemalar
şemalar
şemalar
şemalar

Fritzing'i kullanmakta oldukça yeniyim. Fritzing'in devre şemalarını anlamak oldukça zor, ancak devre tahtası görünümü Eğitilebilirler için uygundur. Kablo bağlantılarından herhangi biri kafa karıştırıcı görünüyorsa, herhangi bir soru sormaktan çekinmeyin.

Adım 5: Kablolama

Kablolama
Kablolama

Her şeyi şemalara göre bağlayın. Çok fazla kablo var, her bağlantıdan sonra iki kez kontrol ettiğinizden emin olun.

Motor sürücü girişleri için aşağıdaki Arduino Pinlerini kullandım:

Motor Sürücüsü -> Arduino Pin Numarası

1) PWMA -> 5

2) INA1 -> 2

3) INA2 -> 4

4) PWMB -> 6

5) INB1 -> 7

6) INB2 -> 8

Bu adımda ters gidebilecek şeyler:1) Vm ve GND'yi güç kaynağından bağlarken kutupları ters çevirmeyin. Motor sürücünüzü kızartabilirsiniz.

2) PWMA ve PWMB'yi arduino üzerindeki PWM pinlerine bağladığınızdan emin olun.

3) Her biri için farklı bir güç kaynağı kullanıyorsanız, motor sürücüsünden Arduino GND ve GND'yi bağlamayı unutmayın.

Adım 6: Kitaplığı İndirme ve Yükleme

Kitaplığı Sparkfun'un GitHub sayfasından indirin.

Zip dosyasını indirdikten sonra Arduino IDE'nizi açın.

Sketch > Kitaplığı Dahil Et >. Zip Kitaplığı Ekle'den indirdiğiniz kitaplığı ekleyin.

Başarılı bir şekilde kurulduktan sonra, Dosya > Örnekler'de 'SparkFun TB6612FNG Motor Kitaplığı' olarak görünmelidir.

Bir Arduino Kitaplığı indirirken ve kurarken sorun yaşıyorsanız, bu talimatın 5. adımına bakın.

Adım 7: Örnek Kodu Çalıştırma

Artık kitaplığımız hazır olduğuna göre, test etmek için örnek kodu yükleyebiliriz.

1) Kitaplıklarınızda listelenen 'Sparkfun TB6612FNG Motor Sürücü Kitaplığı'ndan 'MotorTestRun' örneğini açın.

Not: Adım 5'te belirtilen pin numaralarını kullanmıyorsanız, pin tanımlarını kurulumunuza göre değiştirdiğinizden emin olun.

2) Pano yöneticisinden panonuzu seçin

3) Kodunuzu yükleyin ve motorlar hareket etmeye başlasın

Yükledikten sonra motorlar hareket etmeye başlamalıdır. Değillerse, kablolamanızı tekrar kontrol edin.

Adım 8: Açıklanan Kitaplık

Şimdi kendi kod parçanız için kütüphaneyi nasıl kullanacağınızı açıklayalım.

İlk önce kütüphaneyi içe aktararak ve arduino'daki pinleri başlatarak başlayın

#Dahil etmek

#define AIN1 2 #define AIN2 4 #define PWMA 5 #define BIN1 7 #define BIN2 8 #define PWMB 6#define STBY 9

Motor nesnelerinizi başlatmak için her motor için ofset ayarlamanız gerekir. Motorunuzda bir ileri komutu yaptığınızı ve motorun tersine döndüğünü hayal edin. Manuel olarak yeniden bağlayabilir veya ofseti buradan değiştirebilirsiniz. SparkFun tarafından eklenen şık küçük QoL hack. Bu ofsetlerin değerleri ya 1 ya da -1'dir.

Daha sonra Motorların her birini aşağıdaki parametrelerle başlatmanız gerekir;

Motor = Motor(Pin 1, Pin 2, PWM pini, ofset, Bekleme pini)

const int offsetA = 1;

const int offsetB = 1; Motor motor1 = Motor(AIN1, AIN2, PWMA, offsetA, STBY);

Ve bununla, kütüphaneyi başlatmayı bitirdiniz. setup() işlevinde daha fazla adım yok, sadece kodu loop() işlevinde çalıştırıyoruz.

Motor yöntemi aşağıdaki işlevlere sahiptir. Hepsini kontrol etmek için etrafta dolaşın.

1).drive(değer, zaman)

Motor_name = motorunuzun adı nesnedeğeri= 255 - -255; negatif değerler motorun ters zamanda hareket etmesini sağlar= milisaniye cinsinden süre

2).fren()

Fren fonksiyonu herhangi bir argüman almaz, motorları frenler.

3) fren(, <motor_adı2)

Fren işlevi, motor nesne adlarını argüman olarak alır. Fonksiyona geçirilen motorları frenler.

4) ileri (,, zaman) ileri (,, hız, zaman)

Fonksiyon, isteğe bağlı olarak milisaniye cinsinden PWM hızı ve zamanı olmak üzere iki motor nesnesinin adını kabul eder ve geçen süre boyunca motoru ileri yönde çalıştırır. Hız değeri negatif ise motor geri gider. Varsayılan hız 255 olarak ayarlanmıştır.

5) geri(,, zaman) geri(,, hız, zaman)

Fonksiyon, isteğe bağlı olarak milisaniye cinsinden PWM hızı ve zamanı olmak üzere iki motor nesnesinin adını kabul eder ve geçen süre boyunca motoru ileri yönde çalıştırır. Hız değeri negatif ise motor ileri gidecektir. Varsayılan hız 255 olarak ayarlanmıştır.

6) sol(,, hız) sağ(,, hız)

İşlev, iki motor nesnesi adını ve hızını kabul eder. Parametre olarak geçirilen motor nesnelerinin sırası önemlidir. Tek motorları sürmek için bunun yerine.drive() kullanın.

Önerilen: