H-tilto sinuso bangos keitiklio grandinė naudojant „Arduino“

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Grandinės dizaino supratimas

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

  ĮSPĖJIMAS PRANEŠIMAS: Elektra yra pavojinga, atsargiai elkitės atsargiai

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 Sine Wave“ pilno tilto keitiklio grandinės schema

„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.

835ea94849999ca2b1a94fc3d1bb3e885b51ff2262

Kas 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į!