In this post we are going to construct a very simple inverter using Arduino Uno. The proposed project can be easily accomplished by beginners, but care must be taken since we are working with high voltage situation.
The project is made for arduino enthusiast; similar project can also be accomplished with transistors or IC 555 or IC 4047 etc. The advantage of using arduino is we can customize the output parameters, and mainly we can upgrade this square wave inverter to pure sine wave inverter by just writing a new code without any hardware changes (Program only given for Square wave).
If you are intermediate in arduino projects, you can easily tweak the hardware and code to add more features like low battery warning, automatic voltage correction, and quick automatic mains changeover and even you may add LCD display to show voltage readings and on-going status.
The Circuit:
The simple inverter circuit consists of Arduino and you may choose your favorite arduino board. A voltage regulator LM 7809 which give constant voltage to arduino board regardless of battery voltage (Battery voltage must not drop below 11.90V).
The two capacitors connected to voltage regulator gives stability. The input capacitor 1000uF helps the inverter to start softly and provide immunity against sudden input voltage fluctuations.
Two MOSFETs are employed which can handle around 300 Watt power with heat sink mounted. If you want to more power you may choose more powerful MOSFET.
The transformer is a step down one, which is used in reverse to step-up the voltage and it its centre tapped. The transformer’s voltage and current parameter also decides maximum output power. You will need 30A transformer to get 270 watt power without considering efficiency loss.
You may also convert a microwave transformer and wind coils with experienced technician, but it is not recommended though.
Program:
- //-------------Program developed by R.Girish-----------//
- int out1 = 8;
- int out2 = 7;
- void setup()
- {
- pinMode(out1,OUTPUT);
- pinMode(out2,OUTPUT);
- }
- void loop()
- {
- digitalWrite(out2,LOW);
- digitalWrite(out1,HIGH);
- delay(20);
- digitalWrite(out1,LOW);
- digitalWrite(out2,HIGH);
- delay(20);
- }
- //-------------Program developed by R.Girish----------//