Menič 12 - 220 voltov na Arduino pure sine s úplným programovým kódom.
teória
Dosiahnutie výstupu sínusovej vlny je pomerne ťažké a nemôže byť odporúčané pre striedače, pretože elektronický zariadeniam sa nepáči exponenciálne zvyšujúce sa prúdy alebo napätia. Pretože invertory sa vyrábajú hlavne pomocou polovodičových elektronických zariadení, sínusový priebeh sa zvyčajne eliminuje.
Elektronické výkonové zariadenia pri práci so sínusovými vlnami dávajú neefektívne výsledky, pretože zariadenia sa spravidla zohrievajú v porovnaní s pravouhlými impulzmi.
Preto najlepšou možnosťou na implementáciu sínusovej vlny na meniči je PWM, čo znamená moduláciu šírky impulzu alebo PWM.
PWM je vylepšený spôsob (digitálna verzia) expozície exponenciálneho tvaru vlny prostredníctvom proporcionálne sa meniacich šíriek štvorcových impulzov, ktorých čistá hodnota sa počíta presne podľa čistej hodnoty vybraného exponenciálneho tvaru vlny, tu sa „čistá“ hodnota vzťahuje na hodnotu RMS. Preto sa vypočítaný PWM s odkazom na danú sínusovú vlnu môže použiť ako ideálny ekvivalent pre replikáciu danej sínusovej vlny. Okrem toho budú PWM ideálne kompatibilné s elektronickými výkonovými zariadeniami (mosfety, BJT, IGBTS) a umožňujú ich použitie s minimálnym teplom.
Čo je SPWM?
Najbežnejšou metódou je vyrábať PWM sinewaver (sine wave) alebo SPWM aplikáciou niekoľkých exponenciálne premenných signálov na vstup operačného zosilňovača na potrebné spracovanie. Z týchto dvoch vstupných signálov by jeden mal mať oveľa vyššiu frekvenciu v porovnaní s ostatnými.
Použitie dvoch vstupných signálov
Ako je uvedené v predchádzajúcej časti, postup zahŕňa dodanie dvoch exponenciálne sa meniacich signálov na vstupy operačného zosilňovača.
Operačný zosilňovač je tu nakonfigurovaný ako typický komparátor, takže môžeme predpokladať, že operačný zosilňovač okamžite začne porovnávať okamžité úrovne napätia týchto dvoch superponovaných signálov v okamihu, keď sa objavia alebo sa aplikujú na jeho vstupy.
Aby operačný zosilňovač správne implementoval potrebný sínusový PWM na svojom výstupe, je potrebné, aby jeden zo signálov mal oveľa vyššiu frekvenciu ako druhý. Pomalšia je tu frekvencia, ktorá by mala byť sínusovou vlnou vzorky, ktorá by sa mala simulovať (replikovať) pomocou PWM.
V ideálnom prípade by oba signály mali byť sínusoidné (jeden s vyššou frekvenciou ako druhý), to isté sa však dá dosiahnuť zahrnutím trojuholníkovej vlny (vysoká frekvencia) a sinusovej vlny (selektívna vlna s nízkou frekvenciou). Ako je možné vidieť na nasledujúcich obrázkoch, vysokofrekvenčný signál sa vždy privádza na invertujúci vstup (-) operačného zosilňovača, zatiaľ čo na neinvertujúci (+) vstup operačného zosilňovača sa dodáva ďalší pomalší sínusový signál. V najhoršom prípade môžu byť obidva signály trojuholníkové vlny s odporúčanou úrovňou frekvencie, ako je opísané vyššie. Pomôže to však pri dosahovaní primerane dobrého ekvivalentu sínusovej vlny PWM.
Signál s vyššou frekvenciou sa nazýva nosný signál, zatiaľ čo pomalší vzorkovací signál sa nazýva modulačný vstup.
Vytvorte SPWM pomocou trojuholníkovej a šľachovej vlny
S odkazom na vyššie uvedený obrázok je možné zreteľne vizualizovať rôzne body koincidenčných alebo prekrývajúcich sa napäťových bodov týchto dvoch signálov pre dané časové obdobie. Horizontálna os ukazuje časové obdobie tvaru vlny, zatiaľ čo vertikálna os ukazuje úrovne napätia 2 súčasne prebiehajúcich, prekrývajúcich sa tvar vlny. Obrázok nás informuje o tom, ako operačný zosilňovač bude reagovať na zobrazené súčasné okamžité úrovne napätia týchto dvoch signálov a na svojom výstupe vytvorí zodpovedajúcim spôsobom sínusoidné PWM. Operačný zosilňovač (op-amp) jednoducho porovnáva úrovne napätia rýchlej vlny trojuholníka, ktorá okamžite mení sínusovú vlnu (môže to byť aj vlna trojuholníka), a kontroluje prípady, v ktorých môže byť napätie vlny trojuholníka nižšie ako napätie sínusovej vlny a reaguje naň. okamžite vytvorte vysokú logiku vašich východov.
Toto sa udržiava, pokiaľ je potenciálna vlna trojuholníka naďalej nižšia ako potenciál sínusovej vlny a vo chvíli, keď sa zistí, že potenciál sínusovej vlny je nižší ako okamžitý potenciál vlny trojuholníka, výstupy sa vrátia s minimom a vydržia, kým sa situácia nezopakuje.
Toto nepretržité porovnávanie hladín okamžitého potenciálu dvoch superponovaných tvarov vĺn na dvoch vstupoch operačných zosilňovačov vedie k vytvoreniu zodpovedajúcich zmien PWM, ktoré môžu presne opakovať sínusový tvar aplikovaný na neinvertujúci vstup operačného zosilňovača.
Operačný zosilňovač a SPWM
Nasledujúci obrázok ukazuje modelovanie vyššie uvedená operácia:
Tu môžeme pozorovať, ako sa implementuje v praxi, a takto bude operačný zosilňovač robiť to isté (hoci v oveľa vyššej rýchlosti v členských štátoch).
Operácia je celkom zrejmá a jasne ukazuje, ako by operačný zosilňovač mal spracovať sínusovú vlnu PWM porovnaním dvoch súčasne sa meniacich signálov na svojich vstupoch, ako je opísané v predchádzajúcich častiach.
V skutočnosti bude operačný zosilňovač sínusový PWM spracovávať omnoho presnejšie ako simulácia uvedená vyššie, môže byť 100-krát lepší, čím sa vytvorí extrémne jednotný a dobre meraný PWM, ktorý zodpovedá dodanej vzorke. Sinusová vlna.
Dva obvody meniča Arduino
zoznam dielov
Všetky 1/4 wattové rezistory, 5% CFR
• 10 K = 4
• 1K = 2
• BC547 = 4ks
• MOSFET IRF540 = 2ks
• Arduino UNO = 1
• Transformátor = 9-0-9V / 220V / 120V.
• Batéria = 12V
Všetky 1/4 wattové rezistory, 5% CFR
• 10 K = 4
• 1K = 2
• BC547 = 4ks
• MOSFET IRF540 = 2ks
• Arduino UNO = 1
• Transformátor = 9-0-9V / 220V / 120V.
• Batéria = 12V
Dizajn je v skutočnosti veľmi jednoduchý, ako ukazuje nasledujúci obrázok.
Pin # 8 a pin # 9 vytvárajú striedavo PWM a prepínajú Mosfety s rovnakým PWM.
Mosfet zase indukuje vysoko aktuálny tvar vlny SPWM na transformátore pomocou energie batérie, čo núti sekundárnu časť transformátora, aby vytvoril identický tvar vlny.
Navrhovaný invertorový obvod Arduino je možné upgradovať na akúkoľvek preferovanú vyššiu úroveň výkonu jednoduchým nahradením Mosfetov a transformátorov, ako alternatívu, môžete ich tiež previesť na plný mostík alebo na sinusový menič H-mostíka
Arduino Board Power
Krivky obrázkov pre Arduino SPWM
Pretože Arduino bude produkovať 5 V výstup, nemusí byť ideálny na priame ovládanie tranzistorov MOS.
Preto je potrebné zvýšiť úroveň záblesku na 12 V, aby mosfety fungovali správne bez zahrievania zariadení.
Aby ste sa uistili, že sa Mosfety nespustí, keď sa Arduino spustí alebo spustí, musíte pridať nasledujúci generátor oneskorenia a pripojiť ho k základni tranzistorov BC547. Toto ochráni Mosfety a zabráni ich vypáleniu počas vypínača napájania a keď sa Arduino zavedie.
Pridanie automatického regulátora napätia
Rovnako ako na akomkoľvek inom meniči, na výstupe tohto dizajnu môže prúd stúpnuť na nebezpečné limity, keď je batéria úplne nabitá.
Ak to chcete ovládať, pridajte automatický regulátor napätia.
Kolektory BC547 musia byť pripojené k bázam ľavého páru BC547, ktoré sú pripojené k Arduino cez odpory 10K.
Druhá verzia meniča využívajúca čip sn7404 / k155ln1
Je dôležité, aby sa:
Aby sa predišlo náhodnému zapnutiu pred načítaním Arduina, do vyššie uvedeného návrhu môže byť zahrnuté jednoduché oneskorenie v obvode časovača, ako je uvedené nižšie:
Programový kód:
/ *
Tento kód bol založený na kóde SPGM spoločnosti Swagatam so zmenami vykonanými na odstránenie chýb. Použite tento kód, ako by ste použili akékoľvek iné diela Swagatama.
Attonské riziko 2017
* /
const int sPWMArray [] = {500,500,750,500,1250,500,2000,500,1250,500,750,500,5}}; // Toto je pole s hodnotami SPWM ich ľubovoľne mení
const int sPWMArrayValues = 13; // Potrebujete to, pretože C vám nedáva dĺžku poľa
// Kolíky
const int sPWMpin1 = 10;
const int sPWMpin2 = 9;
// Kolíkové spínače
bool sPWMpin1Status = true;
bool sPWMpin2Status = true;
neplatné nastavenie ()
{
pinMode (sPWMpin1, OUTPUT);
pinMode (sPWMpin2, OUTPUT);
}
prázdna slučka ()
{
// Slučka na kolík 1
pre (int i (0); i! = sPWMArrayValues; i ++)
{
if (sPWMpin1Status)
{
digitalWrite (sPWMpin1, HIGH);
delayMicroseconds (sPWMArray [i]);
sPWMpin1Status = false;
}
inak
{
digitalWrite (sPWMpin1, LOW);
delayMicroseconds (sPWMArray [i]);
sPWMpin1Status = true;
}
}
// Slučka na kolík 2
pre (int i (0); i! = sPWMArrayValues; i ++)
{
if (sPWMpin2Status)
{
digitalWrite (sPWMpin2, HIGH);
delayMicroseconds (sPWMArray [i]);
sPWMpin2Status = false;
}
inak
{
digitalWrite (sPWMpin2, LOW);
delayMicroseconds (sPWMArray [i]);
sPWMpin2Status = true;
}
}
}
Veľa šťastia.