# simple electronic ciruitMarch 25, 2013 7:17 PM   Subscribe

I have a circuit whose output drives a beeper(piezoelectric transducer). It beeps at 1200 Hz 3 volts and a duty cycle of 1.5 seconds. I would like to get a DC whenever the beeping starts and 0.0 volts whenever there is no beeping signal. Can anyone help me design a simple circuit to do this? The end goal is to drive a small DC motor that is used to produce vibration in a cell phone. Thanks in advance, Ortological
posted by ortological to Technology (7 answers total)

I would think that a simple low-pass filter on the signal line will do the trick. From this page, an R of 15kΩ and a C of .01μF should do it, cutting off everything above 1061Hz.
posted by plinth at 7:46 PM on March 25, 2013

Thank you! I will give that a try.
posted by ortological at 7:57 PM on March 25, 2013

You are going to need a much bigger capacitor than 0.01 uF because with a first order filter your output is going to look like a big old RC sawtooth. Something like 1.0 uF with a 15K resistor will provide a reasonably smooth output, but with a 30 ms turn on and turn off delay.

But, the "DC" output level will only be the average voltage of the input. This means that if the input is 1200 Hz, 3V, 50% duty cycle, the filtered output will be only 1.5V. So you will need some sort of level shifter if you want a 3-volt output. You could use a voltage comparator at the output to convert the 1.5 V "DC" signal to a 3V final output. The comparator should have some hysteresis to filter the remaining ripple on the signal.

Another way to do this is using a 555 timer as a missing pulse detector.

Easier yet, if you are driving this with a microcontroller and have a spare output pin, just use that to toggle the motor drive.
posted by JackFlash at 9:51 PM on March 25, 2013

Why can't you tap the input signal that drives the beeper?
posted by scose at 12:12 AM on March 26, 2013

If the circuit beeps for a second and a half, then off for a second and a half, then there's almost certainly one oscillator with a 1/3 Hz period being used to turn the second, 1200Hz oscillator on and off. As scose says, the thing to do is find the output of the first oscillator.

Note that neither the low-pass filter nor the first-oscillator output are likely to be able to drive a motor directly. (The oscillator output has a better chance of it, but still...) You'll probably need to use the signal to turn a transistor on, and then pull the current through the motor with that transistor.
posted by spacewrench at 5:17 AM on March 26, 2013

The low-pass filter is not a good solution, because it lacks the driving capacity for anything except an FET, and it does not work unless the signal is asymmetric around ground. There also isn't necessarily a 1/3Hz control pulse, the oscillating signal could for example come directly from a microcontroller pin.

Here is a simple way to do it: Between the positive and negative terminals of the buzzer, put a small-signal diode (in the forward direction) in series with a capacitor. Use a diode with the smallest possible forward voltage drop, e.g. one made from germanium.

This circuit is a track-and-hold, which will bring the voltage between the diode and the capacitor up to about 2.5V (the 3V applied minus the voltage drop over the diode) as soon as the oscillation starts.

In parallel with the capacitor, put a fairly high-ohm resistor to make the voltage bleed away when he buzzing signal stops, but on a much longer time scale than the period of oscillation. That means you should keep R*C >> 1/1200Hz. The capacitor value depends on what driving capability the oscillator source has. 10nF ought to be safe, especially if you remove the piezo element, which probably already has a capacitance of that order. Then you're fine with a 1M resistor.

Unless the oscillator signal already comes from a high-current output, this still won't let you drive the motor directly. The easiest way to do that is with a single transistor. If your supply voltage is not high, so you want as much of it as possible over the motor, you can take your track-and-hold output through a 1k or so resistor to the base of an NPN-transistor. The motor goes between the positive supply and the collector, and the emitter is grounded.

Best of luck!
posted by springload at 12:26 PM on March 26, 2013

Similar to the track and hold in the digital domain is a pulse stretcher using a couple of 74HC14 schmitt trigger inverters. See the last page of the PDF here. This circuit has a very high input impedance so won't load your input signal and has a digital output, if that is what you want.

The schmitt trigger inverter has built in hysteresis so that the slowly rising RC voltage doesn't cause glitches on the output. A 0.01 uF cap and 100K resistor should work.

As you can see, there are lots of ways to do what you want. It depends on the specs for your input and output.
posted by JackFlash at 1:20 PM on March 26, 2013

« Older Gift suggestions for a new friend's birthday?   |   Stop-Gap Iphone Newer »