H-Bridge sinusbølgeomformerkrets ved bruk av Arduino

Prøv Instrumentet Vårt For Å Eliminere Problemer





Forstå kretsdesignet

Hvis du ikke vil lese hele forklaringen, kan du se denne videoen i stedet:

  Advarsel: Elektrisitet er farlig, fortsett med forsiktighet

La oss nå se kretsdiagrammet nedenfor og lære hvordan denne tingen faktisk fungerer. Vi ser følgende hoveddeler i kretsen:



  Arduino Sine Wave Full Bridge Inverter Circuit Diagram

Arduino Board - Dette er hjernen vår. Det gir ut SPWM -pulser som bestemmer hvordan kretsen vår vil løpe.

IR2110 MOSFET Driver ICS (IC1 og IC2) -Disse enhetene tar standard SPWM-signalene fra Arduino og gjør dem kompatible for å bytte 4 N-kanals H-Bridge MOSFET-er riktig, ved hjelp av bootstrapping-metoden.



MOSFETS (Q1, Q2, Q3, Q4) - Dette er strømbryterne. De slår DC -strømmen av og på på en spesifikk måte for å lage AC ved utgangen.

Dioder (1N4007) og kondensatorer - Disse er for å muliggjøre riktig arbeid av bootstrapping -nettverket til ICS for perfekt bytte av de 4 MOSFET -ene.

Andre kondensatorer og motstander - Disse er små, men veldig viktige fordi de holder alt i gang.

Strømforsyning - Vi trenger +12V og +5V for Arduino og IR2110 IC -er, og en høy DC -spenning for MOSFET -ene, i henhold til belastningsspesifikasjonene.

Hva skjer i kretsen?

La oss nå se hvordan dette fungerer trinn for trinn:

Arduino genererer SPWM -signaler ved to utgangspinner (pinne 8 og pinne 9). Disse signalene endrer bredde for å skape en form som tilsvarer en AC -sinusbølge.

IR2110 IC -er mottar disse PWM -signalene og bruker dem til å slå av og på MOSFET -ene på en veldig spesifikk måte.

H-broen som er laget med fire MOSFET-er konverterer DC-bussforsyningen til AC-lignende utgang ved å bytte gjeldende retning gjennom lasten ved hjelp av SPWM-svekslingen.

Ved utgangen får vi en sinusbølge-tilnærming som betyr at den ser ut som en sinusbølge, men faktisk er laget av hurtigbyttepulser.

Hvis vi legger til en filterkrets ved utgangen, kan vi glatte disse pulsen og få en mer perfekt sinusbølge.

Vår Arduino -kode for sinusbølge PWM

Så la oss nå se koden. Dette er hva Arduino vil kjøre for å generere SPWM -signalene.

835A9484999ca2b1a94fc3d1bb3e885b51ff2262

Hva skjer i denne koden?

Først satte vi opp to utgangspinner (pinne 8 og pinne 9). Disse vil sende ut våre PWM -signaler.

Så i løkken slår vi av og på i et spesielt mønster.

Vi starter med smale pulser og øker gradvis pulsbredden og deretter reduserer vi den ned igjen. Dette skaper et trappet sinusbølge PWM -mønster.

Etter at den første halvsyklusen er ferdig, gjentar vi det samme på den andre pinnen (pinne 9) for neste syklus.

På denne måten bytter H-Bridge MOSFET-ene i en skikkelig sinusformet bølge som mote.

Hva er bra med dette designet

Designet er faktisk veldig enkelt. Vi bruker bare en Arduino og noen vanlige komponenter.

Vi trenger ikke en sinusbølggenerator her, ikke sant. Arduino selv lager sinusformen ved hjelp av SPWM.

H-broen fungerer effektivt ved å bruke IR2110 ICS for å sikre at MOSFET-ene bytter riktig uten overoppheting.

Vi kan finjustere SPWM enkelt, i tilfelle vi ønsker en annen sinusbølgefrekvens, så endrer vi bare koden litt.

Hvordan vi skal håndtere Arduino oppstartsforsinkelse

Nå er en veldig viktig ting som vi må forstå at Arduino tar litt tid å begynne etter at vi har slått på strømmen.

Dette skjer fordi når vi kjører på Arduino, kjører den først sin interne bootloader som tar noen sekunder.

Så i løpet av denne tiden kan IR2110 Gate Driver ICS og MOSFETs kanskje ikke motta noen riktige signaler fra Arduino.

Hvis det skjer, kan MOSFET -ene slå på tilfeldig, noe som kan skade IC -ene umiddelbart, eller forårsake en kortslutning eller eksplosjon.

For å sikre at ovennevnte oppstartsforsinkelse ikke forbrenner IC -ene og MOSFET -ene under den første strømmen, må vi endre koden ovenfor som vist nedenfor:

// 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);
}

Deleliste

Arduino Board Arduino Uno (eller et hvilket som helst kompatibelt brett) 1
Mosfet driver ic IR2110 høy og lav sidesjåfør 2
Mosfeter IRF3205 (eller lignende n-kanal) 4
Dioder 1N4007 (for Bootstrap & Protection) 4
Motstander 1KΩ 1/4W (Mosfet Gate nedtrekk) 4
Motstander 150Ω 1/4W (MOSFET GATE Series Resistor) 4
Kondensatorer 100NF (bootstrap kondensator) 2
Kondensatorer 22UF 25V (strømforsyningsfilter) 2
Laste Enhver resistiv eller induktiv belastning 1
Strømforsyning +12V DC (for MOSFETS) & +5V DC (for Arduino) 1
Ledninger og kontakter Passer for kretstilkoblinger Etter behov

Konstruksjonstips

Når vi faktisk bygger denne tingen, må vi være veldig forsiktige med noen viktige ting. Ellers fungerer det kanskje ikke eller verre, noe kan brenne ut, ikke sant? Så her er noen super viktige konstruksjonstips som vi må følge:

Hvordan vi skal ordne delene på tavlen

Hvis vi bruker et brødbord, kan det hende at denne kretsen ikke fungerer bra fordi MOSFET-er og sjåfører med høy effekt trenger sterke, solide tilkoblinger.

Så vi bør bruke en PCB (trykt kretskort) eller i det minste et PERFBrett og lodde delene ordentlig.

Hvis vi lager en PCB, må vi holde MOSFETS og IR2110 IC -er tett sammen slik at signalene ikke blir svake eller forsinket.

De tykke ledningene skal gå for høye strømstier som fra strømforsyningen til MOSFETS og fra MOSFETS til belastningen.

De tynne ledningene kan bare brukes til signalforbindelser som fra Arduino til IR2110 ICS.

Hvordan vi skal plassere MOSFETS

De fire MOSFET-ene skal plasseres i en riktig H-broform, slik at ledningene ikke blir rotete.

Hver MOSFET skal ha korte og tykke tilkoblinger til IR2110 IC.

Hvis vi plasserer MOSFET -ene for langt fra IR2110, kan signalene bli svake og MOSFET -ene bytter kanskje ikke ordentlig.

Hvis det skjer, kan MOSFETS bli varmt og til og med brenne ut.

Hvordan vi skal fikse varmeproblemet

Hvis vi bruker IRF3205 MOSFETS eller lignende, vil de varme opp hvis vi ikke gir dem en kjøleribbe.

Så vi må fikse et stort varmesink i aluminium til MOSFET -ene for å holde dem kjølig.

Hvis vi lager en høykraftverter (mer enn 100W), bør vi også feste en kjølevifte på kjøleribben.

Hvis MOSFET -ene blir for varme til å ta på, betyr det at det er noe problem, og vi må sjekke kretsen igjen.

Hvordan vi skal drive kretsen

Arduino -delen kjører på 5V og MOSFET -ene trenger 12V eller mer for å jobbe.

Så vi må aldri koble 12V til Arduino, ellers vil det brenne øyeblikkelig!

IR2110 IC -er trenger to strømforsyninger:

12V for MOSFET-er på høy side

5V for logikkdelen

Hvis vi blander sammen disse kraftlinjene, vil ikke kretsen fungere ordentlig, og MOSFET -ene vil ikke bytte riktig.

Hvordan vi skal koble ledningene

Ground (GND) -forbindelsen er super viktig. Hvis bakkeledningene er svak eller lang, kan kretsen oppføre seg rart.

Vi bør bruke et felles grunnlag for alle deler, noe som betyr at Arduino -bakken, IR2110 bakken og MOSFET -kildeplassen må kobles sammen.

Hvis vi ser kretsen oppføre seg underlig (som output -flimringen eller MOSFET -ene blir varme uten belastning), bør vi sjekke bakkeforbindelsene først.

Hvordan vi skal sjekke kretsen før vi slår den opp

Før vi slår på kraften, må vi dobbeltsjekke alle tilkoblinger for å se om alt er riktig.

Hvis vi har et multimeter, bør vi bruke det til å sjekke spenningene på forskjellige punkter før vi setter inn MOSFET -ene.

Vi trenger strengt et oscilloskop slik at vi kan sjekke SPWM -signalene som kommer fra Arduino for å se om de ser riktig ut.

Hvordan vi skal teste kretsen nøye

Den beste måten å teste denne kretsen trygt er ved å starte med lavspenning.

I stedet for 12V kan vi først prøve med 6V eller 9V for å se om MOSFET -ene bytter riktig.

Hvis kretsen fungerer bra ved lavspenning, kan vi sakte øke til 12V og til slutt til full spenning.

Hvis vi plutselig bruker full spenning og noe er galt, kan noe brenne ut øyeblikkelig!

Så vi må teste trinn for trinn og fortsette å sjekke for overoppheting eller feil oppførsel.

Hvordan vi kan legge til et filter for en jevnere utgang

Denne kretsen lager en vekselstrømutgang ved hjelp av PWM, men den er fremdeles laget av raske pulser.

Hvis vi vil ha en ren sinusbølge, må vi legge til et LC -filter ved utgangen.

Dette LC -filteret er bare en stor induktor og en kondensator koblet til utgangen.

Induktoren fjerner hurtigbyttepulsene og kondensatoren jevner ut bølgeformen.

Hvis vi gjør dette ordentlig, kan vi få en ren sinusbølge som er trygt for apparater.

Hvordan vi skal beskytte kretsen mot skade

Vi bør alltid legge til en sikring i serie med strømforsyningen.

Hvis noe shorts eller en MOSFET mislykkes, vil sikringen bryte først og lagre kretsen fra å brenne.

Hvis MOSFET -ene mislykkes, er de noen ganger svikter de (noe som betyr at de alltid holder seg på).

Hvis det skjer, kan enorme strøm strømme og skade transformatoren eller andre deler.

Så det er alltid bra å sjekke MOSFET -ene ved hjelp av et multimeter før du bruker høy effekt.

Konklusjon

Så her så vi hvordan vi kan lage en sinusbølgeomformer ved å bruke Just Arduino og en H-Bridge MOSFET-krets. Vi brukte IR2110 MOSFET-drivere for å bytte MOSFETS og PWM-kontrollen riktig fra Arduino for å generere vår sinusmodulerte AC.

En ting å huske er at denne utgangen fremdeles er laget av hurtigbyttepulser, så hvis vi trenger en ren sinusbølge, må vi legge til et LC-filter ved utgangen for å glatte den ut.

Men totalt sett er dette en veldig praktisk og enkel måte å lage en sinusbølgeomformer hjemme!