H-brug sinusgolf omvormer circuit met behulp van Arduino

Probeer Ons Instrument Voor Het Oplossen Van Problemen





Inzicht in het circuitontwerp

Als u niet de hele uitleg wilt lezen, kunt u deze video in plaats daarvan bekijken:

  Waarschuwingsbericht: elektriciteit is gevaarlijk, ga met voorzichtigheid door

Laten we nu het circuitdiagram hieronder bekijken en leren hoe dit ding daadwerkelijk werkt. We zien de volgende hoofdonderdelen in het circuit:



  Arduino Sine Wave Full Bridge Inverter Circuit Diagram

Arduino Board - Dit is ons brein. Het geeft SPWM -pulsen uit die beslissen hoe ons circuit zal worden uitgevoerd.

IR2110 MOSFET Driver ICS (IC1 en IC2) -Deze apparaten nemen de standaard SPWM-signalen van Arduino en maken ze compatibel om de 4 N-kanaal H-Bridge MOSFET's goed te schakelen, met behulp van bootstrapping-methode.



MOSFETS (Q1, Q2, Q3, Q4) - Dit zijn de stroomschakelaars. Ze zetten de DC -stroom in en uit op een specifieke manier om AC te maken bij de uitvoer.

Diodes (1N4007) en condensatoren - Deze zijn voor het mogelijk maken van de juiste werking van het bootstrapping -netwerk van de ICS voor het perfecte omschakelen van de 4 MOSFET's.

Andere condensatoren en weerstanden - Deze zijn klein maar erg belangrijk omdat ze alles soepel laten draaien.

Stroomvoorziening - We hebben +12V en +5V nodig voor Arduino en de IR2110 IC's, en een hoge DC -spanning voor de MOSFET's, volgens de belastingspecificaties.

Wat gebeurt er in het circuit?

Laten we nu eens kijken hoe dit stap voor stap werkt:

Arduino genereert SPWM -signalen op twee uitgangspennen (pin 8 en pin 9). Deze signalen blijven de breedte veranderen om een ​​vorm te creëren die equivalent is aan een AC -sinusgolf.

IR2110 IC's ontvangen deze PWM -signalen en gebruiken ze om de MOSFET's op en uit te schakelen op een zeer specifieke manier.

De H-brug gemaakt met behulp van vier MOSFET's zet de DC-busvoorziening om in AC-achtige uitgang door de huidige richting door de belasting te schakelen met behulp van de SPWM-schakelaar.

Bij de output krijgen we een sinusgolfbenadering, wat betekent dat het eruit ziet als een sinusgolf, maar eigenlijk is gemaakt van snelle pulsen.

Als we een filtercircuit bij de uitgang toevoegen, kunnen we deze pulsen gladmaken en een perfectere sinusgolf krijgen.

Onze Arduino -code voor sinusgolf PWM

Dus laten we nu de code zien. Dit is wat de Arduino zal draaien om de SPWM -signalen te genereren.

835EA94849999CA2B1A94FC3D1BB3E885B51FF2262

Wat is er aan de hand in deze code?

Eerst hebben we twee uitgangspennen ingesteld (pin 8 en pin 9). Deze sturen onze PWM -signalen uit.

Vervolgens zetten we in de lus de pin in en uit in een speciaal patroon.

We beginnen met smalle pulsen en verhogen geleidelijk de pulsbreedte en dan verminderen we deze terug. Dit creëert een getrapte sinusgolf PWM -patroon.

Nadat de eerste helft cyclus is gedaan, herhalen we hetzelfde op de andere pin (pin 9) voor de volgende cyclus.

Op deze manier schakelt onze H-brug de MOSFET's in een goede sinusvormige golfachtige mode.

Wat is goed aan dit ontwerp

Het ontwerp is eigenlijk heel eenvoudig. We gebruiken slechts een Arduino en enkele veel voorkomende componenten.

We hebben hier geen sinusgolfgenerator nodig, toch. De Arduino zelf maakt de sinusvorm met SPWM.

De H-Bridge werkt efficiënt met behulp van de IR2110 IC's om ervoor te zorgen dat de MOSFET's correct schakelen zonder oververhitting.

We kunnen de SPWM gemakkelijk afstemmen, voor het geval we een andere sinusgolffrequentie willen, dan wijzigen we de code gewoon een beetje aan.

Hoe we de Arduino -opstartvertraging moeten aanpakken

Nu een heel belangrijk ding dat we moeten begrijpen, is dat Arduino wat tijd nodig heeft om te beginnen nadat we de stroom inzetten.

Dit gebeurt omdat wanneer we de Arduino aanzetten, het eerst zijn interne bootloader uitvoert die een paar seconden duurt.

Dus gedurende deze tijd ontvangen de IR2110 Gate Driver ICS en MOSFET's mogelijk geen goede signalen van Arduino.

Als dat gebeurt, kunnen de MOSFET's willekeurig worden ingeschakeld die de ICS onmiddellijk kunnen beschadigen, of een kortsluiting of explosie kunnen veroorzaken.

Om ervoor te zorgen dat de bovenstaande opstartvertraging de ICS en de MOSFET's niet verbrandt tijdens de initiële kracht, moeten we de bovenstaande code wijzigen zoals hieronder getoond:

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

Onderdelenlijst

Arduino Board Arduino Uno (of een compatibele bord) 1
MOSFET Driver IC IR2110 High & Low Side Driver 2
Mosfets IRF3205 (of vergelijkbaar N-kanaal) 4
Diodes 1N4007 (voor bootstrap & bescherming) 4
Weerstanden 1KΩ 1/4W (MOSFET GATE PULL DOWN) 4
Weerstanden 150Ω 1/4W (MOSFET GATE -serie weerstand) 4
Condensatoren 100nf (bootstrap condensator) 2
Condensatoren 22UF 25V (voedingsfilter) 2
Laden Elke resistieve of inductieve belasting 1
Stroomvoorziening +12V DC (voor MOSFETS) & +5V DC (voor Arduino) 1
Draden en connectoren Geschikt voor circuitverbindingen Indien nodig

Bouwtips

Als we nu dit ding bouwen, moeten we heel voorzichtig zijn met een paar belangrijke dingen. Anders werkt het misschien niet of erger, er kan iets opbranden, toch? Dus hier zijn enkele super belangrijke bouwtips die we moeten volgen:

Hoe we de onderdelen op het bord moeten regelen

Als we een breadboard gebruiken, werkt dit circuit mogelijk niet goed omdat krachtige MOSFET's en bestuurders sterke, solide verbindingen nodig hebben.

We moeten dus een PCB (gedrukte printplaat) of op zijn minst een perf -bord gebruiken en de onderdelen op de juiste manier solderen.

Als we een PCB maken, moeten we de MOSFET's en IR2110 IC's dicht bij elkaar houden, zodat signalen niet zwak of vertraagd worden.

De dikke draden moeten gaan voor hoge stroompaden zoals van de voeding tot de MOSFET's en van de MOSFET's tot de belasting.

De dunne draden kunnen alleen worden gebruikt voor signaalverbindingen zoals van Arduino naar de IR2110 IC's.

Hoe we de mosfets moeten plaatsen

De vier MOSFET's moeten in een juiste H-brugvorm worden geplaatst zodat de bedrading niet rommelig wordt.

Elke MOSFET moet korte en dikke verbindingen hebben met de IR2110 IC.

Als we de MOSFET's te ver van de IR2110 plaatsen, kunnen de signalen zwak worden en kunnen de MOSFET's niet goed schakelen.

Als dat gebeurt, kunnen de MOSFET's warm worden en zelfs opbranden.

Hoe we het warmteprobleem moeten oplossen

Als we IRF3205 MOSFET's of soortgelijke gebruiken, dan zullen ze opwarmen als we ze geen koellichaam geven.

We moeten dus een grote aluminium koellichaam op de MOSFET's repareren om ze koel te houden.

Als we een krachtige omvormer maken (meer dan 100 W), moeten we ook een koelventilator op de koellichaam bevestigen.

Als de MOSFET's te heet worden om aan te raken, betekent dit dat er een probleem is en we moeten het circuit opnieuw controleren.

Hoe we het circuit moeten voeden

Het Arduino -deel loopt op 5V en de MOSFET's hebben 12V of meer nodig om te werken.

We moeten dus nooit 12V verbinden met Arduino, of het zal onmiddellijk branden!

De IR2110 IC's hebben twee voedingen nodig:

12V voor de hoog-zij-mosfets

5V voor het logische gedeelte

Als we deze elektriciteitsleidingen mengen, werkt het circuit niet goed en schakelen de MOSFET's niet correct.

Hoe we de draden moeten aansluiten

De grond (GND) verbinding is super belangrijk. Als de grondbedrading zwak of lang is, kan het circuit zich vreemd gedragen.

We moeten een gemeenschappelijke grond voor alle delen gebruiken, wat betekent dat de Arduino -grond, IR2110 grond en MOSFET -brongrond met elkaar moeten worden verbonden.

Als we het circuit vreemd zien gedragen (zoals de output flikkeren of MOSFET's zonder belasting warm worden), moeten we eerst de grondverbindingen controleren.

Hoe we het circuit moeten controleren voordat we het opdrijven

Voordat we de stroom inschakelen, moeten we alle verbindingen dubbel controleren om te zien of alles correct is.

Als we een multimeter hebben, moeten we deze gebruiken om de spanningen op verschillende punten te controleren voordat we de MOSFET's invoegen.

We hebben strikt een oscilloscoop nodig zodat we de SPWM -signalen kunnen controleren die van Arduino komen om te zien of ze er correct uitzien.

Hoe we het circuit zorgvuldig moeten testen

De beste manier om dit circuit veilig te testen is door te beginnen met een lage spanning.

In plaats van 12V kunnen we eerst proberen met 6V of 9V om te zien of de MOSFET's correct schakelen.

Als het circuit goed werkt bij lage spanning, kunnen we langzaam toenemen tot 12V en uiteindelijk naar de volledige spanning.

Als we plotseling de volledige spanning toepassen en er is iets mis, dan kan er meteen iets opbranden!

We moeten dus stap voor stap testen en blijven controleren op oververhitting of verkeerd gedrag.

Hoe we een filter kunnen toevoegen voor een soepelere uitgang

Dit circuit maakt een AC -uitgang met behulp van PWM, maar het is nog steeds gemaakt van snelle pulsen.

Als we een schone sinusgolf willen, moeten we een LC -filter toevoegen aan de uitgang.

Dit LC -filter is slechts een grote inductor en een condensator die is aangesloten op de uitgang.

De inductor verwijdert de snelle schakelpulsen en de condensator maakt de golfvorm glad.

Als we dit goed doen, kunnen we een pure sinusgolf krijgen die veilig is voor apparaten.

Hoe we het circuit moeten beschermen tegen schade

We moeten altijd een zekering in serie toevoegen met de voeding.

Als er iets shorts of een MOSFET faalt, breken de zekering eerst en redt het circuit van het verbranden.

Als de MOSFET's falen, falen ze soms kortgeknipt (wat betekent dat ze altijd blijven).

Als dat gebeurt, kan een enorme stroom stromen en de transformator of andere delen beschadigen.

Het is dus altijd goed om de MOSFET's te controleren met behulp van een multimeter voordat u hoog vermogen aanbrengt.

Conclusie

Dus hier zagen we hoe we een sinusgolfomvormer kunnen maken met alleen Arduino en een H-Bridge MOSFET-circuit. We hebben IR2110 MOSFET-stuurprogramma's gebruikt om de MOSFET's en PWM-regeling van Arduino goed te wisselen om onze door sinus gemoduleerde AC te genereren.

Nu een ding om te onthouden is dat deze uitgang nog steeds is gemaakt van snelle pulsen, dus als we een pure sinusgolf nodig hebben, moeten we een LC-filter aan de uitgang toevoegen om het glad te strijken.

Maar over het algemeen is dit een zeer praktische en gemakkelijke manier om thuis een sinusgolfomvormer te maken!