# How to build a circuit that generates a sine wave?

How can I build a circuit to generate sine waves? What I am working on is building a 555-timer circuit that gives 50% duty cycle square wave, then using a low-pass or band-pass filter tuned to the frequency of the square wave to get a sine wave from the square wave (because square wave consists of infinite number of sine harmonics).

I haven't tested the circuit in the lab but I've used LTSpice to simulate it and the results was acceptable for low frequency (~72 Hz) but bad for high frequency (~72 kHz). I used this guide from Texas Instruments to build the narrow-band band-pass filter: link. Here is the simulated circuit:

and here is the result for frequency of 72 Hz:

and for 72 kHz:

The output of the 555-timer is a square wave with 50% duty cycle as wanted.

How can I improve this design to get better results?

Are there other ways to generate sine waves with controlled frequency? I don't want ready-made ICs that do this. I want to build a circuit.

• Google 'wien bridge oscillator' – Wouter van Ooijen Apr 6 '16 at 19:06
• The opamp you've chosen is old & slooooow. Its slew rate isn't fast enough to give you the result you're expecting at 72kHz. – brhans Apr 6 '16 at 19:17
• In combination with which, you should be aware that "infinitely many" is only true in a very broad theoretical sense. It only contains harmonics of the base frequency (and noise + reflections/interference), and they extinguish in amplitude the higher they get. – Asmyldof Apr 6 '16 at 19:27
• If you want a crappy sinewave: use a faster opamp, use steeper filtering. If you want a good sinewave: use a proper sinewave oscillator like Wouter suggested or a DDS like Sphero suggets. – Bimpelrekkie Apr 6 '16 at 20:15
• the amplitude is too high for starters. – JonRB Apr 6 '16 at 21:59