Intention of the project is to obtain sinusoidal signal generator of frequency range 10Hz to 100Hz and 5v signal from microcontroller i.e arduino uno,

using pwm from arduino uno I got the square waves of 4.3v - 5v, the signal was fed into the RC low pass filter of four stages and cut-off frequency of 50Hz, the output after simulation was found to be a sinusoidal signal of 50Hz but with low volts of about 400mv, I tried to amplify the signal using OPamp amplifier with LM324 IC but the output was found to decrease to almost zero volts, But after swapping between filter and amplifier, now the I'm amplifying the square wave before filtering the signal voltage raised to almost 900mv. Intention is obtain sinusoidal signal with 5v and frequency between 10Hz and 100Hz. Please any best way to accomplish this.

enter image description here


2 Answers 2



When using a very high Q, Wein bridge or Barkhausen unity gain positive feedback oscillator, the time to grow oscillations depends on the excess gain and the initial condition. I supposed Proteus may not have the necessary initial condition to "kickstart" oscillation.

This is normally done by natural noise or DC offset. But here is a trick that can guarantee instant oscillation with the initial condition of a DC step voltage to start oscillation. Assuming the initial condition of 0 voltage across each capacitor, arrange to ensure the desired startup output voltage. This is similar to a logic power-on reset cap. ( see the simulation link in my last comment, as shown below.)

Power on kick-start to Osc. depends on the placement of Cap to Vin+ guaranteed by design. otherwise, noise or offset voltage has to grow slowly from excess over-unity gain with "Barkhausen criteria". enter image description here

1) Learn the fundamentals of learning

  • learn how to find a good answer before making too many errors.
  • learn how to find the right keywords
  • use good keywords such as "low-frequency sine oscillator schematic"
  • choose multiple search engines; including this site and even specific users "user:joeblow sine Hz oscillator" but spelling must be correct
  • in Google, you can also "exclude" words with "-minus"
    • oscillator sin -vibrator ,
    • also select "images" results in google with "schematic"

2) Learn the fundamentals of electronics before making too many misteaks

  • never cascade RC filters of the same value. Why? the impedance of each stage loads the previous stage and results in a weaker knee at the breakpoint when you want a sharper higher order filter.
  • capacitors can become inductors in active filters by impedance inversion from negative feedback, to make better active high order filters
  • there are lots of really good active filters, so don't try to reinvent a better wheel until you study how wheels are made
  • instead of a square wave and fixed filter, try searching for a "low-frequency oscillator using the fundamentals of learning above".
  • on schematics, be more logical and do not run inputs and outputs in big loops, off the page, either use labels or Ref.Designators or learn how to draw neat block diagrams, besides big loops on signals, in reality, can cause big problems.

Duplicate answers:

  • If you just learning, changes are pretty high there are duplicate answers so learn 1) then 2)

Is this a suitable sine wave osc? how would I control the frequency?

What's the easiest/cheapest variable-frequency sine wave oscillator?

  • you don't need an Arduino to make a good low freq. sine generator

1Hz Sine wave oscillator - Multisim

Here's my simple 50Hz sine (split supply)

[ or +5V only but Rail to Rail output type] using LED's to soft limit the gain to x1

  • \$\begingroup\$ Tony - I fully agree with your comments. However, one short question: Which topology do you propose if single-element frequency control is desired? \$\endgroup\$
    – LvW
    Commented Aug 27, 2018 at 13:22
  • \$\begingroup\$ Knowing your skill level, to choose the best design, one always needs best specs; e.g. lowest distortion? low startup time?, lowest cost? fewest parts? But the relaxation Osc square, triangle sine using the linear to sine, using a multi-transistor gain shaper of the Harris 8038 (now obsolete) was my favourite. \$\endgroup\$ Commented Aug 27, 2018 at 15:00
  • \$\begingroup\$ OK - thank you for your answer. But I must admit that I had a lumped design in mind. And - as you know - classical topologies for sinusoidal oscillators are seldom single-elemet controlled. I have developped a GIC-based oscillator with a grounded resistor that allows such a frequency control . \$\endgroup\$
    – LvW
    Commented Aug 27, 2018 at 15:07
  • \$\begingroup\$ simple 50Hz sine , is not working using LM 324 IC simulation was done in proteus. Any suggestion on the type of OPAMP. \$\endgroup\$
    – kassim
    Commented Aug 27, 2018 at 15:23
  • \$\begingroup\$ @kassim Do you see the Gnd reference? and I am using Bipolar supplies. If you want to simulate using single 5V supply, change Gnd symbol to Vcc/2 \$\endgroup\$ Commented Aug 27, 2018 at 16:29

Intention of the project is to obtain sinusoidal signal generator of frequency range 10Hz to 100Hz and 5v signal from microcontroller i.e arduino uno.

In that case, instead of starting with a square wave I would start with a sine wave. Add a DAC, driven by SPI or I2C. 10Hz to 100Hz is something which even the Arduino can do. You will get a much, much higher quality and need less components. The down side is that you need to write a bit more software.

You can still add an RC filter but that can a be single stage for e.g. 10KHz. to remove some rough edges.

  • \$\begingroup\$ Of coarse reduction of components is strictly needed, please may you suggest me such DAC circuit/IC model for best quality of signal. \$\endgroup\$
    – kassim
    Commented Aug 27, 2018 at 11:17
  • \$\begingroup\$ We do no recommend manufacturers. Try a site like digikey with "DAC" and then you can use the parameters to find which one of the 38000 suits you best. \$\endgroup\$
    – Oldfart
    Commented Aug 27, 2018 at 11:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.