H-Bridge Sine Wave Inverter Circuit folosind Arduino

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





Înțelegerea designului circuitului

Dacă nu doriți să citiți întreaga explicație, puteți viziona acest videoclip în schimb:

  Mesaj de avertizare: energia electrică este periculoasă, continuați cu precauție

Acum să vedem diagrama circuitului de mai jos și să aflăm cum funcționează de fapt acest lucru. Vedem următoarele părți principale din circuit:



  Arduino Sine Wave Full Bridge Inverter Diagrama circuitului

Board Arduino - Acesta este creierul nostru. Oferă impulsuri SPWM care decid cum va rula circuitul nostru.

IR2110 MOSFET Driver ICS (IC1 și IC2) -Aceste dispozitive iau semnalele SPWM standard de la Arduino și le fac compatibile pentru a comuta în mod corespunzător MOSFET-urile cu 4 canale H, folosind metoda de bootstrapping.



MOSFETS (Q1, Q2, Q3, Q4) - Acestea sunt întrerupătoarele de alimentare. Ele activează și dezactivează DC într -un mod specific pentru a crea AC la ieșire.

Diode (1N4007) și condensatoare - Acestea sunt pentru a permite funcționarea corectă a rețelei de bootstrapping a ICS pentru comutarea perfectă a celor 4 MOSFET -uri.

Alți condensatori și rezistențe - Acestea sunt mici, dar foarte importante, deoarece păstrează totul fără probleme.

Alimentare electrică - Avem nevoie de +12V și +5V pentru Arduino și ICS IR2110 și o tensiune continuă de curent continuu pentru MOSFETS, conform specificațiilor de încărcare.

Ce se întâmplă în circuit?

Acum să vedem cum funcționează acest lucru pas cu pas:

Arduino generează semnale SPWM la doi pini de ieșire (pinul 8 și pinul 9). Aceste semnale continuă să schimbe lățimea pentru a crea o formă echivalentă cu o undă sinusoidală AC.

IC -urile IR2110 primesc aceste semnale PWM și le folosește pentru a porni și opri MOSFET -urile într -un mod foarte specific.

Punctul H realizat folosind patru MOSFET-uri transformă alimentarea cu bus DC în ieșire asemănătoare cu curent alternativ, comutarea direcției curente prin sarcină folosind comutarea SPWM.

La ieșire obținem o aproximare a undelor sinusoidale, ceea ce înseamnă că pare o undă sinusoidală, dar este de fapt făcut din impulsuri de comutare rapidă.

Dacă adăugăm un circuit de filtru la ieșire, atunci putem netezi aceste impulsuri și obținem o undă sinusoidală mai perfectă.

Codul nostru Arduino pentru Sine Wave PWM

Așadar, acum să vedem codul. Aceasta este ceea ce va rula Arduino pentru a genera semnalele SPWM.

835EA9484999CA2B1A94FC3D1BB3E885B51FF2262

Ce se întâmplă în acest cod?

Mai întâi am configurat doi pini de ieșire (pinul 8 și pinul 9). Acestea vor trimite semnalele noastre PWM.

Apoi, în buclă, pornim și oprit știftul într -un model special.

Începem cu impulsuri înguste și creștem treptat lățimea pulsului și apoi îl reducem înapoi. Acest lucru creează un model PWM cu undă sinusoidală în trepte.

După ce prima jumătate a ciclului se face, atunci repetăm ​​același lucru pe celălalt pin (pinul 9) pentru următorul ciclu.

În acest fel, H-Bridge-ul nostru comută MOSFET-urile într-un val sinusoidal adecvat ca moda.

Ce este bine la acest design

Designul este de fapt foarte simplu. Folosim doar un Arduino și unele componente comune.

Nu avem nevoie de un generator de valuri sinusoidale aici, corect. Arduino în sine face forma sinusoiului folosind SPWM.

H-Bridge funcționează eficient folosind ICS IR2110 pentru a vă asigura că MOSFET-urile se comută corect fără supraîncălzire.

Putem regla bine SPWM cu ușurință, în cazul în care dorim o frecvență de undă sinusoidală diferită, apoi modificăm puțin codul.

Cum ar trebui să ne ocupăm de întârzierea de pornire Arduino

Acum, un lucru foarte important pe care trebuie să -l înțelegem este faptul că Arduino necesită ceva timp pentru a începe după ce pornim puterea.

Acest lucru se întâmplă pentru că atunci când ne alimentam pe Arduino, atunci mai întâi rulează bootloader -ul intern, care durează câteva secunde.

Așadar, în acest timp, ICS -ul și MOSFET -urile de la poarta IR2110 pot să nu primească semnale corespunzătoare de la Arduino.

Dacă se întâmplă acest lucru, atunci MOSFET -urile pot porni la întâmplare, ceea ce poate deteriora ICS instantaneu sau poate provoca un scurtcircuit sau o explozie.

Pentru a vă asigura că întârzierea de pornire de mai sus nu arde IC -urile și MOSFET -urile în timpul pornirii inițiale, trebuie să modificăm codul de mai sus, așa cum se arată mai jos:

// By Swagatam - Full Bridge Sine Wave Inverter Code with Delay
void setup() {
    pinMode(8, OUTPUT);
    pinMode(9, OUTPUT);
    
    delay(3000); // Booting delay (wait for 3 seconds before starting)
}
void loop() {
    // First pin (8) switching pattern
    digitalWrite(8, HIGH);
    delayMicroseconds(500);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(750);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(1250);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(2000);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(1250);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(750);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(500);
    digitalWrite(8, LOW);
    // Second pin (9) switching pattern
    digitalWrite(9, HIGH);
    delayMicroseconds(500);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(750);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(1250);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(2000);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(1250);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(750);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(500);
    digitalWrite(9, LOW);
}

Lista de piese

Board Arduino Arduino UNO (sau orice tablă compatibilă) 1
Driver MOSFET IC IR2110 Șofer lateral înalt și jos 2
MOSFETS IRF3205 (sau canal N similar) 4
Diode 1N4007 (pentru bootstrap și protecție) 4
Rezistențe 1kΩ 1/4W (derulare a porții MOSFET) 4
Rezistențe 150Ω 1/4W (MOSFET SERIESE SERIESE) 4
Condensatoare 100NF (condensator de bootstrap) 2
Condensatoare 22uf 25V (filtru de alimentare) 2
Încărca Orice sarcină rezistivă sau inductivă 1
Alimentare electrică +12V DC (pentru MOSFETS) & +5V DC (pentru Arduino) 1
Fire și conectori Potrivit pentru conexiunile circuitului După cum este necesar

Sfaturi pentru construcție

Acum, când construim acest lucru, trebuie să fim foarte atenți la câteva lucruri importante. În caz contrar, s -ar putea să nu funcționeze sau mai rău, ceva poate arde nu? Iată, așadar, câteva sfaturi de construcție super importante pe care trebuie să le urmăm:

Cum ar trebui să aranjăm piesele de pe tablă

Dacă folosim o bordură, atunci acest circuit nu poate funcționa bine, deoarece MOSFET-urile și șoferii de mare putere au nevoie de conexiuni puternice și solide.

Deci, ar trebui să folosim un PCB (placă de circuit imprimat) sau cel puțin o placă Perf și să lipească în mod corespunzător piesele.

Dacă facem un PCB, atunci trebuie să menținem MOSFETS și IR2110 ICS strâns, astfel încât semnalele să nu devină slabe sau întârziate.

Firurile groase ar trebui să meargă pentru căi mari de curent, precum de la sursa de alimentare la MOSFETS și de la MOSFETS la sarcină.

Firurile subțiri pot fi utilizate numai pentru conexiuni de semnal, cum ar fi de la Arduino la ICS IR2110.

Cum ar trebui să plasăm MOSFET -urile

Cele patru MOSFET-uri ar trebui să fie plasate într-o formă adecvată de punte H, astfel încât cablarea să nu devină dezordonată.

Fiecare MOSFET ar trebui să aibă conexiuni scurte și groase la IC IR2110.

Dacă așezăm MOSFET -urile prea departe de IR2110, atunci semnalele pot deveni slabe și este posibil ca MOSFET -urile să nu se comută corect.

Dacă se întâmplă acest lucru, atunci MOSFET -urile se pot încălzi și chiar pot arde.

Cum ar trebui să remediem problema căldurii

Dacă folosim IRF3205 MOSFET -uri sau altele similare, atunci se vor încălzi dacă nu le oferim un nivel de căldură.

Așadar, trebuie să remediem o linie de căldură mare din aluminiu pe MOSFETS pentru a le menține răcoroase.

Dacă facem un invertor de mare putere (mai mult de 100W), atunci ar trebui să atașăm și un ventilator de răcire pe HADSINK.

Dacă MOSFET -urile devin prea fierbinți pentru a atinge, înseamnă că există o problemă și trebuie să verificăm din nou circuitul.

Cum ar trebui să alimentam circuitul

Partea Arduino rulează pe 5V, iar MOSFET -urile au nevoie de 12V sau mai mult pentru a lucra.

Așadar, nu trebuie să ne conectăm niciodată la 12V la Arduino, sau va arde instantaneu!

IC -urile IR2110 au nevoie de două surse de alimentare:

12V pentru MOSFET-uri cu partea înaltă

5V pentru secțiunea logică

Dacă amestecăm aceste linii electrice, circuitul nu va funcționa corect și MOSFET -urile nu vor comuta corect.

Cum ar trebui să conectăm firele

Conexiunea la sol (GND) este super importantă. Dacă cablarea la sol este slabă sau lungă, atunci circuitul se poate comporta ciudat.

Ar trebui să folosim un teren comun pentru toate părțile, ceea ce înseamnă că terenul Arduino, pământul IR2110 și terenul sursă MOSFET trebuie să fie conectate împreună.

Dacă vedem că circuitul se comportă ciudat (cum ar fi pâlpâirea de ieșire sau MOSFET -urile care se încălzesc fără încărcare), atunci ar trebui să verificăm mai întâi conexiunile la sol.

Cum ar trebui să verificăm circuitul înainte de a -l alimenta

Înainte de a porni puterea, trebuie să verificăm dublu toate conexiunile pentru a vedea dacă totul este corect.

Dacă avem un multimetru, atunci ar trebui să -l folosim pentru a verifica tensiunile în diferite puncte înainte de a introduce MOSFET -urile.

Vom avea nevoie strict de un osciloscop, astfel încât să putem verifica semnalele SPWM care vin de la Arduino pentru a vedea dacă arată corect.

Cum ar trebui să testăm cu atenție circuitul

Cea mai bună modalitate de a testa acest circuit în siguranță este începând cu o tensiune joasă.

În loc de 12V, putem încerca mai întâi cu 6V sau 9V pentru a vedea dacă MOSFET -urile comută corect.

Dacă circuitul funcționează bine la tensiune joasă, atunci putem crește încet până la 12V și, în final, la tensiunea completă.

Dacă aplicăm brusc tensiunea completă și ceva nu este în regulă, atunci ceva se poate arde instantaneu!

Așadar, trebuie să testăm pas cu pas și să verificăm dacă există supraîncălzire sau un comportament greșit.

Cum putem adăuga un filtru pentru o ieșire mai ușoară

Acest circuit face o ieșire de curent alternativ folosind PWM, dar este încă format din impulsuri rapide.

Dacă dorim o undă sinusoidală curată, atunci trebuie să adăugăm un filtru LC la ieșire.

Acest filtru LC este doar un inductor mare și un condensator conectat la ieșire.

Inductorul elimină impulsurile de comutare rapidă și condensatorul netezește forma de undă.

Dacă facem acest lucru în mod corespunzător, atunci putem obține o undă sinusoidală pură care este sigură pentru aparate.

Cum ar trebui să protejăm circuitul de daune

Ar trebui să adăugăm întotdeauna o siguranță în serie cu sursa de alimentare.

Dacă ceva pantaloni scurți sau un MOSFET eșuează, atunci siguranța se va rupe mai întâi și va salva circuitul de la ardere.

Dacă MOSFET -urile nu reușesc, uneori nu reușesc să fie scurtate (ceea ce înseamnă că rămân mereu în continuare).

Dacă se întâmplă acest lucru, atunci curentul uriaș poate curge și deteriora transformatorul sau alte părți.

Așadar, este întotdeauna bine să verificați MOSFET -urile folosind un multimetru înainte de a aplica o putere mare.

Concluzie

Aici am văzut cum putem face un invertor de undă sinusoidală folosind doar Arduino și un circuit MOSFET H-Bridge. Am folosit drivere IR2110 MOSFET pentru a comuta în mod corespunzător MOSFET-urile și controlul PWM de la Arduino pentru a genera AC-ul nostru modulat cu sine.

Acum, un lucru de reținut este că această ieșire este încă făcută din impulsuri de comutare rapidă, astfel încât dacă avem nevoie de o undă sinusoidală pură, atunci trebuie să adăugăm un filtru LC la ieșire pentru a-l netezi.

Dar, în general, acesta este un mod foarte practic și ușor de a face un invertor de valuri sinusoidale acasă!