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

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:

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.
835EA9484999CA2B1A94FC3D1BB3E885B51FF2262Ce 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ă!