Search Code

Upravljanje DC motorima pomoću TB6612FNG i Arduina

Upravljanje DC motorima pomoću TB6612FNG i Arduina

U ovom tutorijalu naučit ćemo kako kontrolisati brzinu i smjer DC motora koristeći TB6612FNG modul drajvera motora. Ova postavka će nam omogućiti da nezavisno pokrećemo dva motora, pružajući praktičan način za izgradnju robota na kotačima ili mehanizovanih projekata. Dodatno, istražit ćemo kako koristiti Pulse Width Modulation (PWM) za preciznu kontrolu brzine svakog motora, poboljšavajući mogućnosti kretanja vašeg projekta.

TB6612FNG_motor_driver-0

Tokom ovog vodiča, koristit ćemo Arduino ploču zajedno sa TB6612FNG breakout pločom i dva DC gear motora. TB6612FNG je ogromno poboljšanje u odnosu na starije bipolarne drajvere poput L298N jer koristi visokoučinkovite MOSFET-ove. Ovo je posebno korisno u aplikacijama na baterije gdje su potrebni izdržljivost i energetska efikasnost, jer ovaj drajver isporučuje više snage motorima bez pregrijavanja ili potrebe za velikim hladnjakom.

Za dodatna pojašnjenja o postavci i programiranju, svakako pogledajte povezani video na (u videu na 00:00).

Objašnjenje hardvera

Primarne komponente u ovom projektu uključuju TB6612FNG drajver motora, mikrokontroler (Arduino) i dva DC motora. TB6612FNG drajver uzima niskostrujne logičke signale sa Arduina i koristi ih za prebacivanje visokostrujne snage sa baterije na motore. Obično ima namjenske pinove za logičko napajanje, napajanje motora, kontrolu smjera (AIN1, AIN2, BIN1, BIN2) i kontrolu brzine (PWMA, PWMB).

TB6612FNG_motor_driver-3

DC motori primaju moduliranu snagu sa izlaznih pinova drajvera (A01/A02 i B01/B02) za rotaciju. Standby pin (STBY) djeluje kao glavni prekidač, pružajući brz način za isključivanje motora i dovođenje čipa u stanje niske potrošnje. Svaka komponenta igra ključnu ulogu u osiguravanju da sistem pogona radi glatko i efikasno.

Detalji iz podatkovne tablice

Proizvođač

Toshiba (IC) / Razni (Modul)

Broj dijela

TB6612FNG

Logički/IO napon

2.7 V do 5.5 V

Napon napajanja (VM)

2.7 V do 15 V

Izlazna struja (po kanalu)

1.2 A kontinuirano

Vršna struja (po kanalu)

3.2 A

Smjernice za PWM frekvenciju

Do 100 kHz

Ulazni logički pragovi

Visok: > 2.0V, Nizak: < 0.8V (na 5V VCC)

Pad napona / RDS(on) / zasićenje

0.5 Ω (tipično)

Termalna ograničenja

Ugrađeno termalno isključivanje

Paket

SSOP24 / Breakout ploča

Napomene / varijante

Zamjenjuje L298N sa mnogo većom efikasnošću.

 

  • Osigurajte odgovarajuće nivoe napona (uskladite VCC sa 5V vašeg Arduina ili 3.3V ESP32).

  • Omogućite zasebno napajanje baterije za VM (Motor Power) pin.

  • Budite oprezni da povežete sve uzemljenja (baterija, Arduino i modul) zajedno kako biste spriječili nepravilno ponašanje.

  • Testirajte veze prije uključivanja napajanja kako biste spriječili kratke spojeve.

  • Uvijek povucite STBY pin na VISOK nivo, inače motori neće raditi.

Upute za povezivanje

Započnite povezivanjem napajanja i uzemljenja za sve komponente. Povežite uzemljenje sa vašeg Arduina na negativnu šinu vaše breadboard ploče. Zatim povežite pozitivni vod vaše vanjske baterije na VM pin na drajveru motora, a 5V pin Arduina na VCC pin na drajveru.

Zatim povežite logičke ulaze: povežite AIN1 na digitalni pin 2 na Arduinu, AIN2 na digitalni pin 4, i PWMA na pin koji podržava PWM, kao što je digitalni pin 5. Za drugi motor, povežite BIN1 na 7, BIN2 na 8, i PWMB na pin 6. Obavezno povežite STBY pin na digitalni pin 9.

Za izlaz prema motorima, povežite dva terminala vašeg prvog DC motora na A01 i A02. Povežite vaš drugi DC motor na B01 i B02. Dvaput provjerite da su sva uzemljenja podijeljena na zajedničkoj šini uzemljenja.

TB6612FNG_motor_driver-1

Primjeri koda i objašnjenje

Pogledajmo neke ključne identifikatore i dijelove koda korištene u projektu. Prvi dio koda inicijalizira pinove za kontrolu smjera, brzine i standby:

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

Ovdje su AIN1 i AIN2 dodijeljeni za kontrolu smjera Motora A, dok će se PWMA koristiti za kontrolu brzine putem PWM-a. STBY omogućava Arduinu da probudi čip ili ga stavi u stanje mirovanja.

Zatim, setup funkcija konfigurira ove pinove kao izlaze i omogućava čip:

void setup() {  pinMode(AIN1, OUTPUT);  pinMode(AIN2, OUTPUT);  pinMode(PWMA, OUTPUT);  pinMode(STBY, OUTPUT);    // Omogući drajver motora  digitalWrite(STBY, HIGH);}

Naredbe pinMode() postavljaju pinove u izlazni način rada. Postavljanje STBY na HIGH osigurava da je TB6612FNG aktivan i spreman za primanje naredbi.

U funkciji petlje, naređujemo motoru da se vrti naprijed punom brzinom, zaustavi se, a zatim ide unazad:

void loop() {  // Naprijed punom brzinom  digitalWrite(AIN1, HIGH);  digitalWrite(AIN2, LOW);  analogWrite(PWMA, 255);  delay(2000);  // Zaustavi (kretanje bez kočenja)  digitalWrite(AIN1, LOW);  digitalWrite(AIN2, LOW);  analogWrite(PWMA, 0);  delay(1000);}

Ovdje, postavljanje AIN1 na HIGH i AIN2 na LOW govori unutrašnjem H-mosta da gura struju u jednom smjeru. analogWrite(PWMA, 255) primjenjuje maksimalnu brzinu. Da bismo zaustavili, povlačimo oba pina za smjer na LOW.

Za dodatne detalje i kompletan kod s upravljanjem dva motora i prilagođenim funkcijama, pogledajte puni program učitan ispod članka.

Demonstracija / Šta očekivati

Kada je ožičenje završeno i kod učitan, trebali biste vidjeti kako se motor vrti naprijed dvije sekunde, pauzira jednu sekundu, i ponavlja ciklus (ako ste dodali logiku za unazad, sljedeći put će se vrtjeti unazad). Provjerite da motor ispravno reagira na PWM signale; ako se vrti unazad kada očekujete da ide naprijed, jednostavno zamijenite žice spojene na A01 i A02 (u videu na 12:30).

Uobičajene greške uključuju zaboravljanje podizanja STBY pina na HIGH, ili pokušaj napajanja motora direktno sa Arduino 5V pina umjesto namjenske baterije na VM pinu, što može uzrokovati resetiranje Arduina pod velikim opterećenjem. Obavezno provjerite izvore napajanja i zajedničko uzemljenje.

Images

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
No code attached.

Resources & references

No resources yet.

Files📁

Datasheet (pdf)