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. – Arduino

Sine Wave Generator Circuit 1

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.

Sine Wave Generator Circuit2

Sine Wave Generator Circuit 3

Sine Wave Generator Circuit 4

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

MOSFETs that form an H-bridge connected to 2x

driver ICs. This was used to drive a small 230-V torus transformer. The

( 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.

Sine Wave Generator Circuit 5

After the first experiment, I moved to a typical H-bridge arrangement based on the readily available H-bridge driver IC, the

from Intersil ( Below is the minimal circuit required for the

with an optional current-sensing mechanism. The recommended value of the current-limiter resistor (Rsh) is 10 mΩ typical.

Sine Wave Generator Circuit 6


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!

Sine Wave Generator Circuit 7

driver prototype


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s