» Temos » Patarimai »Dvi keitiklio grandinės 12–220 voltų ant arduino

Dvi keitiklio grandinės 12–220 voltų ant arduino


Inverteris 12–220 voltų ant grynojo Arduino sinuso su visu programos kodu.


Teorija
Pasiekti sinuso bangos išėjimą yra gana sunku ir to negalima rekomenduoti keitikliams, nes elektroninis prietaisai paprastai nemėgsta eksponentiškai didėjančių srovių ar įtampų. Kadangi keitikliai daugiausia gaminami naudojant kietojo kūno elektroninius prietaisus, sinusoidinės bangos formos paprastai pašalinamos.

Elektroniniai galios įtaisai, dirbantys su sinusoidinėmis bangomis, duoda neefektyvius rezultatus, nes įtaisai, kaip taisyklė, yra šildomi, palyginti su stačiakampiais impulsais.

Taigi geriausias variantas sinusinės bangos įgyvendinimui inverteryje yra PWM, tai reiškia impulsų pločio moduliaciją arba PWM.

PWM yra patobulintas eksponentinės bangos formos poveikio būdas (skaitmeninė versija) proporcingai keičiant kvadratinio impulso plotį, kurio grynoji vertė apskaičiuojama tiksliai pagal pasirinktos eksponentinės bangos formos grynąją vertę, čia „grynoji“ reikšmė nurodo RMS vertę. Todėl apskaičiuotas PWM, atsižvelgiant į tam tikrą sinuso bangą, gali būti naudojamas kaip idealus ekvivalentas tam tikros sinusinės bangos replikacijai. Be to, PWM bus idealiai suderinami su elektroniniais maitinimo prietaisais (mosfetais, BJT, IGBTS) ir leis juos naudoti kuo mažiau šilumos.

Kas yra SPWM?
Dažniausias būdas yra sukurti PWM sinusinį bangą (sinusinę bangą) arba SPWM, pritaikant kelis eksponentiškai kintamus signalus į operacinio stiprintuvo įvestį būtinam apdorojimui. Tarp dviejų įvesties signalų vieno turėtų būti daug didesnis dažnis, palyginti su kitu.

Naudojant du įvesties signalus
Kaip minėta ankstesniame skyriuje, procedūra apima dviejų eksponentiškai kintančių signalų tiekimą į operacinio stiprintuvo įėjimus.
Čia operatyvinis stiprintuvas yra sukonfigūruotas kaip tipinis palyginimo įrenginys, todėl galime manyti, kad operacinis stiprintuvas iškart pradės lyginti momentinius šių dviejų viena kitos užrašytų signalų įtampos lygius tuo metu, kai jie pasirodys arba bus taikomi jo įėjimuose.

Norint, kad operatyvinis stiprintuvas savo išvestyje teisingai įgyvendintų reikiamą sinusoidinį PWM, būtina, kad vienas iš signalų būtų kur kas aukštesnis nei kitas. Lėtesnis dažnis yra tas, kuris turėtų būti mėginio sinusinė banga, kurią turėtų imituoti (pakartoti) PWM.

Idealiu atveju abu signalai turėtų būti sinusiniai (vienas turi didesnį dažnį nei kitas), tačiau tą patį galima realizuoti įtraukiant trikampio (aukšto dažnio) ir sinuso bangas (selektyvioji žemo dažnio banga). Kaip matyti iš šių vaizdų, aukšto dažnio signalas visada tiekiamas į operacinio stiprintuvo apverstą įvestį (-), o kitas lėtesnis sinusoidinis signalas tiekiamas į operacinio stiprintuvo neinversinį (+) įėjimą. Blogiausiu atveju abu signalai gali būti trikampio bangos su rekomenduojamais dažnio lygiais, kaip aprašyta aukščiau. Tačiau tai padės pasiekti pakankamai gerą PWM sinuso bangos ekvivalentą.

Aukštesnio dažnio signalas vadinamas nešiklio signalu, tuo tarpu lėtesnis imties signalas vadinamas moduliaciniu įėjimu.

Sukurkite SPWM trikampio ir sausgyslės bangomis
Remiantis aukščiau pavaizduotu paveikslu, per nubraižytus taškus galima aiškiai pavaizduoti įvairius sutampančius ar sutampančius dviejų signalų įtampos taškus tam tikrą laiką. Horizontalioji ašis rodo bangos formos laikotarpį, o vertikali ašis rodo 2 kartu veikiančių įtampų lygius - bangos formą. Paveikslėlis informuoja mus, kaip operatyvinis stiprintuvas reaguos į rodomus dviejų signalų momentinius įtampos lygius ir išves atitinkamai sinusoidinį PWM. Operatyvinis stiprintuvas (op-amp) tiesiog palygina, greito trikampio bangos įtampos lygius akimirksniu keičia sinuso banga (tai taip pat gali būti trikampio banga), ir patikrina atvejus, kai trikampio bangos formos įtampa gali būti mažesnė už sinuso bangos įtampą ir reaguoja. nedelsdami sukurkite aukštą logiką apie savo išėjimus.

Tai išlaikoma tol, kol potenciali trikampio banga ir toliau yra mažesnė už sinuso bangos potencialą, o tuo metu, kai aptinkamas sinuso bangos potencialas yra mažesnis už momentinį trikampio bangos potencialą, išėjimai grįžta minimaliai ir atlaiko tol, kol situacija pasikartoja.

Šis nenutrūkstamas momentinis dviejų sudedamųjų bangos formų lygių palyginimas dviejuose operacinių stiprintuvų įėjimuose lemia, kad sukuriami atitinkamai keičiantys PWM, kurie gali tiksliai pakartoti sinusoidinę formą, pritaikytą neinversiniam operatyvinio stiprintuvo įėjimui.

Operatyvinis stiprintuvas ir SPWM
Paveikslėlyje parodyta modeliavimas aukščiau nurodyta operacija:
Dvi keitiklio grandinės 12–220 voltų ant arduino

Čia galime stebėti, kaip jis įgyvendinamas praktikoje, ir taip veiks operatyvinis stiprintuvas (nors ir žymiai didesniu greičiu, MS).

Operacija yra gana akivaizdi ir aiškiai parodo, kaip operatyvinis stiprintuvas turėtų apdoroti PWM sinusinę bangą, palygindamas du tuo pačiu metu kintančius signalus savo įėjimuose, kaip aprašyta ankstesniuose skyriuose.

Tiesą sakant, operatyvinis stiprintuvas sinusoidinį PWM apdoros daug tiksliau nei aukščiau parodyta modeliavimas, jis gali būti 100 kartų geresnis, sukuriant ypač vienodą ir gerai išmatuotą PWM, atitinkantį pateiktą pavyzdį. Sinuso banga.

„Arduino“ keitiklio dvi grandinės

dalių sąrašas
Visi 1/4 vatų varžai, 5% CFR
• 10K = 4
• 1K = 2
• BC547 = 4vnt
• MOSFET IRF540 = 2 vnt
Arduino UNO = 1
• Transformatorius = 9-0-9V / 220V / 120V.
• Baterija = 12 V


Iš tikrųjų dizainas yra labai paprastas, kaip parodyta paveikslėlyje.

8 ir 9 kaiščiai pakaitomis sukuria PWM ir perjungia „Mosfets“ tuo pačiu PWM.
„Mosfet“ savo ruožtu, naudodamas akumuliatoriaus galią, transformatoriuje sukelia labai stiprią SPWM bangos formą, priversdamas transformatoriaus antrinę galią sukurti tokią pačią bangos formą.

Siūlomą „Arduino“ inverterio grandinę galima patobulinti iki bet kokio pageidaujamo didesnio galios lygio, tiesiog pakeičiant atitinkamai „Mosfets“ ir transformatorių. Kaip alternatyvą taip pat galite konvertuoti į viso tilto arba H tilto sinusinių bangų keitiklį.
„Arduino“ lentos galia

„Arduino SPWM“ bangos formos vaizdai

Kadangi „Arduino“ gamins 5 V išėjimą, tai gali būti netiesioginis MOS tranzistorių valdymas.

Todėl būtina pakelti strobos lygį iki 12 V, kad „Mosfets“ tinkamai veiktų nešildydami prietaisų.

Norėdami įsitikinti, kad „Mosfety“ neprasideda, kai „Arduino“ paleidžiamas ar įsijungia, turite pridėti toliau nurodytą delsos generatorių ir prijungti jį prie tranzistorių BC547 pagrindo. Tai padės apsaugoti „Mosfets“ ir neleisti jiems išdegti perjungiant energiją ir „Arduino“ batus.

Pridedamas automatinis įtampos reguliatorius
Kaip ir bet kokio kito keitiklio atveju, esant šiam dizainui, visiškai įkraunant akumuliatorių, srovė gali išaugti iki nesaugių ribų.

Norėdami tai valdyti, pridėkite automatinį įtampos reguliatorių.
BC547 kolektoriai turi būti prijungti prie kairiosios BC547 poros bazių, kurios yra sujungtos su Arduino per 10K rezistorius.

Antroji keitiklio versija, naudojant „sn7404 / k155ln1“ lustą


Svarbu:
Norint išvengti atsitiktinio įjungimo prieš įkeliant „Arduino“, į aukščiau pateiktą dizainą galima įtraukti paprastą laikmačio grandinės atidėjimą, kaip parodyta žemiau:


Programos kodas:

/ *
Šis kodas buvo pagrįstas „Swagatam SPWM“ kodu su pakeitimais, padarytais norint pašalinti klaidas. Naudokite šį kodą kaip ir kitus Swagatam kūrinius.
Atton rizika 2017 m
* /
const int sPWMArray [] = {500,500,750,500,1250,500,2000,500,1250,500,750,500,500}; // Tai yra masyvas, kuriame SPWM reikšmės jas pakeis
const int sPWMArrayValues ​​= 13; // Jums to reikia, nes C nesuteikia jums masyvo ilgio
// Smeigtukai
const int sPWMpin1 = 10;
const int sPWMpin2 = 9;
// Smeigtukas jungiasi
bool sPWMpin1Status = tiesa;
bool sPWMpin2Status = tiesa;
negaliojanti sąranka ()
{
pinMode (sPWMpin1, OUTPUT);
pinMode (sPWMpin2, OUTPUT);
}
tuščia kilpa ()
{
// 1 kaiščio kilpa
for (int i (0); i! = sPWMArrayValues; i ++)
{
if („sPWMpin1Status“)
{
„digitalWrite“ („sPWMpin1“, „HIGH“);
atidėjimoMikrosekundės („sPWMArray“ [i]);
sPWMpin1Status = klaidinga;
}
dar
{
„digitalWrite“ („sPWMpin1“, LOW);
atidėjimoMikrosekundės („sPWMArray“ [i]);
sPWMpin1Status = tiesa;
}
}
// 2 kaiščio kilpa
for (int i (0); i! = sPWMArrayValues; i ++)
{
if („sPWMpin2Status“)
{
„digitalWrite“ („sPWMpin2“, „HIGH“);
atidėjimoMikrosekundės („sPWMArray“ [i]);
sPWMpin2Status = klaidinga;
}
dar
{
„digitalWrite“ („sPWMpin2“, LOW);
atidėjimoMikrosekundės („sPWMArray“ [i]);
sPWMpin2Status = tiesa;
}
}
}

Sėkmės.




Tinka temai

Susijusios temos

Pridėti komentarą

    • šypsotisšypsosixaxagerainežiniaYahoonea
      viršininkassubraižytikvailystaiptaip-taipagresyvusslapta
      atsiprašaušoktišokis2šokis3atleiskpadėtigėrimai
      sustotidraugaigeraigerašvilpukassupyktiliežuvis
      rūkytiplojimaiklastingaspareikštiniokojantisdon-t_mentionatsisiųsti
      šilumanedrąsusjuoktis1mdasusitikimasmoskingneigiamas
      not_ipopkornasnubaustiskaitytigąsdintigąsdinapaieška
      gundytiačiūtaito_clueumnikūmussusitarti
      blogaibičiųjuoda akisblum3skaistalaipasigirtinuobodulys
      cenzūruotamalonumasslapta2grasintipergalęju„sun_bespectacled“
      šoktipagarbalolišlenktaslaukiamekrutojusya_za
      ya_dobryipagalbininkasne_huliganne_othodifludisuždraustiarti
5 komentarai
Riddikas
O kur pragare yra išvesties parametrai?
Svečias Andrejus
Aš rekomenduoju įdiegti IR4427 mikroschemą kaip tvarkyklę - dvi apatinės raktų tvarkyklės be inversijos.
Kopijuotojas įsipareigojo perpasakoti medžiagą tema, kurios jis visiškai nežinojo:
Yra daugybė absurdų, ir man atrodė (gal aš klystu), kad autorius kalba rusiškai kaip užsienio kalba, todėl jis automatiškai verčia iš savo gimtosios kalbos į anglų kalbą, o iš anglų kalbos į rusų kalbą, nes Tiesioginis automatinis vertimas yra įmanomas, o ne! Bet tai tik mano spėlionės! subraižyti
Kopijuotojas įsipareigojo perpasakoti medžiagą tema, kurios jis visiškai nežinojo:
BC547 kolektoriai turi būti prijungti prie pagrindai kairioji pora BC547
Skyrius „Teorija“ - reta nenuosekli nesąmonė!

Mes patariame perskaityti:

Perduokite jį išmaniajam telefonui ...