Search Code

Kudhibiti Motors za DC kwa kutumia TB6612FNG na Arduino

Kudhibiti Motors za DC kwa kutumia TB6612FNG na Arduino

Katika mafunzo haya, tutajifunza jinsi ya kudhibiti kasi na mwelekeo wa motors za DC kwa kutumia moduli ya kiendeshaji cha motor cha TB6612FNG. Mpangilio huu utaturuhusu kuendesha motors mbili kwa uhuru, ikitoa njia ya vitendo ya kujenga roboti za magurudumu au miradi ya kimitambo. Zaidi ya hayo, tutachunguza jinsi ya kutumia Pulse Width Modulation (PWM) kudhibiti kasi ya kila motor kwa usahihi, kuboresha uwezo wa harakati za mradi wako.
TB6612FNG_motor_driver-0

Katika mwongozo huu wote, tutatumia bodi ya Arduino pamoja na bodi ya kuvunja ya TB6612FNG na motors mbili za gear za DC. TB6612FNG ni uboreshaji mkubwa kuliko viendeshaji vya zamani vya bipolar kama L298N kwa sababu hutumia MOSFET za ufanisi wa juu. Hii ni muhimu hasa katika matumizi yanayotumia betri ambapo uimara na ufanisi wa nishati unahitajika, kwani kiendeshaji hiki hutoa nishati zaidi kwa motors bila kupata joto kupita kiasi au kuhitaji heatsink kubwa.

Kwa ufafanuzi zaidi kuhusu mpangilio na programu, hakikisha unaangalia video inayohusiana (katika video saa 00:00).

Vifaa Vimeelezwa

Vipengele vikuu katika mradi huu ni pamoja na kiendeshaji cha motor cha TB6612FNG, microcontroller (Arduino), na motors mbili za DC. Kiendeshaji cha TB6612FNG huchukua ishara za mantiki za sasa ya chini kutoka Arduino na kuzitumia kubadilisha nishati ya sasa ya juu kutoka betri kwenda kwa motors. Kwa kawaida kina pini maalum za nishati ya mantiki, nishati ya motor, udhibiti wa mwelekeo (AIN1, AIN2, BIN1, BIN2), na udhibiti wa kasi (PWMA, PWMB).

TB6612FNG_motor_driver-3

Motors za DC hupokea nishati iliyobadilishwa kutoka kwenye pini za pato za kiendeshaji (A01/A02 na B01/B02) ili kuzunguka. Pini ya standby (STBY) hufanya kama swichi kuu, ikitoa njia ya haraka ya kuzima motors na kuweka chip katika hali ya usingizi ya nishati ya chini. Kila kipengele kina jukumu muhimu katika kuhakikisha mfumo wa uendeshaji unafanya kazi vizuri na kwa ufanisi.

Maelezo ya Datasheet

Mtengenezaji

Toshiba (IC) / Mbalimbali (Moduli)

Nambari ya sehemu

TB6612FNG

Voltage ya mantiki/IO

2.7 V hadi 5.5 V

Voltage ya usambazaji (VM)

2.7 V hadi 15 V

Sasa ya pato (kwa kila chaneli)

1.2 A ya kuendelea

Sasa ya kilele (kwa kila chaneli)

3.2 A

Mwongozo wa mzunguko wa PWM

Hadi 100 kHz

Viwango vya mantiki ya pembejeo

Juu: > 2.0V, Chini: < 0.8V (kwa 5V VCC)

Kushuka kwa voltage / RDS(on) / kueneza

0.5 Ω (kawaida)

Mipaka ya joto

Mzunguko wa kuzima kwa joto umejengwa ndani

Kifurushi

SSOP24 / Bodi ya Kuvunja

Vidokezo / lahaja

Inachukua nafasi ya L298N kwa ufanisi wa juu zaidi.

 

  • Hakikisha viwango sahihi vya voltage (linganisha VCC na 5V ya Arduino yako au 3.3V ya ESP32).

  • Toa usambazaji tofauti wa nishati ya betri kwa pini ya VM (Nishati ya Motor).

  • Kuwa makini kuunganisha ardhi zote (betri, Arduino, na moduli) pamoja ili kuzuia tabia isiyo ya kawaida.

  • Jaribu miunganisho kabla ya kuwasha nishati ili kuzuia mzunguko mfupi.

  • Daima vuta pini ya STBY JUU, vinginevyo motors hazitaendesha.

Maagizo ya Uunganishaji

Anza kwa kuunganisha nishati na ardhi kwa vifaa vyote. Unganisha ardhi kutoka Arduino yako kwenye reli hasi ya bodi yako ya mkate. Kisha, unganisha waya chanya ya betri yako ya nje kwenye pini ya VM kwenye kiendeshaji cha motor, na pini ya 5V ya Arduino kwenye pini ya VCC kwenye kiendeshaji.

Ifuatayo, unganisha pembejeo za mantiki: unganisha AIN1 kwenye pini ya dijiti 2 kwenye Arduino, AIN2 kwenye pini ya dijiti 4, na PWMA kwenye pini inayoweza PWM, kama pini ya dijiti 5. Kwa motor ya pili, unganisha BIN1 kwenye 7, BIN2 kwenye 8, na PWMB kwenye pini 6. Hakikisha umeunganisha pini ya STBY kwenye pini ya dijiti 9.

Kwa pato kwa motors, unganisha vituo viwili vya motor yako ya kwanza ya DC kwenye A01 na A02. Unganisha motor yako ya pili ya DC kwenye B01 na B02. Angalia mara mbili kwamba ardhi zote zimeshirikiwa kwenye reli ya kawaida ya ardhi.

TB6612FNG_motor_driver-1

Mifano ya Kanuni na Maelezo

Hebu tuangalie baadhi ya vitambulisho muhimu na vipande vya kanuni vinavyotumika katika mradi huu. Sehemu ya kwanza ya kanuni huanzisha pini za udhibiti wa mwelekeo, kasi, na standby:

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

Hapa, AIN1 na AIN2 zimepewa kudhibiti mwelekeo wa Motor A, wakati PWMA itatumika kwa udhibiti wa kasi kupitia PWM. STBY inaruhusu Arduino kuamsha chip au kuiweka kulala.

Ifuatayo, kazi ya setup inasanidi pini hizi kama matokeo na kuwezesha chip:

void setup() {  pinMode(AIN1, OUTPUT);  pinMode(AIN2, OUTPUT);  pinMode(PWMA, OUTPUT);  pinMode(STBY, OUTPUT);    // Wezesha kiendesha motor  digitalWrite(STBY, HIGH);}

Amri za pinMode() huweka pini katika hali ya pato. Kuweka STBY kuwa HIGH kunahakikisha TB6612FNG iko hai na tayari kupokea amri.

Katika kazi ya kitanzi, tunaiamuru motor izunguke mbele kwa kasi kamili, isimame, kisha irudi nyuma:

void loop() {  // Mbele kwa kasi kamili  digitalWrite(AIN1, HIGH);  digitalWrite(AIN2, LOW);  analogWrite(PWMA, 255);  delay(2000);  // Simama (Coast)  digitalWrite(AIN1, LOW);  digitalWrite(AIN2, LOW);  analogWrite(PWMA, 0);  delay(1000);}

Hapa, kuweka AIN1 HIGH na AIN2 LOW kunaiambia daraja la H la ndani kusukuma mkondo katika mwelekeo mmoja. analogWrite(PWMA, 255) hutumia kasi ya juu zaidi. Kusimamisha, tunavuta pini zote mbili za mwelekeo kuwa LOW.

Kwa maelezo zaidi na msimbo kamili unaojumuisha udhibiti wa motor mbili na kazi maalum, tafadhali rejelea programu kamili iliyopakiwa chini ya makala hii.

Maonyesho / Nini cha Kutarajia

Mara tu wiring ikamilike na msimbo upakiwe, unapaswa kuona motor ikizunguka mbele kwa sekunde mbili, ikisimama kwa sekunde moja, na kurudia mzunguko (kama umeongeza mantiki ya kurudi nyuma, itazunguka nyuma ijayo). Hakikisha motor inaitikia ipasavyo kwa ishara za PWM; ikiwa inazunguka nyuma wakati unatarajia iende mbele, badilisha tu waya zilizounganishwa kwenye A01 na A02 (katika video saa 12:30).

Makosa ya kawaida ni pamoja na kusahau kuweka pini ya STBY kuwa HIGH, au kujaribu kuwasha motors moja kwa moja kutoka kwenye pini ya 5V ya Arduino badala ya betri maalum kwenye pini ya VM, ambayo inaweza kusababisha Arduino kuanza upya chini ya mzigo mzito. Hakikisha umeangalia mara mbili vyanzo vyako vya nguvu na ardhi za pamoja.

Bilder

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
Ingen kod bifogad.

Tänker att du kanske behöver

Resurser och referenser

Inga resurser än.

Filer📁

Datablad (pdf)