Hľadať kód

Riadenie jednosmerných motorov s TB6612FNG a Arduinom

Riadenie jednosmerných motorov s TB6612FNG a Arduinom

V tomto návode sa naučíme, ako ovládať rýchlosť a smer jednosmerných motorov pomocou modulu motorového ovládača TB6612FNG. Toto zapojenie nám umožní nezávisle riadiť dva motory, čo poskytuje praktický spôsob stavby kolesových robotov alebo mechanizovaných projektov. Okrem toho preskúmame, ako použiť pulznú šírkovú moduláciu (PWM) na presné riadenie rýchlosti každého motora, čím zvýšime pohybové schopnosti vášho projektu.

TB6612FNG_motor_driver-0

V celom tomto sprievodcovi budeme používať dosku Arduino spolu s breakout doskou TB6612FNG a dvoma jednosmernými prevodovými motormi. TB6612FNG je obrovské vylepšenie oproti starším bipolárnym ovládačom, ako je L298N, pretože používa vysokoúčinné MOSFETy. To je obzvlášť užitočné v aplikáciách napájaných batériami, kde sa vyžaduje odolnosť a energetická účinnosť, pretože tento ovládač dodáva motorom viac energie bez prehrievania alebo potreby veľkého chladiča.

Pre ďalšie objasnenie zapojenia a programovania si určite pozrite súvisiace video (vo videu v čase 00:00).

Vysvetlenie hardvéru

Medzi hlavné komponenty tohto projektu patria motorový ovládač TB6612FNG, mikrokontrolér (Arduino) a dva jednosmerné motory. Ovládač TB6612FNG prijíma nízkoprúdové logické signály z Arduina a používa ich na prepínanie vysokoprúdového napájania z batérie do motorov. Zvyčajne má vyhradené piny pre logické napájanie, napájanie motorov, riadenie smeru (AIN1, AIN2, BIN1, BIN2) a riadenie rýchlosti (PWMA, PWMB).

TB6612FNG_motor_driver-3

Jednosmerné motory prijímajú modulované napájanie z výstupných pinov ovládača (A01/A02 a B01/B02), aby sa otáčali. Pin pohotovostného režimu (STBY) funguje ako hlavný vypínač a poskytuje rýchly spôsob deaktivácie motorov a uvedenia čipu do nízkopríkonového spiaceho stavu. Každý komponent zohráva kľúčovú úlohu pri zabezpečení plynulého a efektívneho fungovania pohonného systému.

Podrobnosti z datasheetu

Výrobca

Toshiba (IC) / Rôzni (Modul)

Označenie súčiastky

TB6612FNG

Logické/IO napätie

2,7 V až 5,5 V

Napájacie napätie (VM)

2,7 V až 15 V

Výstupný prúd (na kanál)

1,2 A trvalý

Špičkový prúd (na kanál)

3,2 A

Odporúčaná frekvencia PWM

Až do 100 kHz

Vstupné logické prahy

Vysoká: > 2,0 V, Nízka: < 0,8 V (pri 5 V VCC)

Pokles napätia / RDS(on) / saturácia

0,5 Ω (typicky)

Tepelné limity

Vstavaná tepelná ochrana s vypnutím

Puzdro

SSOP24 / Breakout doska

Poznámky / varianty

Nahrádza L298N s oveľa vyššou účinnosťou.

 

  • Zabezpečte správne úrovne napätia (prispôsobte VCC 5 V vášho Arduina alebo 3,3 V ESP32).

  • Zabezpečte samostatné napájanie z batérie pre pin VM (napájanie motorov).

  • Buďte opatrní a spojte všetky uzemnenia (batéria, Arduino a modul) dohromady, aby ste predišli nepravidelnému správaniu.

  • Pred zapnutím otestujte pripojenia, aby ste predišli skratom.

  • Vždy nastavte pin STBY na HIGH, inak sa motory nespustia.

Pokyny na zapojenie

Začnite pripojením napájania a uzemnenia pre všetky komponenty. Pripojte uzemnenie z Arduina na zápornú lištu vašej breadboard dosky. Potom pripojte kladný vodič externej batérie na pin VM motorového ovládača a pin 5V z Arduina na pin VCC ovládača.

Ďalej zapojte logické vstupy: pripojte AIN1 na digitálny pin 2 na Arduine, AIN2 na digitálny pin 4 a PWMA na pin podporujúci PWM, napríklad digitálny pin 5. Pre druhý motor pripojte BIN1 na 7, BIN2 na 8 a PWMB na pin 6. Uistite sa, že pin STBY pripojíte na digitálny pin 9.

Pre výstup k motorom pripojte dva terminály vášho prvého jednosmerného motora na A01 a A02. Pripojte váš druhý jednosmerný motor na B01 a B02. Dvakrát skontrolujte, či sú všetky uzemnenia zdieľané na spoločnej uzemňovacej lište.

TB6612FNG_motor_driver-1

Príklady kódu a vysvetlenie

Pozrime sa na niektoré kľúčové identifikátory a úryvky kódu použité v projekte. Prvá časť kódu inicializuje piny pre riadenie smeru, rýchlosti a pohotovostného režimu:

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

Tu sú AIN1 a AIN2 priradené na riadenie smeru motora A, zatiaľ čo PWMA sa použije na riadenie rýchlosti pomocou PWM. STBY umožňuje Arduinu prebudiť čip alebo ho uviesť do spiaceho režimu.

Ďalej funkcia setup nakonfiguruje tieto piny ako výstupy a aktivuje čip:

void setup() {  pinMode(AIN1, OUTPUT);  pinMode(AIN2, OUTPUT);  pinMode(PWMA, OUTPUT);  pinMode(STBY, OUTPUT);    // Povolenie motorového ovládača  digitalWrite(STBY, HIGH);}

Príkazy pinMode() nastavia piny do výstupného režimu. Nastavenie STBY na HIGH zabezpečí, že TB6612FNG je aktívny a pripravený prijímať príkazy.

Vo funkcii loop dáme motoru príkaz, aby sa otáčal dopredu plnou rýchlosťou, zastavil sa a potom sa otáčal dozadu:

void loop() {  // Dopredu plnou rýchlosťou  digitalWrite(AIN1, HIGH);  digitalWrite(AIN2, LOW);  analogWrite(PWMA, 255);  delay(2000);  // Zastavenie (dojazd)  digitalWrite(AIN1, LOW);  digitalWrite(AIN2, LOW);  analogWrite(PWMA, 0);  delay(1000);}

Tu nastavenie AIN1 na HIGH a AIN2 na LOW povie vnútornému H-mosťu, aby tlačil prúd jedným smerom. analogWrite(PWMA, 255) aplikuje maximálnu rýchlosť. Na zastavenie stiahneme oba smerové piny na LOW.

Pre ďalšie podrobnosti a kompletný kód s ovládaním dvoch motorov a vlastnými funkciami si pozrite celý program načítaný pod článkom.

Ukážka / Čo očakávať

Po dokončení zapojenia a nahraní kódu by ste mali vidieť, ako sa motor otáča dopredu dve sekundy, zastaví sa na jednu sekundu a cyklus sa opakuje (ak ste pridali logiku pre spätný chod, nabudúce sa bude otáčať dozadu). Uistite sa, že motor správne reaguje na PWM signály; ak sa otáča dozadu, keď očakávate dopredu, jednoducho vymeňte vodiče pripojené k A01 a A02 (vo videu o 12:30).

Medzi časté chyby patrí zabudnutie nastaviť pin STBY na HIGH alebo pokus napájať motory priamo z 5V pinu Arduina namiesto samostatnej batérie na pine VM, čo môže spôsobiť reset Arduina pri veľkom zaťažení. Nezabudnite skontrolovať zdroje napájania a spoločné uzemnenie.

Obrázky

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
Žiadny priložený kód.

Veci, ktoré by ste mohli potrebovať

Zdroje a referencie

Zatiaľ žiadne zdroje.

Súbory📁

Datasheet (pdf)