A simple yet useful Microprocessor based Arduino full-bridge inverter circuit can be built by programming an Arduino board with SPWM and by integrating a few mosfets with in H-bridge topology, let's learn the details below:
In one of our earlier articles we comprehensively learned how to build a simple Arduino sine wave inverter, here we will see how the same Arduino project could be applied for building a simple full bridge or an H-bridge inverter circuit.
Using P-Channel and N-Channel Mosfets
To keep things simple we will use the P-channel mosfets for the high side mosfets and N-channel mosfets for the low side mosfets, this will allow us to avoid the complex bootstrap stage and enable direct integration of the Arduino signal with the mosfets.
Usually N-channel mosfets are employed while designing full bridge based inverters, which ensures the most ideal current switching across the mosfets and the load, and ensures a much safer working conditions for the mosfets.
However when a combination of and p and n channel mosfets are used, the risk of a shoot through and other similar factors across the mosfets becomes a serious issue.
Having said that, if the transition phases are appropriately safeguarded with a small dead time, the switching can be perhaps made as safe as possible and blowing of the mosfets could be avoided.
In this design I have specifically used Schmidt trigger NAND gates using IC 4093 which ensures that the switching across the two channels are crisp, and it's not affected by any kind of spurious transients or low signal disturbance.
Gates N1-N4 Logic Operation
When Pin 9 is logic 1, and pin 8 is logic 0
- N1 output is 0, Top Left p-MOSFET is ON, N2 output is 1, the Lower Right n-MOSFET is ON.
- N3 output is 1, Top Right p-MOSFET is OFF, N4 output 0, Lower Left n-MOSFET is OFF.
- The exactly same sequence happens for the other diagonally connected MOSFETs, when pin 9 is logic 0, and pin 8 is logic 1
How it Works
As shown in the above figure, the working of this Arduino based full bridge sinewave inverter can be understood with the help of the following points:
The Arduino is programmed to genearte appropriately formatted SPWM outputs from pin#8 and pin#9.
While one of the pins is generating the SPWMs, the complementary pin is held low.
The respective outputs from the above mentioned pinouts are processed through Schmidt trigger NAND gates (N1---N4) from the IC 4093. The gates are all arranged as inverters with a Schmidt response, and fed to the relevant mosfets of the full bridge driver network.
While pin#9 generates the SPWMs, N1 inverts the SPWMs and ensures the relevant high side mosfets responds and conducts to the high logics of the SPWM, and N2 ensures the low side N-channel mosfet does the same.
During this time pin#8 is held at logic zero (inactive), which is appropriately interpreted by N3 N4 to ensure that the other complementary mosfet pair of the H-bridge remains completely switched OFF.
The above criteria is identically repeated when the SPWM generation transits to the pin#8 from pin#9, and the set conditions are continuously repeated across the Arduino pinouts and the full bridge mosfet pairs.
The battery specification selected for the given Arduino full bridge sinewave inverter circuit is 24V/100Ah, however any other desired specification could be selected for the battery as per the user preference.
The transforer primary voltage specs should be slightly lower than the battery voltage to ensure that the SPWM RMS proportionately creates around 220V to 240V at the secondary of the transformer.
The Entire Program Code is Provided in the following article:
4093 IC pinouts
IRF540 pinout Detail (IRF9540 will also have the same pinout config)
An Easier Full-Bridge Alternative
The figure below shows an alternate H-bridge design using P and N channel MOSFETs, which does not depend on ICs, instead uses ordinary BJTs as drivers for isolating the MOSFETs.
The alternate clock signals are supplied from the Arduino board, while the positive and negative outputs from the above circuit is supplied to the Arduino DC input.