I want to use a piezo buzzer alternatively as a sound detector and as a sound emitter, on the same circuit (be gentle, this is my first attempt to electronics since the university long years ago).

I want the piezo to monitor the ambiant sound level, then emit sound for a while when the sound level is above a given threshold (typically, play music when baby cries during the night). I'll use an Arduino for the processing part.

For the sound detector part, I plan to reproduce NerdKits' tutorial. I hear the sound emitter part is much more simple as far as electronics is concerned (just plug the buzzer between input and ground, is that it ?), and I don't fear the programming part.

Now what bothers me is how to switch between the receiver/emitter setups. I understand I'm looking for a kind of transistor-based SPDT. Is a push-pull setup the way to go, or am I on the wrong track ?

NB : Yes, I could just use a second piezo buzzer or whatever, but I find it somehow more satisfying to use the same device both for input and output, provided it's doable.

  • 2
    \$\begingroup\$ There are some piezo buzzers that are self-resonant, and contain some other stuff so they buzz when simply connected to a voltage. However, these won't work for also being a sound detector. \$\endgroup\$
    – Phil Frost
    Commented Jun 13, 2013 at 11:52

1 Answer 1


The circuit you are (will be) building is this one which is a pretty standard one transistor amplifier and they go through its design step by step. enter image description here

The makers of the ceramic buzzer give a number of driver circuits, the simplest is this one which can be driven by an external oscillator (e.g 555 astable, cmos multivibrator etc.) or a pin from a microcontroller.

enter image description here

To combine the two circuits just use a simple SPDT switch. Sometimes using transistors as switches over complicates the design.

You only need a transistor switch if you are going to change over the function by some remote device.

enter image description here

  • \$\begingroup\$ Thanks, I don't know why I thought I needed no additional components for the piezo to buzz. However I'm afraid I don't get your suggestion concerning the SPDT in your diagram. What will make it switch ? The point of my project would be to make the switch automatically (for a given period) when the piezo detects sound. But if I understand it correctly, isn't the SPDT switched manually in your suggestion ? \$\endgroup\$ Commented Jun 13, 2013 at 21:32
  • \$\begingroup\$ You could make the switch a spdt relay and operate that with a timer. \$\endgroup\$ Commented Jun 14, 2013 at 0:15

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.