I am pretty new to EE. I'm trying to make an oscillator similar to this one:

triangle-square oscillator

In order to run it from a single 5V supply, I've selected a low voltage op-amp (TLV 2324) and am using a resistor divider to create a virtual ground as described here:

resistor divider circuit

I've got a pot in place of R1 to adjust the frequency of the circuit, and all of this is on a breadboard.

I've got a cheap multimeter with a frequency mode. It detects a sane, measurable frequency on the square wave output (albeit ~477Hz instead of the calculated/expected 1527Hz), but nothing on the triangle output.

When I insert a small piezo speaker between ground and the outputs, I hear nothing -- unless I also use the freq meter at the same time, in which case I do hear an audible tone at a frequency controlled by the pot, which fades out in about 1/2 sec when the probes are removed. Again this only works on the square wave side, not the triangle side.

In voltmeter mode, I see ~2.4V on the square out and ~1.4V on the triangle from a very tired 9V battery giving 5.1V. I got similar results driving the circuit from the 5V line of an Arduino.

I see there are caveats about the voltage divider circuit I'm using, but I don't fully understand them.

My questions:

Is it feasible to make simple op-amp oscillators like this on a ~5V supply?

Is the voltage divider inadequate for producing audible output, or do I need a separate amplifier circuit, or is there some other problem?

  • \$\begingroup\$ If you use a rail to rail opamp, the square output will oscilate between 0 and 5V, meaning a 2.5V peak output which agrees with what you found, however if you are planning on conecting a speaker, you'll need an extra stage (a buffer or transistors), the integrator which converts the square wave to triangle wave will usually have a lower output, the gain is controlled by the RC constant, but that also controls the oscillation frequency, so youll have to tweak it. For the integrator stage, you'll also need a push-pull output or a buffer if you want to connect it to a speaker. \$\endgroup\$ – S.s. Nov 22 '17 at 0:14
  • \$\begingroup\$ Inverter ring oscillators are always simple to make. \$\endgroup\$ – Harry Svensson Nov 22 '17 at 2:40
  • \$\begingroup\$ To drive a speaker directly, you'll need LOTS OF CURRENT. A small worn-out 9V battery will not suffice. \$\endgroup\$ – analogsystemsrf Nov 22 '17 at 3:30
  • \$\begingroup\$ @HarrySvensson piezo beepers work terrible at low freq. From the datasheet, his has 4KHz resonance. He might hear some fast edges from the square wave though. \$\endgroup\$ – wbeaty Nov 22 '17 at 5:48

Do you see 2.5VDC across each of the 4.7K resistors on your divider? If not, something's broken. (Verify that your battery still puts out some volts even when connected to your circuit. Does it drop far lower than 5V when connected? Dead batteries tend to do that.)

Note that it's not a piezo speaker, it's a piezo beeper, and designed not for the usual 2KHz of typical beepers, but for the highest available 4KHz resonance.

If it's running at 477, you shouldn't hear anything down there, since it's off-resonance by 8X and down by 20dB. (You might hear the edges of a square wave: some high, very weak harmonic.)

Change your R1 C1 to give far higher frequency output than you now see. Maybe a 0.01uF cap, and a 10K pot for R1, or just keep the 0.1uF and set R1 to a much lower value. Tune for max loudness from the piezo transducer. The square-wave output should then give louder results than the triangle. And, note that R3 is not for frequency control, since it greatly reduces the triangle peak as it increases frequency. Better to leave R3 value slightly below R2 (to give switching and oscillation.) Then use a pot for R1.

  • \$\begingroup\$ Thanks, this is helpful. I was seeing a good +/- 2.4 out of the divider (battery is giving 5v under load, I think it was at ~6v unloaded). I’ll move the resistors around and play with the values and see if I can bring the triangle voltage up. I’ve got a small amp breakout board on order which should make for easier listening going forward. \$\endgroup\$ – Russell Borogove Nov 22 '17 at 7:12
  • \$\begingroup\$ The pot actually was R1 to begin with, not R3. My R2 is 11K and R3 7.5K. \$\endgroup\$ – Russell Borogove Nov 22 '17 at 17:24
  • \$\begingroup\$ With a smaller cap I get a somewhat higher frequency range but still no audible output without the Hz-meter's assistance. I guess I'll experiment with amplifiers next! \$\endgroup\$ – Russell Borogove Nov 22 '17 at 17:30
  • \$\begingroup\$ @RussellBorogove also, when stuff acts weird, swap your IC with a known-good one, since it might have suffered some partial damage in the past. There should NOT be any unexplained events such as the frequency being that low, or your freq meter ignoring only the triangle output. Try this: measure DC volts between output pin 1 to, first pin 4, then to pin 7. You should see 2.5Vdc for both measurements (since pin1 is at 0Vdc average.) If not, something is fried, or just disconnected. Then, repeat it for output pin 7. \$\endgroup\$ – wbeaty Nov 22 '17 at 21:45
  • 1
    \$\begingroup\$ @RussellBorogove DOH! with TLV2324, it won't even oscillate unless R3 is less than r, 2.5V=(5V-1V)*10K/(10k+r) So we must have R3<6K to create oscillation. That's because the upper square wave peak for your op amp is 1v less than batt supply volts, and, to cause switching, R1&R3 must convert that peak into less than 2.5V on pin5 when pin1 hits 0V. So, if R3 was a pot, then if you raised the resistance slowly, the triangle beep would get louder, but when R3 becomes larger than 6K or so, the oscillation would stop entirely. Conclusion: 8.2K was chosen for 9V batt, 8v batt causes fail! \$\endgroup\$ – wbeaty Nov 27 '17 at 1:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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