Beheer van GS-motors met die TB6612FNG en Arduino
In hierdie tutoriaal gaan ons leer hoe om die spoed en rigting van GS-motors te beheer met behulp van die TB6612FNG-motordrywermodule. Hierdie opstelling sal ons in staat stel om twee motors onafhanklik te bestuur, wat 'n praktiese manier bied om wielrobotte of gemeganiseerde projekte te bou. Daarbenewens sal ons ondersoek hoe om Pulse Width Modulation (PWM) te gebruik om die spoed van elke motor akkuraat te beheer, wat jou projek se bewegingsvermoëns verbeter.
Dwarsdeur hierdie gids gaan ons 'n Arduino-bord saam met die TB6612FNG-uitbreekbord en twee GS-tandwielmotors gebruik. Die TB6612FNG is 'n massiewe opgradering bo ouer bipolêre drywers soos die L298N omdat dit hoë-doeltreffende MOSFET's gebruik. Dit is veral nuttig in battery-aangedrewe toepassings waar duursaamheid en kragdoeltreffendheid vereis word, aangesien hierdie drywer meer krag aan die motors lewer sonder om te oorverhit of 'n massiewe verkoelingsbak te vereis.
Vir verdere verduideliking oor die opstelling en programmering, maak seker om die gepaardgaande video te kyk by (in video by 00:00).
Hardeware Verduidelik
Die primêre komponente in hierdie projek sluit die TB6612FNG-motordrywer, 'n mikrobeheerder (Arduino), en twee GS-motors in. Die TB6612FNG-drywer neem lae-stroom logiese seine van die Arduino en gebruik dit om hoë-stroom krag van 'n battery na die motors te skakel. Dit het tipies toegewyde penne vir logiese krag, motorkrag, rigtingbeheer (AIN1, AIN2, BIN1, BIN2), en spoedbeheer (PWMA, PWMB).
Die GS-motors ontvang die gemoduleerde krag van die drywer se uitsetpenne (A01/A02 en B01/B02) om te draai. Die bystandpen (STBY) dien as 'n meesterskakelaar, wat 'n vinnige manier bied om die motors te deaktiveer en die chip in 'n lae-krag slaaptoestand te plaas. Elke komponent speel 'n deurslaggewende rol om te verseker dat die dryfstelsel glad en doeltreffend werk.
Datablad Besonderhede
|
Vervaardiger |
Toshiba (IC) / Verskeie (Module) |
|---|---|
|
Deelnommer |
TB6612FNG |
|
Logika/IO-spanning |
2.7 V tot 5.5 V |
|
Toevoerspanning (VM) |
2.7 V tot 15 V |
|
Uitsetstroom (per kanaal) |
1.2 A deurlopend |
|
Piekstroom (per kanaal) |
3.2 A |
|
PWM-frekwensie riglyn |
Tot 100 kHz |
|
Inset logiese drempels |
Hoog: > 2.0V, Laag: < 0.8V (by 5V VCC) |
|
Spanningsval / RDS(aan) / versadiging |
0.5 Ω (tipies) |
|
Termiese limiete |
Termiese afskakelkring ingebou |
|
Pakket |
SSOP24 / Uitbreekbord |
|
Notas / variante |
Vervang die L298N met baie hoër doeltreffendheid. |
-
Verseker korrekte spanningsvlakke (pas VCC by jou Arduino se 5V of ESP32 se 3.3V).
-
Verskaf 'n aparte batterykragtoevoer vir die VM- (Motorkrag) pen.
-
Wees versigtig om alle grondverbindings (battery, Arduino, en module) saam te bind om onreëlmatige gedrag te voorkom.
-
Toets verbindings voordat jy krag aanskakel om kortsluitings te voorkom.
-
Trek altyd die STBY-pen HOOG, anders sal die motors nie loop nie.
Bedradingsinstruksies
Begin deur die krag en grond vir alle komponente te verbind. Verbind die grond van jou Arduino aan die negatiewe baan van jou broodbord. Verbind dan jou eksterne battery se positiewe draad aan die VM-pen op die motordrywer, en die Arduino se 5V-pen aan die VCC-pen op die drywer.
Volgende, bedraad die logiese insette: verbind AIN1 aan digitale pen 2 op die Arduino, AIN2 aan digitale pen 4, en PWMA aan 'n PWM-geskikte pen, soos digitale pen 5. Vir die tweede motor, verbind BIN1 aan 7, BIN2 aan 8, en PWMB aan pen 6. Maak seker dat jy die STBY-pen aan digitale pen 9 verbind.
Vir die uitset na die motors, verbind die twee terminale van jou eerste GS-motor aan A01 en A02. Verbind jou tweede GS-motor aan B01 en B02. Dubbelcheck dat alle grondverbindings op die gemeenskaplike grondbaan gedeel word.
Kode Voorbeelde & Deurloop
Kom ons kyk na 'n paar sleutelidentifiseerders en kodestukke wat in die projek gebruik word. Die eerste deel van die kode initialiseer die penne vir rigtingbeheer, spoed, en bystand:
const int AIN1 = 2;const int AIN2 = 4;const int PWMA = 5;const int STBY = 9;
Hier word AIN1 en AIN2 toegewys om die rigting van Motor A te beheer, terwyl PWMA vir spoedbeheer via PWM gebruik sal word. STBY laat die Arduino toe om die chip wakker te maak of dit te laat slaap.
Volgende, die opstellingsfunksie konfigureer hierdie penne as uitsette en aktiveer die chip:
void setup() { pinMode(AIN1, OUTPUT); pinMode(AIN2, OUTPUT); pinMode(PWMA, OUTPUT); pinMode(STBY, OUTPUT); // Aktiveer die motor drywer digitalWrite(STBY, HIGH);}
Die pinMode() opdragte stel die penne na uitsetmodus. Om STBY op HIGH te stel, verseker dat die TB6612FNG aktief is en gereed is om opdragte te ontvang.
In die lus-funksie beveel ons die motor om vorentoe teen volle spoed te draai, te stop, en dan om te keer:
void loop() { // Vorentoe teen volle spoed digitalWrite(AIN1, HIGH); digitalWrite(AIN2, LOW); analogWrite(PWMA, 255); delay(2000); // Stop (Rit) digitalWrite(AIN1, LOW); digitalWrite(AIN2, LOW); analogWrite(PWMA, 0); delay(1000);}
Hier, om AIN1 op HIGH en AIN2 op LOW te stel, sê vir die interne H-brug om stroom in een rigting te stoot. analogWrite(PWMA, 255) pas maksimum spoed toe. Om te stop, trek ons beide rigtingpenne na LOW.
Vir verdere besonderhede en die volledige kode met dubbele motorbeheer en pasgemaakte funksies, verwys asseblief na die volledige program wat onder die artikel gelaai is.
Demonstrasie / Wat om te Verwag
Sodra die bedrading voltooi is en die kode opgelaai is, behoort jy te sien dat die motor twee sekondes vorentoe draai, een sekonde pouseer, en die siklus herhaal (as jy die omkeerlogika bygevoeg het, sal dit volgende agtertoe draai). Maak seker dat die motor korrek op die PWM-seine reageer; as dit agtertoe draai wanneer jy verwag dat dit vorentoe moet gaan, ruil eenvoudig die drade wat aan A01 en A02 gekoppel is om (in video by 12:30).
Algemene slaggate sluit in om te vergeet om die STBY-pen op HIGH te trek, of om die motors direk vanaf die Arduino se 5V-pen te probeer krag, eerder as 'n toegewyde battery op die VM-pen, wat kan veroorsaak dat die Arduino onder swaar las herbegin. Maak seker dat jy jou kragbronne en gedeelde grond dubbel nagaan.
Goedere wat jy dalk nodig het
-
Amazon
-
AmazonBuy TB6612FNG or DRV8833 motor driver board from AliExpresss.click.aliexpress.com
Hulpbronne en verwysings
Geen hulpbronne nog.
Lêers📁
Datasheet (pdf)
-
motor driver TB6612FNG datasheet
motor_driver_TB6612FNG_datasheet.pdf0.20 MB