An Arduino three phase inverter is a circuit which produces a 3 phase AC output through a programmed Arduino based oscillator.
In this post I have explained how to make a simple microprocessor Arduino based 3 phase inverter circuit which could be upgraded as per user preference for operating a given 3 phase load.
We have already studied an effective yet simple 3 phase inverter circuit in one of our earlier posts which relied on opamps for generating the 3 phase square wave signals, while the 3 phase push pull signals for driving the mosfets was implemented using specialized 3 phase driver ICs.
In the present concept also we configure the main power stage using these specialized driver ICs, but the 3 phase signal generator is created using an Arduino.
This is because creating an Arduino based 3 phase driver can be extremely complex and is not recommended. Moreover, it is much easier to get off-the-shelf efficient digital ICs for the purpose at much cheaper rates.
Before building the complete inverter circuit, we first need to program the following Arduino code inside an Arduino UNO board, and then proceed with the rest of the details.
Arduino 3 Phase Signal Generator Code
void setup() {
// initialize digital pin 13,12&8 as an output.
pinMode(13, OUTPUT);
pinMode(12,OUTPUT);
pinMode(8,OUTPUT);
}
void loop() {
int var=0;
digitalWrite(13, HIGH);
digitalWrite(8,LOW);
digitalWrite(12,LOW);
delay(6.67);
digitalWrite(12,HIGH);
while(var==0){
delay(3.33);
digitalWrite(13,LOW);
delay(3.33);
digitalWrite(8,HIGH);
delay(3.34);
digitalWrite(12,LOW);
delay(3.33);
digitalWrite(13,HIGH);
delay(3.33);
digitalWrite(8,LOW);
delay(3.34);
digitalWrite(12,HIGH);
}
}
Original Source: http://forum.arduino.cc/index.php?topic=423907.0
The assumed waveform using the above code could be visualized in the following diagram:
Once you have burned and confirmed the above code in your Arduino, it's time to move ahead and configure the remaining circuit stages.
For this you will need the following parts which hopefully you might have already procured:
Parts Needed
IC IR2112 - 3 nos (or any similar 3 phase driver IC)
BC547 transistors - 3 nos
capacitor 10uF/25V and 1uF/25V = 3 nos each
100uF/25V = 1no
1N4148 = 3nos (1N4148 is recommended over 1N4007)
Resistors, all 1/4 watt 5%
100 ohms = 6nos
1K = 6nos
Constructional Details
To begin with, we join the 3 ICs to form the intended 3 phase mosfet driver stage, as given below:
Once the driver board is assembled, the BC547 transistors are hooked up with the HIN and LIN inputs of the IC, and illustrated in the following figure:
Once the above designs are constructed, the intended result could be quickly verified by switching ON the system.
Remember, the Arduino needs sometime to boot, therefore it is recommended to switch ON the Arduino first and then switch ON the +12V supply to the driver circuit after a few seconds.
How to Calculate the Bootstrap Capacitors
As we can see in the above figures, a circuit requires a couple of external components near the mosfets in the form of diodes and capacitors. These parts play a crucial role in implementing precise switching of the high side mosfets, and the stages are called bootstrapping network.
Although already given in the diagram, the values of these capacitors could be specifically calculated using the following formula:
How to Calculate the Bootstrap Diodes
The above equations can be used for calculating the capacitor value for the bootstrap network, for the associated diode we have to consider the following criteria:
The diodes activate or are enabled in the forward bias mode when the high side mosfets are turned on and the potential around them is almost equal to the BUS voltage across the full bridge mosfet voltage lines, therefore the bootstrap diode must be rated enough to be able to block the full applied voltage as specified in the specific diagrams.
This looks fairly easy to understand, however for calculating the current rating, we may have to do some math by multiplying the gate charge magnitude with the switching frequency.
For example if the mosfet IRF450 is used with a switching frequency of 100kHz, the current rating for the diode would be around 12mA. Since this value looks quite minimal and most diodes would have a much higher current rating than this normally, specific attention may not be essential.
Having said that, the over temperature leakage characteristic of the diode can be a crucial to be considered, especially in situations where the bootstrap capacitor may be supposed to store its charge for reasonably sustained amount of time. In such circumstance the diode will need to be a ultra fast recovery type to minimize the magnitude of charge from being forced back from the bootstrap capacitor towards the supply rails of the IC.
Some Safety Tips
As we all know that mosfets in 3 phase inverter circuits can be quite vulnerable to damage due to many risky parameters involved with such concepts, especially when inductive loads are used. I have already discussed this elaborately in one of my earlier articles, and it is strictly advised to refer to this article and implement the mosfets as per the given guidelines.
Using IC IRS2330
The following diagrams are designed to work as a 3 phase PWM controlled inverter from an Arduino.
The first diagram is wired using six NOT gates from the IC 4049. This stage is used for bifurcating the Arduino PWM pulses into complementary high/low logic pairs so that the a bridge 3 phase inverter driver IC IC IRS2330 can be made compatible with the fed PWMs.
The second diagram from above forms the bridge driver stage for the proposed Arduino PWM, 3 phase inverter design, using the IC IRS2330 bridge driver chip.
The inputs of the IC indicated as HIN and LIN accept the dimensioned Arduino PWMs from the NOT gates and drives the output bridge network formed by 6 IGBTs which in turn drive the connected load across their three outputs.
The 1K preset is used for controlling the over current limit of the inverter by suitably adjusting it across the shut down pin of the I, the 1 ohm sensing resistor may be reduced appropriately if the current a relatively higher current is specified for the inverter.
Wrapping Up:
This concludes our discussion on how to build an Arduino based 3 phase inverter circuit. If you have any further doubts or questions on this subject please feel free to comment and get the replies quickly.
For the PCB Gerber Files and other related files you can refer to the following link:
https://drive.google.com/file/d/1oAVsjNTPz6bOFaPOwu3OZPBIfDx1S3e6/view?usp=sharing
The above details were contributed by "cybrax"
Ericko says
i have tried this code, why my delay just 9ms not 10 ms? please help for this :”
Swagatam says
I am not good with Arduino coding so it can be difficult for me to help in this regard. The code was taken from the following forum:
http://forum.arduino.cc/index.php?topic=423907.0
I think you will need to adjust the delay values in the code appropriately to get the intended results.
Ericko says
it is just like delay(3.3) but execute delay(3)
Swagatam says
Yes, you will have to adjust those delays to match your requirement.
Francesco Cirillo says
Hello thanks for your job
PaxPowers says
Arduino needs sometime to boot <- Arduino is NOT for demanding applications. Its a toy platform for education, going to bite badly if you try demanding things. Its easy – at expense of everything else. It means slow, unreliable, bloated code, capable of using maybe 20% of what AtMega could really do. Microcontrollers on their own boot really fast to take control of their task. Its what they’re made for! Its Arduino, their boot loader and run time that screws it up. Once at this point, you know time has come, you no longer have newbie wishes, time to go write real firmwares, not arduino sketches. Getting rid of their boot loader and replacing it by fast booting firmware or own custom boot loader is a thing in such use case. Real virtue of engineer is to to solve difficult requirements of use cases, and when you make user sequencing power inputs, it means circuit needs more of engineering efforts on it. Additionally, circuits should be designed to survive “default state”. In case of MCU it means circuit should not blow up if MCU goes into reset or fails to boot for whatever reason, be it firmware failure and watchdog firing, or something. It means all critical pin states should be explicitly defined by external pull up or pull down resistors, to be in safe state before MCU takes control over. I dont see explicit pull ups/pull downs on FET driver inputs and that’s #1 improvement to circuit to suggest.
Jorge Castillo says
Hi, thank you for your great explanation!
Can you guide me on how to make a 3 phase half bridge inverter to drive a BLDC using discrete components? I would really like to implement an inverter without using the drivers IC’s, but I wonder how the circuit would change if I desire to control it with an arduino (and of course a different code).
Regards
Swagatam says
A BLDC works using a feedback from the sensors, and I am not sure how a discrete half wave driver IC circuit can be used with a feedback system to control the BLDC motor. At the moment I do not seem to have any such circuit diagram or ideas regarding this subject.
Jorge Castillo says
Thank you for your quick response.
I think I formulated my question the wrong way.
I am currently building a FOC oriented controller and I already have the code for position and currents feedback. I also have a code to generate a SPWM signal from an arduino nano. However, my real question is how would the circuit change if I decide to replace the (IRS2330 IC) with discrete components (such as BJTs, capacitors and resistors) to control the 3 half bridge MOSFETs?Can I proceed with the practical circuit shown in H – bridge bootstrapping from the following link?
https://www.homemade-circuits.com/h-bridge-bootstrapping/
Swagatam says
You can try that circuit, it was tested by other users to be OK, however I have myself not tested it practically…I got this circuit from one of the online forums.
hotaek says
hello i am finding 3- phase bridge to connect with arduino uno 3. the reason i will use 3-phase bridge to rotate bldc motor. i have a logic such like inverter process, for example code can process 3 hall sensor counting and 6 mosfet switching. but i can’t find i can any apply product. so please tell me what i buy any to use my code. thank you.
Swagatam says
Hi, sorry, the above Arduino based 3 phase inverter cannot be used for driving a BLDC with feedback control.
hotaek says
thank you for your quick reply.
i have one question. i thought i can use logic like your upper arduino 3 phase signal generate code.
i think my logic is very same as your generate code.
so i wonder to ask you if i could use upper board.
thank you sir.
Swagatam says
If you want to generate 3 phase square waveform then you can use the above code. You can use an Arduino UNO for this.
Momoh Hassan says
Please sir help me with simple puresine wave inverter circuit diagram
Swagatam says
You can try the following design:
https://www.homemade-circuits.com/wp-content/uploads/2022/04/modified-inverter-using-mosfets.jpg
Connect a 3uF/400V capacitor at the output of the transformer to convert it into an almost pure sine wave inverter circuit.
nadeem says
क्या हम इस को 220वोल्ट से चला सकते है
Swagatam says
You can connect a transformer with the mosfets to get 220V output.
Solartech says
Can this circuit be used for ac induction , if yes to minimize loses.
Swagatam says
Please provide more details on what you mean by AC induction?
Greg Sorter says
This is a good starting point for me. I will be using an Arduino to control a 3 phase IGBT rectifier. The problem is the voltage and frequency of the 3 phase AC input from a generator will be variable, not fixed from 600hz to 1200 hz depending on engine speed. Voltage is linear with frequency. What would you do to sample the output rectifier voltage, AC input frequency, then use that information to generate a square wave of a length that is a percentage of the AC waveform. This would trigger the IGBT for a percentage of the waveform that changes depending on the sampled voltage, say from 50% to 100% of the waveform. I can have a hall sensor pulse input to the Arduino to start the cycle
Swagatam says
Thanks for your question, I appreciate it, however, sorry, I have no ideas…the concept looks quite difficult for me to solve.
Evaisto Chilombo says
Hi, thank for this information. Can one use IR2112 instead?
Swagatam says
Yes you can use IR2112!
Vijay Singh Jakhar says
Hi
I am Vijay Singh Jakhar from Faridabad Haryana India
I am looking for ac induction motor controller
vijsinjak2@gmail.com
What’s app/phone call
+91-7056611119
Thanks with best wishes
Vijay
Swagatam says
Hi,
You can perhaps try the first circuit from this article:
https://www.homemade-circuits.com/3-phase-induction-motor-speed/
Wolfgang Zindler says
Hello Swagatam,
very nice your article!
Could I also use it to control a three-phase motor with sine PWM?
Swagatam says
Thank you Wolfgang,
Yes, 3 phase motor can be also controlled through a PWM across the low side MOSFETs
Amos Owaga says
I want to make a linear speed control for Dc motor ,,but i have no idea on the components that i need for the project may i have your assistance
Swagatam says
You can refer to the following post:
3 Simple DC Motor Speed Controller Circuits Explained
Alfredo Rabago says
Hi Swagatam.
Thanks a lot for share your knowledge with us.
I have some questions, i hope you can help me to clary it.
1) in your last picture, you draw a diode connected to IGBT gate, the cathode of this diode is connected to Arduino (according to your note on this picture), why Arduino is connected on this point? IGBT Gate is handle by IRS2130 and the incoming PWM from Arduino must be connected to Hi and Li, so I can’t understand why you put this diode and the label too “to Arduino”.
2) IRS2330 needs just 3 pwn lines (one per phase), as each phase is connected to IC 4049 or to BC547 in order to generate the complement of each PWM line.
It means, microcontroller must generate just ONE PWM line per phase, it is ok?
3) we have 3 phases, but just thinking in one phase (in order to simplified the question and comments), if I need to generate un AC period with 500 PWM periods (250 for positive half period and 250 for negative half period), in ONE AC period, the Hi pin (IRS2330) will receive 500 PWM and 500 in Li too?
i am trying to full understand that as IRS2330 needs PWM and the complement of it, both pins will have PWM (no zero) on each PWM period…..it means, there is NOT any period where Hi has activity and Li is just zero, is it ok?
I was working on my microcontroller (STM32), generating 6 PWM lines : as example of one phase, the micro was generating for phase T1 ( as example:
Phase T1 (Hi_1), “+” AC half period: 0,10,30,50,90,90,50,30,10,0,0, 0, 0, 0, 0, 0, 0, 0, 0. 0
Phase T1 (Li_1) , “-” AC half period: 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,10,30,50,90,90,50,30,10,0
_____ + AC Half period ____ _____- AC half period _____
As you can see, I was not generating a complementary PWM, when Hi was active, Li was just zero….. and it is not ok,you use always Hi with PMW generated by microcontroler or Hardware and a complementary oh HI, Li.
as you can see, I was going in wrong direction, that is the reason of my questions, I need to understand how PWM must arrived at IRS2330.
I Hope can understand my questions.
best regards and thanks for your help
Alfredo (from Argentina)
Swagatam says
Hi Alfredo,
Thanks for your questions.
In the last diagram, the 3 phase signals are connected to HIN, LIN pins of the IC. The gates of the IGBT through diodes are supposed to be connected to another Arduino PWM output either for RMS control, or for feeding SPWM to the low side IGBTs so that the output could be converted to sine wave.
I am sorry I did not explain this in the last diagram.
The HIN/LIN complementary pins must never be high or low together at any instant that is perhaps the only criterion for implementing the IC successfully.
Alfredo Rabago says
Hi Swagatam .
thanks for your fast answer!!!!
everything is clear now.
Thanks alot for your help.
best regards
Alfredo
Swagatam says
You are welcome Alfrdeo, Glad I could help!
MBITCHOU BONAS says
Good evening Dear, please I would like to know the name of the software that can be used to draw the three-phase networks (delta and star). I use Pspice, but it does not allow a component to be rotated by 60 or 30 degrees for example. thank you.
Swagatam says
Sorry dear, I have no idea about it!
milan says
hii
dear sir can you provide me pcb for this
Swagatam says
sorry, PCB design is not available for this project!
Jim Remington says
The delay() function takes an unsigned long argument, so lines like this one are not doing what you expect:
delay(3.33);
yousef rezaei says
Hi dear Sawgatam,
I have a project that I have 3 phase 380v 50hz and need power output 4x (48v, 3 phase, 16A, 200 hz).
As I know I need :
1: AC-DC Full Bridge to convert 3 phase 380v 50hz to a DC (V=Vrms*1.414=537v)
2: filtered DC output with 2 or more Capacitor
2: DC-DC converter to convert 537v DC to 48v DC or more.
3: Control the frequency with arduino or micro controller
4: DC-AC pwm
And I have 2 question:
– Which capacitors in farad and volt is ideal to use for filter the peak voltage?
– What is the best solution to convert DC-DC (I have 3kw 48v zener diode only)?
Thank you sir
Swagatam says
Hi Yousef,
A filter capacitor should be ideally calculated using formulas. I have explained the procedure comprehensively in the following article:
Calculating Filter Capacitor for Smoothing Ripple
However calculating will give a very large value, so practically speaking, the approximate value could be anywhere between 100uF/1kv, 500uF/1kv
The best solution to convert DC to DC is through buck converter circuit
sedighhosein says
hi dear sir do not be tired of good and practical circuit i have built many of your circuits so far and most of them have been practical,Regarding this circuit i must say that is not very suitable for the Ac motors i have connected a inverter output to a Osiloscope Each cycle consists of needle pulses that simulate sinusoidal wave by increasing and decreasing pulses width in a cycle ،
at low frequencies to control the speed the amp goes up too high even at normal frequencies because sudden changes in voltage cause inrush current,
when i connected a transformer with almost high current to the city electricity sometime when the connectin was made at the maximum voltage the power was cut off thgrogh a fuse i had to use from one moc 3063 with zero cross detector feature
Swagatam says
Dear Sedigh, if you have tested the above circuit and it is working with some issues, so it is fine, since this circuit is meant to be only a basic concept, and not a refined good inverter concept.
You will need to implement a feedback control system to ensure proper protection in this inverter.
Mr.abdulrahman says
hello Mr.Sawgatam
I’m designing a three phase inverter using ir2130 ic and how to connect the Arduino with the ic should i use 6 output form the Arduino or just three
and i wanna know what should i edit in the code to have higher frequency or lower and based on what you calculate the delay time ?
Swagatam says
Hello Mr.abdulrahman, you will need 3 signals 120 degrees apart and feed them to the inputs of the NOT gate stage, and configure the NOT gate outputs with the IR2130 as indicated in the article.
I cannot modify the code since it was not designed by me…
betel says
Hi sir , i have been building a project on vfd , on the inverter part , i have used your schematics and code as stated on proteus. I’ve got distorted signal (not square ) at the high side part and NO signal at low side part .
Can you please help me how to correct the distorted part …. i’ve provided the circuit and output wave form … tank you!
Swagatam says
Hi betel, the above code was taken from Arduino.cc forum and is not designed by me so I cant’t confirm its reliability. If you are building a single VFD, then you can try the following code which is a tested one:
https://www.homemade-circuits.com/arduino-spwm-generator-circuit/
cybrax says
I made a printed circuit board for this circuit. The circuit is powered only by the DC power supply. The arduino is also supplied from this voltage, as the supply voltage for the arduino and the signals are galvanically isolated. No additional power supply (except DC) is required for anything. The Rar archive contains photos, gerber files, drill files and BOM sheet.
Here is the link:
Swagatam says
Thank you very much, I’ll check it out soon, and let you know!
cybrax says
Hello, i don`t see links with gerbers files and schematics 🙂
Swagatam says
Hi, I have updated the link at the bottom of the post, thanks for the contribution
Swagatam says
Hi, are you sure it is for the above 3 phase Arduino circuit? Can I post it in the above article., so that it is accessible to all?
Fayyad says
Hello
Can i doing that on protues?
If ican doing that what the steps?
Ambrogio Rib says
thanks for the reply,
I have some background and experience on the electronics field : Once replicated one of your inverters,
how to read the speed sensor and how to use it to maintain the required RPM under different load condition ?
As I told I do have a 3 phases motor : 380 V max and 400 W : it is rated for 14000 RPM.
Is it suitable to be used with your project please ?
Thanks
Swagatam says
Yes you can try it with the above project!
IW2FVO says
very interestin site: congratulations.
I have a washing machine 3 phases motor that is 400 w and 330 V.
I would lake to build up an inverter to control it, I plan to read the speed sensor to maintain the rpm stady with the load. Could you please suggest me what of your building blocks shoud I use ?
Thanks a lot for your kind assistance.
regards,
iw2fvo
Swagatam says
Hi, you can try any 3 phase inverter explained in this website, however all these designs are extremely complex and not recommended for newcomers.
W.C.Jayashan says
Thanks for your quick response sir,
in 3 phase osscilators it uses opamps and capacitors, but when using real world capacitors it is very hard to achieve the phase shift accurately … as I know even slightly difference of phase angle will cause unbalanced load…. this is not good for motors…
Is there any way that I can generate accurate three phase signal or , phase shift spwm signal which I have generated by comparing triangular and sine waves…
Thanks a lot sir
Swagatam says
The 3 phase code generation is given in the above article, but it cannot be changed through an external feed or pot regulation.
W.C.Jayashan says
Dear sir,
how can I vary the frequency of three-phase square wave ..
thanks a lot..
Swagatam says
Hello W.C.Jayashan, The frequency is programmed in the Arduino code so it cannot be varied continuously. If you use a discretely built 3 phase oscillator circuit for feeding the H-bridge stage then it may be possible to vary the frequency with a pot.
Shuvam Das says
Hi Swagatam
For this circuit I don’t need antransformer right??
Swagatam says
That’s right, if the input 310V DC is available.
Shuvam Das says
Hi Swagatam
I have made the circuit and I have given 25v dc input
And in 3 phase ac output I am getting 13v phase-neutral but when I am trying to measure phase-phase it shows zero
Swagatam says
Hi Shuvam, you must have an oscilloscope to check whether the IC output is generating the required frequency or not, and whether it is really oscillating or not. We cannot troubleshoot this circuit through multimeter
Shuvam Das says
Hi Swagatam
Actually I don’t have an oscilloscope
Is there any other way of troubleshooting this
And also is the DC voltage too low??
Swagatam says
Hi Shuvam, without scope we can’t guess what is the situation of the oscillations, whether is it perfectly happening or not? So it can be very difficult to know the working status of the IC.
Shuvam Das says
Hi Swagatam
I can’t get it to work a I don’t have a oscilloscope now
So is there any other suggestions from you
It will great help thank you
Swagatam says
Hi Shuvam, you can try the following circuit instead which is much easier:
https://www.homemade-circuits.com/wp-content/uploads/2013/10/3phase-driver.jpg
build and test each stage separately first.
You can do the same for your existing design…..separate the 3 stages and check them.
check frequency at the Rt/Ct point, and across the load….check by connecting a small load like bulb.
Shuvam Das says
Hi Swagatam
The output will be square wave right??
And if I rectify that using a 3 phase rectifier can I use that DC for Electronic circuits??
Swagatam says
Hi Shuvam, can you please tell me what exactly are you trying to make? I am not getting why you want to convert AC to DC to AC and back to DC?
Shuvam Das says
Hi Swagatam
Actually I am using 3 phase AC to get the DC and then that DC for application like adapters
Swagatam says
Shuvam, In that case you can try the following concept:
https://www.homemade-circuits.com/how-to-convert-3-phase-ac-to-single/
Shuvam Das says
Hi Swagatam
For the 12v and 220v DC you have given a common ground point right???
Swagatam says
Hi Shuvam, That’s correct, the ground line common for the entire system
Shuvam das says
Hi
At the last driver circuit the mosfet you used is IRF540 right???
And can I give a supply of 12v instead of 220v there
Swagatam says
The last circuit uses IGBTs, not MOSFETs
Shuvam das says
Hi Swagatam
Yeah I meant which IGBT did you use??
And instead of 220v if use like 12v the circuit will work right??
Swagatam says
Hi Shuvam, the design is taken from the datasheet of the IC. 12V can be used, but then the output will be 8.5V AC. To get 220V you must use 310V DC for the IGBTs.
Shuvam das says
Hi Swagatam
So I calculated that if I want to get around 30V Ac I have to give 40V Dc approximately
And I had another query that I can use this 3 phase AC as a input to a 3phase Rectifier right???
Swagatam says
Hi Shuvam, yes to get 30V AC you will need slightly higher than 40 V Dc. You can use a 6 diode rectifier for rectifying a 3 phase AC, which will convert the 30 V AC back to 40 V DC
Shuvam das says
Hi Swagatam
I just wanted to ask that the 3 phase output of the inverter will be square wave or sinusoidal in nature???
And if it is square then how can I filter it to get sine wave
Swagatam says
Hi Shuvam, the output will be square wave, it can be converted into sinewave by chopping the gates of low side MOSFEts or IGBTs with SPWM….that’s a slightly complex process
Shuvam das says
Hi Swagatam
Can I do the filtering of the square wave with some external circuit
Swagatam says
Hi Shuvam, you can add 5uF capacitor at the output side AC, it may help to improve the square to sine wave.
Shuvam Das says
Hi Swagatam
Which IGBT should I use
Can I use irf540???
Thanks
Swagatam says
Hi Shuvam, You can use IRF540 instead of IGBTs
Shuvam Das says
Hi Swagatam
Just confirming that this is a practically working circuit??
Cause I am going to use it for my project
I am making a PCB of it
So I was just making sure
Thanks
Swagatam says
Hi Shuvam, the circuits are taken from the datasheet of the IC so it cannot be wrong. Nevertheless it is a complex circuit and is recommended only for electronic experts. If you get stuck somewhere you should be able to troubleshot it quickly. If you are confident about this then you can proceed without any worries, otherwise not!
Sebastian Namukolo says
Hi Swagatam
good to find your site and a person like you. I am an electrical engineer from Zambia. I am interested in fabricating a 5KW single phase inverter.I understand all involved about inverters but have not fabricated any. I would like to buy ready made schematic and all the gerber files and step by step guidance. please quote me for this.
regards
Sebastian
Swagatam says
Thank you Sebastian, I appreciate your interest, however I do not sell schematics or files, I only provide general help through my articles and comment queries.
mathieu says
Hello Swag!
is there a IC instead of a microcontroller to make a 3 phase signal?
thank you
Swagatam says
Hello Mathieu, you can refer to this article:
https://www.homemade-circuits.com/three-phase-inverter-circuit/
joao ferreira says
you this text you say 1n4148 is recommended over 1n4007. 1n4148 is 100 V. 1n4007 is 1000 V. In the ir2112 Vs pin you will have 230 V which means 1n4148 will cabuuuuuuuummmm. Please explain…
regards
Swagatam says
In that case the IC and the capacitor should also burn. The effective voltage across the diode will be equal to 220V + Vcc – 220V, so there’s no chance of anything blowing. It’s a complex process which cannot be explained briefly here.
Shubham samal says
Sir
Can you send the full circuit diagram of 3phase Inverter circuit for 415 v
ie, 1phase should have 230v 50hz
My email address is shubhamsamal27@gmail.com
Swagatam says
It is already given in some articles under this category:
https://www.homemade-circuits.com/category/3-phase-power/
joao says
Lets simplify and forget the 3 phases and think about how to make an inverter from 230 V DC to 230 V AC (not a square wave but a sin wave output)
In reality what I want is something like this:
but WITHOUT the transformer since I already have 230 V DC…
In this site they use a very nice 100 KHz arduino code with 200 points sampling on each 20ms (50 Hz) to build 2 really good complementary SPWM over pins 9 and 10 (not the nasty one I sent you in one of my first posts…) and they say the output in the secondary of the transformer is sin wave. What I don’t understand is why do I have to have the transformer to achieve this and in order to avoid it I have to put lots of extra hardware with more and more SPWM. Please take a look and give me feedback. Best regards.
Swagatam says
I have already designed a better one here:
https://www.homemade-circuits.com/arduino-pure-sine-wave-inverter-circuit/
To avoid transformer you will need a H-bridge or full bridge topology for the push pull effect and for AC output, and for this you can try this topology:
https://www.homemade-circuits.com/arduino-full-bridge-h-bridge-sinewave-inverter-circuit/
For implementing this SPWM directly in 3 phase HIN and LIN of a full brdige IC you will need complementary 120 degrees phase shifting SPWM code or circuit. That looks so unnecessarily complex. That is why I designed the low side mosfet control method which is a great and an easy way to achieve pure sine in full bridge transformerless inverter
Joao Ferreira says
I know im being a pain to you… Thank you for supporting me. I really need 3 phase and a sin wave output and I dont want 3 transformers. However Im totally lost. The only think I decided was the 800V mosfet that i already buy. Also, since I feel confortable with arduino I want to avoid 555 timers etc and I want to generate spwm, ]pwm, whatever in it. Really (and thinking only 1 phase to simplify) i still dont understand why the rectangular wave works and the spwm does not. After all spwm is rectangular wave with a complex frequency… Please make a simplest as can be complete diagram of your sin wave 3 phase solution using only the arduino as timer because im totally lost at your site.
Swagatam says
No problem. I would first advise you to build a basic 3 phase inverter successfully using the recommended IC, and then you can feed the SPWM through an opamp based design at the low side MOSFeTs:
The simplest SPWM circuit is given here:
https://www.homemade-circuits.com/how-to-generate-sinewave-pwm/
joao says
I decided to use 1 IRS2330 instead of 3 IR2112 because it’s easier to upgrade in the future to your diagram using the SPWM…
However, you wrote:
“The first diagram is wired using six NOT gates from the IC 4049. This stage is used for bifurcating the Arduino PWM pulses into complementary high/low logic pairs so that the a bridge 3 phase inverter driver IC IC IRS2330 can be made compatible with the fed PWMs.”
Can you explain me better?
In IRS2330, the HIN and LIN are both complementary so I don’t understand the bifurcating diagram where you get HIN through 2 NOT gates and LIN through 1 NOT gate. Is it really necessary to use NOT gates? I think the only thing that would happened if you directly feed the original rectangular wave of the arduino in HIN and LIN would be an out of phase output related to the arduino wave. But would that be a problem?
Swagatam says
The IC has 6 inputs ( 3 pairs of HIN/LIN), and the Arduino gives 3 outputs, therefore the Arduino 3 phase signal needs to be divided into six outputs for the 6 HIN LIN inputs of the 3 phase IC, using NOT gates. This can be also done through NPN transistors as shown in the second diagram.
Joao Ferreira says
In the second diagram the IC is not the same because the input is not complementary. Just to be sure, can you recheck the bifurcation diagram? It s not making sense to me…
Swagatam says
Both the ICs are one and the same with their characteristics, the IRS2330 has the 3 ICs embedded in one that’s the only difference…rest everything is exactly identical, the HIN/LIN are complementary for both the variants.
Please let me know why it is not making sense…the NOT gates are inverters, they will invert the input signal at their output
Joao Ferreira says
Because in the datasheet one IC has overscore over HIN an LIN and the other doesnt
Swagatam says
Overbar means the specific pins become active when the input signal it LOW. HIN and LIN are always complementary or reciprocal to each other in full bridge ICs as far as I know.
Joao Ferreira says
Ok. Then one IC is active when hin is low because it has overbar and the other IC is active when hin is high because it does not have overbar. My point is that the input cannot be the same on both IC
Swagatam says
HIN an LIN inputs should never have same polarity at any instant, that’s why we say complementary, meaning equal and uniform but opposing in nature…for example BC547/BC557 transistor, they are NPN/PNP complementary pair.
That’s why I used NOT gates which will invert the corresponding signals, I have already explained this to you in the previous comment
Joao Ferreira says
Im not saying that hin and lin could have the same polarity. Im saying that hin_overbar from one IC may have different polarity from hin_WITHOUToverbar of the other IC. Otherwise I cannot undertand why the overbar is there for one IC and not for the other
Swagatam says
It means the internal circuit of IC responds only as soon as the pins go to a low state from a high state. No overbar may have the opposite rule, it will respond to positive logic.
joao ferreira says
So the logic depends on IC as I suspected from the beggining. I cannot use the same logic in IR2112 and in IRS2330…
Swagatam says
The logics are turning ON/OFF alternately continuously, so doesn’t actually matter how the IC responds, it’s only the sequence that needs to be correct,
Joao Ferreira says
Thats what i said at the beginning. But then the output wave can be out of phase with the input logic… i believe it does not matter…
Swagatam says
The pins are complementary and the duty cycle is 50% so being out of phase is not relevant. All such ICs work with the same principle with their input clock specs as far as I know.
joao ferreira says
The resulting 3 phase 220V AC will be square wave? Instead of using a square PWM produced by arduino with the code you’ve posted, could you use a SPWM arduino code instead, (which already has a frequency adjustment with a potentiometer)?
Can this change at the input give you a sin wave at the output with your setup?
Swagatam says
That is not SPWM, that is pure sine wave which cannot be used for 3 phase inverter. It will eventually result in square wave at the output and will produce unpredictable effects. You will have to use rectangular wave as described in the above article. External SPWM can be used at the low side mosfets for getting sinewave output
joao ferreira says
Thank you very much… Then I will stay with your square wave code, but I will improve it to be able to adjust frequency with the potentiometer
“External SPWM can be used at the low side mosfets for getting sinewave output”
Can you provide me a link for that?
Swagatam says
You are welcome! No problem!
The 3rd diagram in the following article shows an example how the low side devices of a 3 phase inverter can be controlled using SPM
https://www.homemade-circuits.com/3-phase-induction-motor-speed/
joao ferreira says
Thanks again,
I’m going to buy STW30N80K5 instead of IRF450 MOSFET. Do you think its a good idea?
Swagatam says
The STW is 800V, while IRF is 500V, it is recommended to choose a MOSFET that closely matches the working voltage specs of the system… if you circuit is rated at 310V then you must look for MOSFETs rated within 400V and 500V
joao says
Hi,
I’m going to connect 18 solar panels with 35 V each in a serial setup, so I will have 630 V in the DC bus… In the near future, I also want to upgrade to a variable frequency device and I was thinking on using a full rectifier 3 phase bridge with 6 diodes which will give me also close to 600 V DC peak voltage in the DC bus with a small ripple which I think avoids a capacitor…
So, 800 V MOSFET seems good to me…
However I also intend to use this setup right now, to convert 2 phase in 3 phase, feeding L and N in the same 3 phase full rectifier bridge and in that case I will have less then 400 V DV peak in the DC bus and with a bigger ripple. Do you think the same 800 V MOSFET is totally unacceptable?
Another related question… The bigger ripple in the DC bus demands a capacitor? In afirmative case, which one?
All the best.
Regards
Swagatam says
Hi, I think it’s fine to use the 800V mosfets, actually it’s the ID that must higher than the required output specs…
For the capacitor you an try 100uF/400V…although higher values will give better results…
joao ferreira says
It seems too much complicated, but convinced me to use at least the IC IRS2330 approach instead of IR2112. Later maybe I can upgrade to this beauty…
Swagatam says
OK, no problem…
Ashley says
Swagatam your a Saint!!!!
joao says
Hi,
Lets forget (for now) the 3 phase integration and lets say I’m able to build 3 independent real SPWM 1 phase VFD that are exactly 120 degrees de phased from each other, no matter the frequency I choose in real time with a potentiometer. I have done an Arduino Mega code that implements this and I want to share it. This always gives square waves (0 or 5 V) so I think the problem of unpredictable results at the output won’t be a question. How can I send you the code?
Swagatam says
Hi, there’s no chance of any unpredictable results in the above shown circuits.
If your code is prefect you can send it to me through as a comment,I’ll post it in the above article with your credentials, and then delete the comment.
Joao says
I have sent the code by email to you. Please test it and send feedback (unfortunately it only works on arduino mega, because uno does not have enough timers and the coding for uno or nano would still be possible but the complexity would be too big…). The 3 trigger parts of the code are there just to trigger an osciloscope and check if all waves keep sync all over a long time… And they do…
Swagatam says
I thought you have tested it. Since I have a single channel oscilloscope it won’t be possible for me to test the 120 degree phase shift
Joao says
Did you receive the code? Try it with 1 channel.
Swagatam says
Sorry friend, just checking the PWM won’t make sense..it’s the 120 degree phase and the complementing PWMs that are crucial and needs to be verified using 3 channel scope. By the way I did not receive any email from you.
Joao says
My friend. But i have sent the code to the email where I receive the notifications… sending the code as a comment also does not make.sense. Regards and all the best.
JOAO says
Hi,
In your diagram you print irs2608d.
However in the listed parts you say IR2112 and I think the pinout in the diagram is for IR2112, because irs2608d has only 8 pins… Please confirm that the irs2608d has nothing to do with this…
Also, you say this:
“if the mosfet IRF450 is used with a switching frequency of 100kHz”. How can you control this frequency?
Regards.
Joao
Swagatam says
Hi,
yes you are right, It is IR2112 but you can use IRS2608 also with its own specified configuration. It is easier and will require only one bootstrap capacitor.
The frequency is which is applied on the Hin Lin inputs of the ICs
Joao says
The IRS2608 uses “complement LIN” instead of LIN. I think I will stick with IR2112 instead…
So, the switching frequency of IRF450 with your arduino code is 50 Hz (very far from 100KHz…)
jonny says
hi, how mush the max ampere i can use in the load
Swagatam says
it will depend on the transformer wattage and the battery power specs, it can be any value as desired by you
waqas imdad says
i am stuck in to design 3 – phase VFD can you give me any Solution. i try last one month.
Swagatam says
please explain your problem, if possible I’ll try to help!
Vinod says
Hi,
can u please tell me, you connected 1uf/25 b/w Vb &Vs of IR2608D ic and HO Mosfet emitter, when mosfet would be ON then +220VDc would appear here then this above said capacitor would burn due to low voltage rating and reverse polarity?
Swagatam says
Hi, I don’t think so the capacitor has to be higher than the MOSFET drain potential. The charge at the MOSFET pushes the existing VDD charge inside the capacitor to a level such that the effective potential applied at the MOSFET gate is higher than the source potential by a magnitude of VDD
Morgan says
Hello
Can i use this circuit for a 5kW and 50Hz output. Its application is converting DC from solar into three phase AC.
Swagatam says
Hello Morgan, yes you can use it for the mentioned application. But please note that the code was referred from a forum, and it’s not verified by me yet.
Sohail says
Hi dear i want to make a 3 phase convetr for 20hp moter ,,,i have 30 soler panal 340w 30volt please help me
Swagatam says
Hi, you can implement the design explained in the above article, but you may have to use high power MOSFETs for this.
milon says
hi dear,
i want to use pwm signal from micro-controller unit.but i dont know how to control frequency. pls tell me if i use PWM controller as your previous circuit to the bridge mosfet on the low side.. is it possible for controlling?
another problem is that ,i made a DC bus using 680uf 400v capacitor .But when i connect with mosfet terminal. it created sparks and mosfet has been damaged. Actually how many value of capacitor will be needed for pure DC filtering.?
thanks
Swagatam says
Hello, where do you want you use PWM? Please provide link of the article, so that I can understand correctly.
Kingsley says
Hello Dear Swagatam!
Please I want to try this 3 phase arduino inverter but i would like to incorporate a three (3) phase AC voltage meter to display the AC voltages on the 3-phase outputs. Please can you help me with the arduino code too?
Swagatam says
Hello Kingsley, I am sorry, coding can be difficult for me because I haven’t mastered Arduino yet
Kingsley says
OK boss.
Thank you.
Abhaya Jaiswal says
hello sir, i need code to vary frequency and voltage of three -phase Inverter to keep v/f ratio constant.
can u help me?
Swagatam says
Hi Abhaya, for a 3 phase it looks difficult, it may not be possible from me. Sorry about it!
Matthias Ameh says
hi, please can i write this code to Atmega328p
Swagatam says
sorry, I am not sure about it!
Kingsley says
Hello, If you compile and export the compiled hex file from your arduino IDE to your local system folder, the you can burn the hex file into Atmega328P microcontroller IC using Universal USB programmer. I have tried that with arduino sketches.
another way to do that is to upload the sketch into Atmega328P using arduino UNO board after that, remove the IC from the arduino board and then build the circuit on your own PCB or veroboard using 14×14 (28pins) IC socket after which you can now socket your programmed Atmega328P IC into the IC socket.
NB: IF YOU ARE USING A BRAND NEW ATMEGA328P APART FROM THE ONE THAT COMES WITH THE ARDUINO UNO BOARD, THEN YOU MUST SET THE FUSE BIT, LOCK BIT etc AND UPLOAD BOOTLOADER TO THE IC BEFORE IT CAN ACCEPT THE UPLOADING OF SKETCH THROUGH ARDUINO BOARD. OTHERWISE, GO FOR THE FIRST SUGGESTION!
Thank You.
ahmed says
hi sir can u plz explain if the VSS pin and COM.pin of ic ir2110 are connected to the ground of input dc voltage…I’m confused because my igbts r getting hot even on 12 CDC
Swagatam says
Hi Ahmed, yes all the common grounds must be joined together according to the datasheet, otherwise the devices will not conduct.
You can disconnect the grounds and check whether your IGBTs work or not.
ahmed says
sir can u tell that is the pin VSS and pin COM..from ic ir2110 are corrected direct to the input ground of igbt?…I’m confused because my igbts r getting hot even on 12vdc input…
Emmie says
Good day sir.. Please sir I need your assistance I want to produce a pure sinewave solar inverter that can carry 5 air conditioner of 5horse power for up to 8 to 12 hrs…. Please Sir I need the diagram and the quantities of solar panels with the watts and the batteries with the current ratings….. Thanks sir and God bless you
Swagatam says
Thanks Emmie, Please see this article, you will get all the details regarding the required calculations:
https://www.homemade-circuits.com/2013/05/how-to-calculate-and-match-solar-panel.html
Let me know if you have further queries!