Advertisement
schematic basic

Sine Wave Generator Circuit

According to textbooks, a sine wave is a wave whose form resembles a sine curve. Often in power electronics, we need a sine wave generator for some applications; a dc/ac power inverter, for example. Here is a simple attempt to fill a niche that seems to be lacking in the power inverters world — one for which a fairly efficient, inexpensive “inverter heart” offers a pure sine wave output. Utilizing pulse-width modulation and analog components, the output will be a clean sinusoid with very little switching noise. Note that pure sine wave inverters are able to simulate precisely the ac power that is delivered by a conventional wall outlet.

sine wave intro

It’s a fact that Arduino has become a familiar and reachable microcontroller platform. Even though it is 8-bit/16-MHz hardware, it can still be used to great effect in power electronics applications. Described here is an inexpensive “inverter heart” capable of producing pure sine wave output from a 5-V dc supply with the help of an Arduino microcontroller. Note that the complimentary pulse-width modulation output from the “inverter heart” module can be used to drive appropriate H-bridges. Here, the Arduino is configured to generate a sine wave signal using “Fast PWM.” The sketch prepared will produce complimentary PWM on D3 and D11 of the microcontroller, good for driving power transformers through H-bridges.

Provided is a downloadable “clean” sketch (Ardu_Sinewave.ino) for the sine wave generator, which is, in fact, an adapation of the wonderful work by Ken Boak and Trystan Lea. To test this, just attach a low-pass filter to D3 (or D11) as indicated in the wiring diagram. This will reconstruct low-frequency sine waves from the high-frequency digital PWM waveform and give you a scope trace similar to the one shown below.

dso screen_capture

Sine wave output from the low-pass filter connected with D3.

wiring hardware

Wiring diagram

window sketch

Arduino sketch

Now is the right time to make some key design conclusions regarding the power inverter stage. Yes, you can make a power inverter circuit that uses Arduino to generate the PWM signals and readily available N-channel MOSFETs — with some (optional) simple circuit protection and load sensing, of course. As the PWM signals generated in firmware, it can easily be modified for 50 or 60 Hz, either 115- or 230-V operation, and a wide range of dc input voltages. At first, prepare your Arduino to make 50-Hz sinusoidal PWM waveforms needed to drive the MOSFETs. Next, add MOSFET driver ICs, MOSFETs, and a step-up transformer with the Arduino hardware. That’s all!

The prototype was first tested with 4x IRF740 MOSFETs that form an H-bridge connected to 2x IR2110 driver ICs. This was used to drive a small 230-V torus transformer. The IR2110 (www.irf.com) is a high-voltage, high-speed power MOSFET driver with independent high- and low-side referenced output channels. Luckily, its logic inputs are compatible with standard CMOS/LSTTL outputs down to 3.3-V logic. In principle, the H-bridge is a two-port power control device that consists of four semiconductor switches that can be controlled under firmware. Furthermore, it has electrical symmetry; hence, power can flow in both directions.

driver reference

Reference diagram

After the first experiment, I moved to a typical H-bridge arrangement based on the readily available H-bridge driver IC, the HIP4082 from Intersil (www.intersil.com). Below is the minimal circuit required for the HIP4082 with an optional current-sensing mechanism. The recommended value of the current-limiter resistor (Rsh) is 10 mΩ typical.

application sample

Minimal circuit of the HIP4082 driver

I only made the proof-of-concept prototype with the decision to refine it later. I welcome feedback from the community in the hope that my basic concept will germinate into an efficient design!

schematic basic

Basic schematic of the HIP4082 driver prototype

No Comments

Join the conversation!

Error! Please fill all fields.
Looking for the latest from TI?