I am trying to make a piezoelectric transducer buzz loudly, but have so far only been able to make it create a quiet hum. I have tried using a basic amplification circuit with an NPN, but this made very little difference.

I am working with microcontroller that words at 3.3v. How would I get a loud buzz even for a short period of time, from a piezoelectric transducer similar to the below image.

Piezoelectric transducer

  • \$\begingroup\$ maybe use 2 GPIO in bridge-tied-load mode, or fit horn, also try different frequencies \$\endgroup\$
    – Jasen
    Apr 17 '17 at 6:26
  • \$\begingroup\$ Try a higher frequency where the transducer will have more response and will sound much louder . \$\endgroup\$
    – Autistic
    Apr 17 '17 at 6:29
  • \$\begingroup\$ Use a frequency close to resonance. \$\endgroup\$
    – AltAir
    Apr 17 '17 at 6:33
  • \$\begingroup\$ Skip the NPN, make an Op Amp-based amplifier with a trimmer pot in the feedback leg, so you can adjust the gain "on-the-fly" until you get a volume you like. Also, as was suggested above, try using a higher frequency; piezos "like" making high-pitched noises & aren't very loud below a few hundred hertz. \$\endgroup\$ Apr 17 '17 at 7:22
  • \$\begingroup\$ Scrap that transducer and buy one with data including the resonant frequency. Drive it at that frequency \$\endgroup\$ Apr 17 '17 at 10:58

Such transducers work best with higher voltages, like 9V or more. A straightforward solution would be to generate that voltage using e.g. a charge pump, then use the NPN transistor to amplify the MCU signal to that voltage. Depending on the project, you may already have that voltage available.

Another common option is to drive a small step-up transformer with the secondary winding connected to the buzzer. I have seen piezo transducers in fire alarms which are driven by 1:10 transformers, and those are indeed pretty loud.

A push-pull configuration (which should have the same effect as doubling the voltage) can be implemented with a single NPN transistor as well:


simulate this circuit – Schematic created using CircuitLab


The solution is likely to be acoustical.

  • A larger vibrating surface moves more air and thus produces a louder sound. Glue or fasten the transducer to the inside of the enclosure, at the center of the widest panel.

  • Attach a mass at the back of the transducer, so it has more reaction mass to push against. This will increase the force with which it pushes the enclosure wall, and therefore the loudness.

  • Sweep the frequency to find the resonance frequency of the system. Some frequencies will be much, much louder than others. Small piezos like this tend to work above 500 Hz.

  • Consider a loudspeaker not mounted into a speaker box. Say you hold it in your hand. When the membrane pushes air forward, it also sucks air in from the back. Therefore, the air turns around the edge of the speaker, and this is called an acoustical short-circuit. It works better at low frequencies, and this is why a loudspeaker standing in free air without a closed box behind it has no bass. Your piezo is much smaller, but it has the same problem. Using the enclosure as I said above solves this.

  • Drive the piezo with a H-bridge, for example a 74HC six-inverter chip with 3 inverters per side. This will give you a nice push-pull drive.


Put it in a tuned (acoustically) resonant cavity with a hole for the sound to get out. You can find formulas for calculating the resonant cavity dimensions on the net.

Nothing should touch the element except a circular knife edge that is at the neutral bending point of the element (the nodal circle).

And give it more voltage. Like +/-15V Maybe you can use a 741 or something to drive it. ;-)


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.