Control motor cu o punte MOS-FET; Tutorial Arduino
Un H-Bridge (H-Bridge) este un circuit care face ca un motor electric să se rotească înainte și înapoi. Este format din două canale de amplificare, care la rândul lor sunt compuse din două MOS-FET-uri sau tranzistoare de putere. Există doi tranzistori cu polaritate diferită (de exemplu, FET N și FET P).

În exemplu, un canal N și un canal P MOS-FET sunt conectate împreună pentru fiecare canal. Puteți utiliza de ex. FET-N IRF9Z30 și FET-P IRFZ40. În funcție de dacă trimiteți un semnal GND sau un plus, unul dintre cele două tranzistoare se blochează în timp ce al doilea închide circuitul.
| ÎNALT | SCĂZUT | SCĂZUT | ÎNALT | Dreapta |
| SCĂZUT | ÎNALT | ÎNALT | SCĂZUT | Stânga |
De asemenea, este posibil să reglați viteza motorului printr-un semnal PWM.
În vizualizarea schematică puteți vedea rapid cum a primit numele H-Bridge.
EDIT: Multe mulțumiri lui Uwe, care a subliniat aici probleme semnificative.
Vezi comentariile (50)
bună,
Din păcate, versiunea actuală a schemei de circuite nu mai conține o baterie, deși comentariile se referă la ea din când în când.
A existat vreun motiv să nu existe o sursă de alimentare separată pentru motor?
Ar putea cineva să-mi trimită schema circuitului cu bateria?
bună!
Întrebarea mea este de fapt destul de simplă.
Dacă vreau să rotesc motorul spre dreapta/stânga și să controlez viteza cu un PWM, cum trebuie să îl conectez
pe tema P-Mosfet:
Rezistoarele 10kOhm și 220 Ohm trebuie schimbate, altfel poarta P-Mosfet devine aproximativ 10k/(10k + 220) * Uv atunci când tranzistorul npn este comutat. Unde Uv este tensiunea de alimentare.
Când tranzistorul npn este blocat, aproximativ tensiunea de alimentare Uv este aplicată la poartă.
Ca urmare, Mosfet nu se schimbă.
Acest lucru poate fi remediat schimbând cele două rezistențe.
Dacă aveți nevoie de timpi de comutare puțin mai rapizi, puteți pur și simplu înjumătăți, treia sau chiar sfertul ambelor valori. (! Respectați specificațiile tranzistorului npn și tensiunea de alimentare !)
Este posibil să utilizați un alt software pentru a varia viteza Arduino cu un glisor în timp ce programul rulează, înainte înapoi încet și rapid, fără a programa anumite procese în prealabil
bună,
IRF9z30 poate gestiona o tensiune a sursei de poartă de -5V. Asta înseamnă că ar trebui să lăsați 10k cu configurația afișată. Cu toate acestea, Rds la -5V este încă relativ mare, ceea ce înseamnă că pierderea de putere este, de asemenea, relativ mare. Aproximativ, aș încărca 9z30 cu maxim 800mA la temperatura camerei, fără radiator.
bună,
Sunt interesat să înțeleg și să recreez acest circuit. Dar în înțelegere există prima problemă. Poarta P-Mosfet este conectată la tensiunea de funcționare prin 220Ohm și trasă la masă de tranzistorul BC547 prin 10KOhm. Conform legii lui Ohm, acest lucru schimbă tensiunea la poartă doar nesemnificativ. Cum poate funcționa circuitul acolo. Și cum trebuie să arate programul dacă de ex. vrea să controleze motorul în ambele sensuri de rotație cu viteze și direcții diferite prin intermediul a 2 butoane?
Mulțumesc pentru răspunsuri și Paște fericit
Petru
Un pod H-do-it-yourself este întotdeauna o întreprindere dificilă.
Un P-Mosfet se blochează atunci când tensiunea la poartă este aproximativ aceeași ca la sursă. În cazul acestei scheme cu tensiune de alimentare pentru motoare mai mari de 5V, P_MOSFETS superioare nu se opresc niciodată. Se produce un scurtcircuit. Din cauza tensiunii maxime a sursei GARE de +/- 20 V, circuitul poate să nu funcționeze cu 24V dacă funcționează.
Remediu: Controlul P_Mosfets de către un tranzistor, prin care prefer controlul cu 4 ieșiri Arduino, deoarece în acest fel motorul poate coborî fără frânare (toate cele 4 MOSFET-uri blocate). În caz contrar, utilizați IC-uri de control, cum ar fi IR2104 și toate N-MOSFET-uri sau, mai bine, utilizați un IC sau un modul finit.
Mufetele menționate nu sunt potrivite pentru controlul direct de către Arduino, deoarece nu trec complet la tensiunea de 5V a porții. Trebuie utilizate MOSFET-uri la nivel logic.
Stefan, vă rugăm să adăugați și să corectați descrierea circuitului, astfel încât tensiunea de alimentare a motorului pentru acest circuit să nu fie mai mare de 5V.
@Uwefed: Vă mulțumim pentru mesaj. Nu încetezi niciodată să înveți. Voi schimba articolul cât mai curând posibil. Cu stimă, Stefan "
Deoarece din ce în ce mai mulți proprietari de case sunt obligați să-și părăsească locuințele, aceștia apelează la închiriere pe termen scurt.
Jocurile nu sunt doar pentru tineri, ci și pentru generația tânără.
Pe lângă acest șoc, aflu că acum avem un copil în curând.
bună,
Am făcut codul astfel:
acest lucru face ca robotul meu să se întoarcă 3 secunde la stânga și apoi 3 secunde la dreapta.
Am motorul stâng pe pinul 8 și 9
cel potrivit la pinii 11 și 12 (conectați-l, nu știu exact cum am conectat motoarele, adică care pin a fost pentru înainte și înapoi).
int motor1l = 8;
int motor1r = 9;
int motor2l = 11;
int motor2r = 12;
pinMode (motor1l, OUTPUT);
pinMode (motor1r, OUTPUT);
pinMode (motor2l, OUTPUT);
pinMode (motor2r, OUTPUT);
bucla nulă ()
analogWrite (motor1r, 100);
digitalWrite (motor1l, LOW);
analogWrite (motor2l, 100);
digitalWrite (motor2r, LOW);
analogWrite (motor1l, 100);
digitalWrite (motor1r, LOW);
analogWrite (motor2r, 100);
digitalWrite (motor2l, LOW);
Cu siguranță îți poți vedea entuziasmul în lucrarea pe care o scrii.
Arena speră la scriitori mai pasionați ca tine, cărora nu le este frică să spună
cum cred ei. Urmează-ți tot timpul inima.