Grandinės dizaino supratimas
Jei nenorite skaityti viso paaiškinimo, galite žiūrėti šį vaizdo įrašą:

Dabar pažiūrėkime žemiau esančią grandinės schemą ir sužinok, kaip šis dalykas iš tikrųjų veikia. Mes matome šias pagrindines grandinės dalis:

„Arduino“ lenta - Tai yra mūsų smegenys. Tai suteikia SPWM impulsus, kurie nusprendžia, kaip veiks mūsų grandinė.
IR2110 „MOSFET“ tvarkyklės ICS (IC1 ir IC2) -Šie įrenginiai paima standartinius SPWM signalus iš „Arduino“ ir daro juos suderinamus, kad būtų tinkamai perjungtas 4 N kanalo H-Bridge MOSFET, naudojant įkrovos strypo metodą.
MOSFETS (Q1, Q2, Q3, Q4) - Tai yra maitinimo jungikliai. Jie įjungia ir išjungia nuolatinės srovės galią tam tikru būdu, kad sukurtų kintamąjį išėjimo metu.
Diodai (1N4007) ir kondensatoriai - Tai skirta įgalinti teisingą ICS įkrovos tinklo veikimą, kad būtų galima tobulai perjungti 4 MOSFET.
Kiti kondensatoriai ir rezistoriai - Tai yra maži, bet labai svarbu, nes jie viską veikia sklandžiai.
Maitinimo šaltinis - Mums reikia +12 V ir +5 V „Arduino“ ir „IR2110 ICS“, o aukšta nuolatinės srovės įtampa MOSFET, kaip nurodyta apkrovos specifikacijose.
Kas vyksta grandinėje?
Dabar pažiūrėkime, kaip tai veikia žingsnis po žingsnio:
„Arduino“ generuoja SPWM signalus dviem išvesties kaiščiuose (8 kaištis ir 9 kaištis). Šie signalai nuolat keičiasi, kad būtų sukurta forma, lygi kintamos srovės sinuso banga.
IR2110 ICS priima šiuos PWM signalus ir naudokite juos labai specifiškai įjungti ir išjungti MOSFET.
H-tiltas, pagamintas naudojant keturis MOSFET, konvertuoja nuolatinės srovės magistralės tiekimą į kintamosios srovės išėjimą, perjungdami dabartinę kryptį per apkrovą, naudojant SPWM perjungimą.
Išėjimo metu gauname sinuso bangos apytikslį, tai reiškia, kad ji atrodo kaip sinuso banga, bet iš tikrųjų pagaminta iš greitai keičiančių impulsų.
Jei išvesties metu pridėsime filtro grandinę, mes galime išlyginti šiuos impulsus ir gauti tobulesnę sinuso bangą.
Mūsų „Arduino“ kodas, skirtas „Sine Wave Pwm“
Taigi dabar pažiūrėkime kodą. Būtent tai „Arduino“ vykdys, kad sugeneruotų SPWM signalus.
835ea94849999ca2b1a94fc3d1bb3e885b51ff2262Kas vyksta šiame kode?
Pirmiausia nustatėme du išvesties kaiščius (8 ir 9 kaištis). Tai išsiųs mūsų PWM signalus.
Tada kilpoje mes įjungiame ir išjungiame specialų modelį.
Mes pradedame nuo siaurų impulsų ir palaipsniui didiname impulsų plotį, o tada sumažiname jį atgal. Tai sukuria pakopinį „Sine Wave PWM“ modelį.
Po to, kai bus atliktas pirmasis pusė ciklo, mes pakartojame tą patį dalyką kitame kaiščio (9 kaiščio) kitam ciklui.
Tokiu būdu mūsų H-tiltas keičia „Mosfets“ tinkamoje sinusoidinėje bangoje kaip mada.
Kas gerai šiame dizaine
Dizainas iš tikrųjų yra labai paprastas. Mes naudojame tik „Arduino“ ir kai kuriuos įprastus komponentus.
Mums čia nereikia sinusinių bangų generatoriaus, tiesa. Pats „Arduino“ daro sinuso formą naudodamas SPWM.
H-tiltas efektyviai veikia naudojant IR2110 ICS, kad įsitikintų, jog „Mosfets“ teisingai perjungia, neperkaitindami.
Mes galime lengvai sureguliuoti SPWM, jei norime kitokio sinuso bangos dažnio, tada mes tik šiek tiek modifikuojame kodą.
Kaip turėtume tvarkyti „Arduino“ paleidimo uždelsimą
Dabar vienas labai svarbus dalykas, kurį turime suprasti, yra tai, kad „Arduino“ užtrunka šiek tiek laiko, kad pradėtume įjungti galią.
Taip atsitinka todėl, kad kai mes maitiname „Arduino“, jis pirmiausia paleidžia savo vidinį įkrovos krautuvą, kuris užtrunka kelias sekundes.
Taigi per tą laiką IR2110 vartų vairuotojas ICS ir MOSFET gali negauti tinkamų signalų iš „Arduino“.
Jei taip atsitiks, tada MOSFET gali įjungti atsitiktinai, o tai gali akimirksniu sugadinti ICS arba sukelti trumpą jungimą ar sprogimą.
Norėdami įsitikinti, kad aukščiau pateiktas įkrovos uždelsimas nedegina ICS ir MOSFET pradinio įjungimo metu, turime modifikuoti aukščiau pateiktą kodą, kaip parodyta žemiau:
// 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);
}
Dalių sąrašas
„Arduino“ lenta | Arduino UNO (arba bet kuri suderinama lenta) | 1 |
„MOSFET“ tvarkyklė IC | IR2110 Aukštos ir žemos šoninės tvarkyklės | 2 |
MOSFETS | IRF3205 (arba panašus N kanalas) | 4 |
Diodai | 1N4007 („Bootstrap & Protection“) | 4 |
Rezistoriai | 1KΩ 1/4W („Mosfet“ vartai ištraukia) | 4 |
Rezistoriai | 150Ω 1/4W („Mosfet Gate“ serijos rezistorius) | 4 |
Kondensatoriai | 100NF (įkrovos kondensatorius) | 2 |
Kondensatoriai | 22UF 25 V (maitinimo šaltinio filtras) | 2 |
Įkelti | Bet kokia varža ar indukcinė apkrova | 1 |
Maitinimo šaltinis | +12 V DC (MOSFET) ir +5 V DC („Arduino“) | 1 |
Laidai ir jungtys | Tinka grandinės jungtims | Prireikus |
Statybos patarimai
Dabar, kai mes iš tikrųjų kuriame šį dalyką, turime būti labai atsargūs dėl kelių svarbių dalykų. Priešingu atveju tai gali neveikti ar dar blogiau, kažkas gali sudeginti teisingai? Taigi čia yra keletas labai svarbių statybos patarimų, kurių turime laikytis:
Kaip turėtume sutvarkyti dalis ant lentos
Jei naudosime duonos lentą, ši grandinė gali neveikti gerai, nes didelės galios mosfetėms ir vairuotojams reikia tvirtų, tvirtų jungčių.
Taigi mes turėtume naudoti PCB (spausdintos plokštės) arba bent jau „Perf“ plokštę ir tinkamai patvirtinkite dalis.
Jei pagaminsime PCB, turime laikyti MOSFET ir IR2110 IC arti vienas kito, kad signalai netaptų silpni ar atidėti.
Storieji laidai turėtų eiti aukštais srovės keliais, pavyzdžiui, nuo maitinimo šaltinio iki MOSFET ir nuo MOSFET iki krovinio.
Ploni laidai gali būti naudojami tik signalo jungtims, pavyzdžiui, nuo Arduino iki IR2110 ICS.
Kaip turėtume pastatyti mosfetus
Keturios „Mosfets“ turėtų būti dedamos į tinkamą H tilto formą, kad laidai netaptų nepatogi.
Kiekvienas MOSFET turėtų turėti trumpas ir storas jungtis su IR2110 IC.
Jei „Mosfets“ pastatysime per toli nuo IR2110, signalai gali tapti silpni, o MOSFET gali netinkamai perjungti.
Jei taip atsitiks, mosfetės gali įkaisti ir net sudeginti.
Kaip turėtume išspręsti šilumos problemą
Jei mes naudosime IRF3205 MOSFET ar panašius, tada jie įkais, jei neduosime jiems šilumos.
Taigi turime pritvirtinti didelį aliuminio šilumos lentelę prie „Mosfets“, kad jie išliktų vėsūs.
Jei darome didelės galios keitiklį (daugiau nei 100 W), tada mes taip pat turėtume pritvirtinti aušinimo ventiliatorių ant šilumos.
Jei „Mosfets“ pasidaro per karšta liesti, tai reiškia, kad yra tam tikra problema, ir mes turime dar kartą patikrinti grandinę.
Kaip mes turėtume maitinti grandinę
„Arduino“ dalis veikia 5 V, o „Mosfets“ reikia 12 V ar daugiau.
Taigi mes niekada neturime prisijungti 12 V prie „Arduino“ arba jis akimirksniu sudegins!
IR2110 IC reikia dviejų maitinimo šaltinių:
12 V už aukštos pusės mosfetus
5 V logikos skyriuje
Jei sumaišysime šias elektros linijas, grandinė neveiks tinkamai, o „Mosfets“ nekeis teisingai.
Kaip turėtume sujungti laidus
Žemės (GND) ryšys yra labai svarbus. Jei žemės laidai yra silpni ar ilgi, tada grandinė gali elgtis keistai.
Visoms dalims turėtume naudoti bendrą žemę, ty „Arduino“ žemę, IR2110 žemės ir MOSFET šaltinio žemę reikia sujungti.
Jei pamatysime, kad grandinė elgiasi keistai (pavyzdžiui, išėjimo mirgėjimas ar MOSFET šilti be krovinio), pirmiausia turėtume patikrinti žemės jungtis.
Kaip turėtume patikrinti grandinę prieš ją maitindami
Prieš įjungdami maitinimą, turime dar kartą patikrinti visas jungtis, kad pamatytume, ar viskas teisinga.
Jei turime multimetrą, turėtume jį naudoti norėdami patikrinti įtampą skirtinguose taškuose prieš įterpdami „Mosfets“.
Mums griežtai reikės osciloskopo, kad galėtume patikrinti SPWM signalus, gaunamus iš „Arduino“, kad pamatytume, ar jie atrodo teisingi.
Kaip turėtume atidžiai išbandyti grandinę
Geriausias būdas saugiai išbandyti šią grandinę yra pradedant nuo žemos įtampos.
Vietoj 12 V pirmiausia galime pabandyti su 6 V ar 9 V, kad pamatytume, ar „MOSFET“ teisingai perjungia.
Jei grandinė gerai veikia esant žemai įtampai, tada galime lėtai padidinti iki 12 V ir galiausiai iki visos įtampos.
Jei staiga pritaikysime visą įtampą ir kažkas negerai, kažkas gali akimirksniu sudeginti!
Taigi turime išbandyti žingsnis po žingsnio ir toliau tikrinti, ar nėra perkaitimo ar neteisingo elgesio.
Kaip mes galime pridėti filtrą sklandžiau išėjimui
Ši grandinė gamina kintamosios srovės išėjimą naudojant PWM, tačiau ji vis tiek pagaminta iš greitų impulsų.
Jei norime švarios sinuso bangos, išėjimo metu turime pridėti LC filtrą.
Šis LC filtras yra tik didelis induktorius ir kondensatorius, prijungtas prie išvesties.
Induktorius pašalina greitą perjungimo impulsus, o kondensatorius išlygina bangos formą.
Jei tai padarysime tinkamai, tada galime gauti gryną sinuso bangą, kuri būtų saugi prietaisams.
Kaip turėtume apsaugoti grandinę nuo žalos
Mes visada turėtume pridėti saugiklį serijoje su maitinimo šaltiniu.
Jei kažkas šortų ar MOSFET nepavyks, tada saugiklis pirmiausia sulaužys ir išsaugos grandinę nuo deginimo.
Jei „Mosfets“ nepavyksta, kartais jie sugenda trumpai (tai reiškia, kad jie visada lieka).
Jei taip atsitiks, tada didžiulė srovė gali tekėti ir sugadinti transformatorių ar kitas dalis.
Taigi prieš tepant didelę galią, visada verta patikrinti MOSFET naudodami multimetrą.
Išvada
Taigi čia mes pamatėme, kaip galime padaryti sinuso bangos keitiklį, naudodami „Just Arduino“ ir „H-Bridge MOSFET“ grandinę. Mes panaudojome IR2110 MOSFET tvarkykles, kad tinkamai perjungtume MOSFET ir PWM valdymą iš „Arduino“, kad sukurtume mūsų sinuso moduliuotą AC.
Dabar reikia atsiminti, kad šis išėjimas vis dar pagamintas iš greitai keičiančių impulsų, taigi, jei mums reikia grynos sinuso bangos, tada išėjimo turime pridėti LC filtrą, kad išlygintume.
Tačiau apskritai tai yra labai praktiškas ir lengvas būdas namuose padaryti sinuso bangos keitiklį!