• Skip to main content
  • Skip to primary sidebar

Homemade Circuit Projects

Need circuit help? Post them in the comments! I've answered over 50,000!

Blog | Categories | About | Hire Me | Contact | Calculators-online
You are here: Home / Arduino Projects / H-Bridge Sine Wave Inverter Circuit using Arduino

DIY Circuits | Learn Basics | Arduino Coding

H-Bridge Sine Wave Inverter Circuit using Arduino

Last Updated on May 24, 2025 by Swagatam 86 Comments

In this article I will explain how we can build an Arduino-controlled H-Bridge sine wave inverter circuit using some easy parts. So this thing will basically convert DC into AC but in a way that looks like a sine wave, right? We are using an Arduino to generate PWM signals and these signals will drive an H-Bridge circuit made using IR2110 MOSFET driver ICs and power MOSFETs. This setup will allow us to switch MOSFETs in a controlled manner and create an AC output from our DC supply.

Understanding the Circuit Design

If you don't want to read the whole explanation, you can watch this video instead:

Now let us see the circuit diagram below and learn how this thing is actually working. We see the following main parts in the circuit:

Arduino Board – This is our brain. It gives out SPWM pulses that decide how our circuit will run.

IR2110 MOSFET Driver ICs (IC1 and IC2) – These devices take the standard SPWM signals from Arduino and make them compatible to switch the 4 N-channel H-bridge MOSFETs properly, using bootstrapping method.

MOSFETs (Q1, Q2, Q3, Q4) – These are the power switches. They turn the DC power ON and OFF in a specific way to create AC at the output.

Diodes (1N4007) and capacitors – These are for enabling the correct working of the bootstrapping network of the ICs for perfect switching of the 4 MOSFETs.

Other Capacitors and Resistors – These are small but very important because they keep everything running smoothly.

Power Supply – We need +12V and +5V for Arduino and the IR2110 ICs, and a high DC voltage for the MOSFETs, as per the load specifications.

What is Happening in the Circuit?

Now let us see how this works step by step:

Arduino generates SPWM signals at two output pins (Pin 8 and Pin 9). These signals keep changing width to create a shape equivalent to a AC sine wave.

IR2110 ICs receive these PWM signals and use them to switch the MOSFETs ON and OFF in a very specific way.

The H-Bridge made using four MOSFETs converts the DC bus supply into AC-like output by switching the current direction through the load using the SPWM switching.

At the output we get a sine wave approximation which means it looks like a sine wave but is actually made of fast-switching pulses.

If we add a filter circuit at the output then we can smooth these pulses and get a more perfect sine wave.

UPDATE: Get this Improved Arduino SPWM Code

Our Arduino Code for Sine Wave PWM

So now let us see the code. This is what the Arduino will run to generate the SPWM signals.

// By Swagatam 
void setup() {
    pinMode(8, OUTPUT);
    pinMode(9, OUTPUT);
}

void loop() {
    // First half of the sine wave
    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 half of the sine wave
    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);
}

What is Going On in This Code?

First we set up two output pins (Pin 8 and Pin 9). These will send out our PWM signals.

Then in the loop we turn the pin ON and OFF in a special pattern.

We start with narrow pulses and gradually increase the pulse width and then we reduce it back down. This creates a stepped sine wave PWM pattern.

After the first half cycle is done then we repeat the same thing on the other pin (Pin 9) for the next cycle.

This way our H-Bridge switches the MOSFETs in a proper sinusoidal wave like fashion.

What is Good about this Design

The design is actually very simple. We are using just an Arduino and some common components.

We do not need a sine wave generator here, right. The Arduino itself is making the sine shape using SPWM.

The H-Bridge works efficiently using the IR2110 ICs to make sure the MOSFETs switch correctly without overheating.

We can fine tune the SPWM easily, in case we want a different sine wave frequency, then we just modify the code a little.

How We Should Handle the Arduino Booting Delay

Now one very important thing that we must understand is that Arduino takes some time to start after we switch ON the power.

This happens because when we power ON the Arduino then it first runs its internal bootloader which takes a few seconds.

So during this time the IR2110 gate driver ICs and MOSFETs may not receive any proper signals from Arduino.

If that happens then the MOSFETs may turn ON randomly which can damage the ICs instantly, or cause a short circuit or explosion.

In order to make sure that the above booting delay does not burn the ICs and the MOSFETs during the initial power ON, we need to modify the above code as shown below:

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

Parts list

PartSpecificationQuantity
Arduino BoardArduino Uno (or any compatible board)1
MOSFET Driver ICIR2110 High & Low Side Driver2
MOSFETsIRF3205 (or similar N-channel)4
Diodes1N4007 (for bootstrap & protection)4
Resistors1KΩ 1/4W (MOSFET gate pull-down)4
Resistors150Ω 1/4W (MOSFET gate series resistor)4
Capacitors100nF (bootstrap capacitor)2
Capacitors22uF 25V (power supply filter)2
LoadAny resistive or inductive load1
Power Supply+12V DC (for MOSFETs) & +5V DC (for Arduino)1
Wires & ConnectorsSuitable for circuit connectionsAs needed

Construction Tips

Now when we actually build this thing we have to be very careful about a few important things. Otherwise it may not work or worse, something may burn out right? So here are some super important construction tips that we must follow:

How We Should Arrange the Parts on the Board

If we use a breadboard then this circuit may not work well because high-power MOSFETs and drivers need strong, solid connections.

So we should use a PCB (Printed Circuit Board) or at least a perf board and solder the parts properly.

If we make a PCB then we must keep the MOSFETs and IR2110 ICs close together so that signals do not become weak or delayed.

The thick wires should go for high current paths like from the power supply to the MOSFETs and from the MOSFETs to the load.

The thin wires can be used only for signal connections like from Arduino to the IR2110 ICs.

How We Should Place the MOSFETs

The four MOSFETs should be placed in a proper H-Bridge shape so that the wiring does not become messy.

Each MOSFET should have short and thick connections to the IR2110 IC.

If we place the MOSFETs too far from the IR2110 then the signals may become weak and the MOSFETs may not switch properly.

If that happens then the MOSFETs can get hot and even burn out.

How We Should Fix the Heat Issue

If we use high current IRF3205 MOSFETs or similar ones, then they will heat up if we do not give them a heatsink.

So we must fix a big aluminum heatsink to the MOSFETs to keep them cool.

If we are making a high-power inverter (more than 1000 W) then we should also attach a cooling fan on the heatsink.

If the MOSFETs get too hot to touch then it means there is some issue and we need to check the circuit again.

How We Should Power the Circuit

The Arduino part runs on 5V and the MOSFETs need 12V or more to work.

So we must never connect 12V to Arduino, or it will burn instantly!

The IR2110 ICs need two power supplies:

12V for the high-side MOSFETs

5V for the logic section

If we mix up these power lines then the circuit will not work properly and the MOSFETs will not switch correctly.

How We Should Connect the Wires

The ground (GND) connection is super important. If the ground wiring is weak or long, then the circuit may behave weirdly.

We should use a common ground for all parts, meaning the Arduino ground, IR2110 ground and MOSFET source ground must be connected together.

If we see the circuit behaving strangely (like the output flickering or MOSFETs getting warm without a load), then we should check the ground connections first.

How We Should Check the Circuit Before Powering It Up

Before we switch ON the power we must double-check all connections to see if everything is correct.

If we have a multimeter then we should use it to check the voltages at different points before inserting the MOSFETs.

We will strictly need an oscilloscope so that we can check the SPWM signals coming from Arduino to see if they look correct.

How We Should Test the Circuit Carefully

The best way to test this circuit safely is by starting with a low voltage.

Instead of 12V we can first try with 6V or 9V to see if the MOSFETs are switching correctly.

If the circuit works well at low voltage then we can slowly increase to 12V and finally to the full voltage.

If we suddenly apply full voltage and something is wrong then something may burn out instantly!

So we must test step by step and keep checking for overheating or wrong behavior.

How We Can Add a Filter for a Smoother Output

This circuit makes an AC output using PWM but it is still made of fast pulses.

If we want a clean sine wave then we must add an LC filter at the output.

This LC filter is just a big inductor and a capacitor connected to the output.

The inductor removes the fast switching pulses and the capacitor smooths out the waveform.

If we do this properly then we can get a pure sine wave that is safe for appliances.

How We Should Protect the Circuit from Damage

We should always add a fuse in series with the power supply.

If something shorts or a MOSFET fails then the fuse will break first and save the circuit from burning.

If the MOSFETs fail then sometimes they fail shorted (meaning they always stay ON).

If that happens then huge current can flow and damage the transformer or other parts.

So it is always good to check the MOSFETs using a multimeter before applying high power.

Conclusion

So here we saw how we can make a sine wave inverter using just Arduino and an H-Bridge MOSFET circuit. We used IR2110 MOSFET drivers to properly switch the MOSFETs and PWM control from Arduino to generate our sine-modulated AC.

Now one thing to remember is that this output is still made of fast-switching pulses so if we need a pure sine wave then we must add a LC filter at the output to smooth it out.

But overall this is a very practical and easy way to make a sine wave inverter at home!

You'll also like:

  • Interfacing SD Card Module for Data Logging
  • Over Current Cut-off Power Supply Using Arduino
  • How to Build a 400 Watt High Power Inverter Circuit
  • P 20160813 150716Arduino Digital Clock Using RTC Module

Filed Under: Arduino Projects, Inverter Circuits Tagged With: Arduino, Bridge, Inverter, Sine, Wave

About Swagatam

I am an electronics engineer and doing practical hands-on work from more than 15 years now. Building real circuits, testing them and also making PCB layouts by myself. I really love doing all these things like inventing something new, designing electronics and also helping other people like hobby guys who want to make their own cool circuits at home.

And that is the main reason why I started this website homemade-circuits.com, to share different types of circuit ideas..

If you are having any kind of doubt or question related to circuits then just write down your question in the comment box below, I am like always checking, so I guarantee I will reply you for sure!

Previous Post: « Explained: MAX4466 Electret Microphone Amplifier Module with Adjustable Gain
Next Post: Make this 220V to 12V SMPS Using UC2842 IC »

Reader Interactions

Comments

Umar says:
April 21, 2026 at 11:14 am

Hello, sir Swagatam. I tried doing your circuit but it didn’t work when I tried it exactly on the proteus 9. I tried running the simulation, I used the AC voltmeter and no voltage. Also, I tried using the oscilloscope, but there is no sine wave.

Reply
Swagatam says:
April 21, 2026 at 11:36 am

Hello Umar, the above circuit has no problems…everything is correct in the concept, and it will work if you build it practically.
If your proteus is not working, please try to find out why the software is unable to simulate this correctly designed circuit…

Reply
Umar says:
April 22, 2026 at 8:47 am

I’m very sorry, sir. I tried it again and it actually work, but the problem is on the Proteus itself where the timestep has its limit, this is due because of my laptop cpu core is at 100%, so the simulation itself is not running in real-time and its delayed. Also, if I change the Load into LC filter and then use trafo will it work sir? Sir, sorry for asking too many I also want to know if you have a paper for this or any reference paper for this circuit. Thank you very much, sir.

Reply
Swagatam says:
April 22, 2026 at 2:10 pm

Thank you Umar, I understand your problem, but I am not so sure about proteus results, since i have not used it for this circuit so far…if you are using a transformer, ten LC filter will not be required…you can connect the trafo primary directly in place of the load..
This circuit was designed by me so I don’t have any reference paper, but i can answer any question you have and solve all you doubts, if you have any…so you can feel free to ask them here…

Reply
Julius Lyonga Luma Breeze says:
April 20, 2026 at 12:25 am

Sir please I need help to generate a pwm inverter signal with a pic16f877a

Reply
Swagatam says:
April 20, 2026 at 9:04 am

Hi Julius,
I will try to update the code for you soon….please keep in touch…

Reply
Ali Abdelhadi says:
April 17, 2026 at 6:28 pm

since the IR2110 already provides proper gate charging and discharging current for the MOSFETs, what is the actual purpose of placing a 1k resistor between the gate and source?

Reply
Swagatam says:
April 18, 2026 at 7:58 am

It is to ensure the MOSFET never remains floating even for a microsecond during the transitions, or under any any other circumstances…it provides the MOSFFET gate a guaranteed 0V, under no voltage condition at its gate.

Reply
Ali Abdelhadi says:
April 17, 2026 at 2:52 pm

Hi sir,
Sorry for the many questions, and thank you very much for your patience.
I noticed that during dead-time
(when both HIN and LIN are LOW), the VS node still shows a small fluctuating voltage.

This causes my load to receive a small voltage even though both MOSFETs are OFF.

Is this normal? If not, what could cause it and how can I fix it I searched the whole internet and couldnt find answer ?

Reply
Swagatam says:
April 17, 2026 at 5:04 pm

Hi Ali,
That doesn’t look possible to me, because if all the MOSFETs are turned OFF, then the load cannot get any voltage. I think what you are seeing is parasitic voltage, and can be eliminated with a capacitor across the load terminals…
I hope you have connected the 1k resistors directly across the MOSFET gate/source terminals…
So now, please connect a capacitor across the load, having voltage rating higher than the max load voltage rating, and then check the response.

Reply
Ali Abdelhadi says:
April 17, 2026 at 6:46 pm

in the Application Note AN-978, there is a statement referring to parasitic voltages on the switching node. I will write the quote here
“2.3 High-Side Channel
This channel has been built into an “isolation tub” (Figure 3) capable of floating from 500 V or
1200 V to -5 V with respect to power ground (COM). The tub “floats” at the potential of VS.
Typically this pin is connected to the source of the high-side device, as shown in Figure 2 and
swings with it between the two rails”
Could you confirm if my understanding is correct .
My understanding is that VS is a floating node, and therefore in idle or dead-time conditions the output is not necessarily 0V. Instead, VS can show a small voltage (for example 2V, 10V, or 12V), depending on parasitic effects.
This voltage is not a real driven output from the IC, but rather caused by parasitic capacitances and leakage currents.
Also, when a load is connected, this voltage drops significantly, but it does not behave like a solid regulated output.
Is this interpretation correct?

Reply
Swagatam says:
April 18, 2026 at 8:02 am

Yes, that’s correct!

Reply
Ali Abdelhadi says:
April 17, 2026 at 6:13 pm

Hi, thanks for your suggestion.
The issue is that I already checked those points (gate pull-down resistors, wiring, and I also tried adding a capacitor across the load). However, I noticed something important: VS seems to remain floating, and as soon as I connect the diode between VB and VCC, I start measuring a small voltage appearing on VS.
This voltage looks like a parasitic/leakage voltage because it drops when the load resistance decreases, but I’m not 100% sure yet.
What confuses me is that I tested the circuit in a very simplified setup: I removed all MOSFETs, load wiring, and other components, and kept only the IR2110 with VB connected to VCC through a diode. Even in this case, I still see that VS itself is the source of that small voltage, not the MOSFETs and not any parasitic conduction through the power stage.
So my question is:
Is it normal for VS to float in idle mode?
And is it normal that VS can provide a very small voltage to the load (for example, I tested it with an LED and it still shows a small effect)?
Also, I’m using a Half-Bridge configuration (not a full bridge).
If this behavior is expected, what is the proper solution for sensitive loads where we need 0V at the output during IR2110 idle state, without any small residual/parasitic voltage coming from VS?

Reply
Swagatam says:
April 18, 2026 at 7:55 am

Yes this is normal. In IR2110, the VS is a floating node and will remain un-defined in idle when no MOSFET or load path is present. The small voltage you see is due to internal leakage and capacitive coupling inside the IC, not the real output power, just a high impedance effect.

To fix this, you can add a pull-down resistor (around 47k–100k) from VS to ground so that the node stays at 0V during idle and eliminates the residual voltage.

Reply
Ali Abdelhadi says:
April 14, 2026 at 10:23 pm

hi sir
If I use an isolated DC-DC converter to supply the IR2110 through the VB and VS pins in order to eliminate the bootstrap circuit for very low-frequency operation, and if I use two IR2110 ICs for a full-bridge application, do I need two isolated DC-DC converters or is one sufficient to supply both IR2110 drivers?

Reply
Swagatam says:
April 15, 2026 at 1:41 pm

Hi Ali, you will need two separate DC DC converters for the two high side MOSFETs of the two H bridge ICs…

Reply
EZEKIEL OBINNA says:
April 7, 2026 at 5:25 pm

THANKS SO MUCH SIR , FOR YOUR WELL FAVOUEBLE CONCERN ON CIRCUITHOME MADEINVENTION..
PLEASE, USING PROTUSE TO RUN THIS TEAST IS IT RECOMENDABELE.. WILL IT GIVE AN EFFICIENT TEST RUNNING CONFIRMATION BEFORE TRANSITIONING TO THE REAL HARDWARE ASSEMBLY.

Reply
Swagatam says:
April 8, 2026 at 8:06 am

Obinna, You can simulate the circuit on any suitable software to confirm the results…

Reply
Ali Abdelhadi says:
March 24, 2026 at 5:35 pm

Hi, thank you so much for your efforts.
There is something I don’t understand about the IR2110 IC. I saw that VIL is about 6V and VIH is about 9.5V, and I thought these values are not compatible with Arduino. So how did it work for you? I believe that VIL and VIH values correspond to the logic levels coming from the Arduino PWM output. Can you explain if I misunderstood something? Thanks in advance.

Reply
Swagatam says:
March 25, 2026 at 7:58 am

Hi, the 6V is used for the internal working of the IC, and the 9.5V or 12V supply to the IR2110 is meant for driving the MOSFETs, they do not interfere with the Arduino 5V
The job of Arduino is to feed the 5V logic signals to the IR2110 which then responds to these signals by switching the MOSFETs accordingly. The IR2110 HIN and LIN inputs are TTL compatible so they accept the 5V signals without any issues and drives the H bridge MOSFETs….

Reply
Ali Abdelhadi says:
March 29, 2026 at 6:08 pm

what if I wanna do it with esp32 (which is 3.3v pwm) can you give me some information?thanks in advance

Reply
Swagatam says:
March 30, 2026 at 8:51 am

Yes, you can use ESP32 directly because its 3.3V PWM is compatible with IR2110 logic input. Just make sure the ESP32 ground is common with the driver stage, while IR2110 keeps using the 12V supply for gate driving. ESP32 is actually better because it provides precise hardware PWM and dead-time control through MCPWM which makes sine-wave inverter operation more stable than Arduino.

Reply
Abdulhadi Bahder says:
November 12, 2025 at 5:38 pm

How to know the switching frequency of the PWM from the code you used and how to increase it.
I’m trying to design an LC filter
Output voltage (rms) = 8.46
Output power = 10W
Output frequency = 50Hz
And I put 300Hz cut off frequency
I’m getting 3.8mH and 72uF which is large
If I increased the switching frequency to 20kHz
Then I can select a cut off frequency of 5000 so the filter will be smaller

Reply
Swagatam says:
November 12, 2025 at 6:09 pm

If you add up the microseconds for each cycle, it gives 10ms, and for both cycles it is 20ms, so the frequency becomes 50Hz…

Reply
Abdulhadi Bahder says:
November 12, 2025 at 6:13 pm

Sorry I meant the switching frequency of the triangle wave that’s being compared with a sine wave to produce the pwm waves

Reply
Swagatam says:
November 13, 2025 at 7:51 am

There’s no triangle wave comparison in Arduino, the SPWM is generated directly by the Arduino. If you want to change the number of blocks inside each SPWM waveformm, then you can use the following code concept instead…
https://www.homemade-circuits.com/sine-table-calculator-for-spwm-arduino-code/

Reply
emanuele coppeta says:
September 22, 2025 at 1:49 pm

Hi, I saw your diagram. If I size the components, can it be used for 5kW? I look forward to hearing from you.
Best regards.

Reply
Swagatam says:
September 22, 2025 at 4:31 pm

Yes, definitely, the inverter can be upgraded to any higher power level, by modifying the MOSFET/IGBTs accordingly and by adding suitably selected the snubber values…
https://www.homemade-circuits.com/rc-snubber-calculator-for-mosfets-relay-contacts-and-triacs/

Reply
Angel Gutierrez says:
September 13, 2025 at 3:38 am

Hi Swagatam. Thanks for sharing your project and making it available to everyone. I know very well the effort that goes into any type of project like this. I also love to do projects like this, and I’ve been thinking about making a 12 DC to 220 VA converter for a while. It’s been a while. At work, I’ve worked with circuits using the IR2110 and IRPF460 MOSFETs that can withstand up to 500 V. They worked with voltages of 340 V DC and everything went very well. The circuits worked very well because the consumption was constant. They lasted for years. But if there was any instability in the consumption, everything would explode. Please don’t take this the wrong way, these are just suggestions for your project. The Arduino is powered with 12 V. I think it would be with the yellow +5 V line. It occurs to me that to perhaps improve the project, a small 220/12V transformer could be used to output a sample that, once rectified, would then be fed to pin A0 of the Arduino. This would attempt to block the MOSFET gate voltage as quickly as possible. This would also provide a reference for increasing or decreasing the MOSFET pulse width based on the power consumption variation. Perhaps an optocoupler connected to the load output would be faster, acting very quickly on the MOSFET gates, blocking them, or on the IR2110s, which would then block the MOSFETs quickly. My experience is that if this isn’t done quickly, the MOSFETs will eventually blow. These are just a few ideas; I hope you don’t find this intrusive to your project. Thanks for everything, Swagatam.

https://www.homemade-circuits.com/wp-content/uploads/2025/09/arduino-sine-wave-full-bridge-inverter-circuit-diagram-1000×357-1.jpg

Reply
Swagatam says:
September 13, 2025 at 1:14 pm

Thank you very much Angel,
I appreciate your kind efforts to provide the useful safety suggestions for ensuring a long lasting sine wave inverter design.
I am sure the other readers will find the information very helpful…
Additional, please also consider putting snubbers across each of the MOSFETs:
https://www.homemade-circuits.com/explained-snubber-circuit-for-mosfet-h-bridge/

Reply
Angel Gutierrez says:
September 15, 2025 at 9:08 pm

Thanks, Swagatam, installing snubbers could be a great solution. I’m currently quite busy with two projects I’m working on. I hope I can find a time to build your project; it’s sparked a lot of interest. Thank you so much for sharing your information. You have a very interesting blog. Best regards, and thank you.

Reply
Swagatam says:
September 16, 2025 at 8:03 am

You are most welcome Angel,
I am very glad that you liked the project and found it interesting.
Yes, snubbers can be really helpful in improving stability.
All the best with your projects, and let me know if you need any help later.

Reply
Samuel says:
September 16, 2025 at 7:35 pm

Hello Mr Swagatm Good day I am a great fan of your page and have been on many many of your projects in inverter design. Sir I build a 1kva 12v inverter with sg3525 and this Mos H drive but I got 9V spwm pure sign wave signal from sg3525 and ne555 and fed it to the ir2110 Mos H driver then the output from ir2110 driver is 7v which is connected as above circuit to the MOSFET 3205 but what am getting at the out put is 7vdc niit AC and it cannot drive the 12v- 220v AC transformer connected to the out out please what could be the issue

Reply
Swagatam says:
September 17, 2025 at 8:29 am

Thank you Samuel for your kind words, it is much appreciated!!
Yes, when an SPWM is used, it chops the 50 Hz frequency into narrow/wide sequencing blocks causing the average voltage of the pulses to drop, but the peak of these SPWM pulses remains always the same as the MOSFET drain voltage, which is 12V in your case.
To confirm this please check the output with an oscilloscope and check if the peak level is 12V.
Once you confirm this and also the SPWM waveform, then you must replace the 0-12V transformer with a 0-6V transformer and check the results further…

Reply
ART says:
July 14, 2025 at 2:32 am

in the US we use 120 output. but the dc voltage is in my case is 260 volts. how dose it keep the the 120 at the output. yea as the battery’s run down it still keeps the 120 until it goes below 170 dc and at 145 it shuts down. it must be in the code of the the microconntroler. can you help with this, hope you under stand this.

Reply
Swagatam says:
July 14, 2025 at 8:32 am

You can simply do it by configuring a feedback network from the output AC of the inverter to the SD pins of the IR2110, through an opto-coupler. I will try to update the design soon…

Reply
ART says:
July 14, 2025 at 2:06 am

wow great that you have this one all over the web, don’t tell no one but you are going to give the other people a run for your money. just looking at i know its great. i have three projects in the works because of your web site, thanks you are a god.

Reply
Swagatam says:
July 14, 2025 at 8:35 am

Thanks for your amazing words, glad you are finding the concepts helpful…please keep up the good work!

Reply
Abhinav says:
July 10, 2025 at 11:48 am

-heyy
25uf 25v cap is elctrolite and 100nf is ceramic right??

Reply
Swagatam says:
July 10, 2025 at 1:24 pm

Yes, that’s correct…

Reply
Abhinav says:
June 28, 2025 at 7:44 pm

Hey as i posted earlier how should i power the circuit i meant to say how do i power the dc input to convert in ac should i use 12v ??? directly or i have to use any other circuit before injecting the voltage in the drain of mosfet plz reply ?

Reply
Swagatam says:
June 29, 2025 at 7:39 am

Hi, If you want to use 12V-220V transformer at the “load” side then you can supply 12V DC from the battery to the drains of the MOSFETs. If you want to get 220V at the “load” side without a transformer, then you must use a 220V DC across the drains of the MOSFETs.

Reply
Abhinav says:
June 28, 2025 at 7:32 pm

hey how should we power the circuit ?? can i power directly with 12v dc battery??

Reply
Swagatam says:
June 29, 2025 at 7:37 am

Yes, you can use 12V battery directly to power the 12V supply of the ICs. For the 5V supply make sure to use 7805 IC with the 12V input from the battery.

Reply
Swagatam says:
July 14, 2025 at 8:39 am

You can use 15V as the gate supply for most of the IGBTs.
Just make sure to add snubbers for MOSFETs and also for IGBTs, to make them 100% fail proof:
https://www.homemade-circuits.com/explained-snubber-circuit-for-mosfet-h-bridge/

Reply
Swagatam says:
July 14, 2025 at 8:36 am

No need for any external driver boards, the IR2110 itself is able to provide up to 2 amps for driving the output devices, that means you can create all types of extremely high power inverters with the above configuration.

Reply
ART says:
July 14, 2025 at 3:13 am

yep why make fake chips, to make things difficult.

Reply
ART says:
July 14, 2025 at 3:10 am

you boys are on to something, have to find the right recipe. opti idolators have to be it for high wattage. have not tried it. there is a igbt driver board, tiring to fined the right one.

Reply
ART says:
July 14, 2025 at 2:56 am

hello i used g50t65d these are beasts, but have not figure out the gate voltage to put them fully on. one things is for sure i have not blown one up like the mosfets, i don’t mine when they explode but when they catch fire, that’s when i freak out !!!!

Reply
Swagatam says:
June 16, 2025 at 2:36 pm

….I think 1.72 is correct, because that’s the value of a single half cycle, so for a full cycle 1.72 + 1.72 = 3.44V, which looks close to 3.54V RMS value of 5V..
Jut divide you battery voltage with 1.41, and that would give you the approximate value of the transformer primary…

Reply
View Older Comments

Need Help? Please Leave a Comment! We value your input—Kindly keep it relevant to the above topic! Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

circuit simulator image

Subscribe to get New Circuits in your Email

Categories

  • Arduino Projects (96)
  • Audio and Amplifier Projects (133)
  • Automation Projects (18)
  • Automobile Electronics (103)
  • Battery Charger Circuits (87)
  • Datasheets and Components (109)
  • Electronics Theory (149)
  • Energy from Magnets (27)
  • Games and Sports Projects (11)
  • Grid and 3-Phase (20)
  • Health related Projects (27)
  • Home Electrical Circuits (13)
  • Indicator Circuits (16)
  • Inverter Circuits (96)
  • Lamps and Lights (159)
  • Meters and Testers (72)
  • Mini Projects (28)
  • Motor Controller (68)
  • Oscillator Circuits (28)
  • Pets and Pests (15)
  • Power Supply Circuits (91)
  • Remote Control Circuits (50)
  • Renewable Energy (12)
  • Security and Alarm (64)
  • Sensors and Detectors (106)
  • SMPS and Converters (39)
  • Solar Controller Circuits (60)
  • Temperature Controllers (43)
  • Timer and Delay Relay (50)
  • Voltage Control and Protection (43)
  • Water Controller (37)
  • Wireless Circuits (31)

Other Links

  • Privacy Policy
  • Cookie Policy
  • Disclaimer
  • Copyright
  • Videos
  • Sitemap

People also Search

555 Circuits | 741 Circuits | LM324 Circuits | LM338 Circuits | 4017 Circuits | Ultrasonic Projects | SMPS Projects | Christmas Projects | MOSFETs | Radio Circuits | Laser Circuits | PIR Projects |

Social Profiles

  • Twitter
  • YouTube
  • Instagram
  • Pinterest
  • My Facebook-Page
  • Stack Exchange
  • Linkedin

Recent Comments

  • Swagatam on Simple Circuits using IC 7400 NAND Gates
  • Swagatam on H-Bridge Sine Wave Inverter Circuit using Arduino
  • Swagatam on Automatic Ultrasonic Water Pump Motor Controller Circuit
  • Swagatam on 0 to 50V, 0 to 10amp Variable Dual Power Supply Circuit
  • Swagatam on 0 to 50V, 0 to 10amp Variable Dual Power Supply Circuit

© 2026 · Swagatam Innovations