Piezo’s (in the electrical component sense), are small speakers that feature a piezo-electric crystal. When you apply a voltage, the crystal distorts, vibrating a plate and producing noise. They are very loud for their relatively small size and price, and typically achieve over 90dB of sound pressure from an object the size of a few coins. The annoying beeps you hear from the insides of computer on boot-up or when you do something wrong (like mash the keyboard) are typically made with a piezo.

piezo-photo Photo of an externally driven piezo. They tend to be smaller than their internally driven cousins.

Important Parameters:

  • Maximum drive voltage
  • Sound-pressure level (SPL)
  • Resonant frequency
  • Operating current

The Piezo Schematic Symbol

The schematic symbol for a piezo is shown below. Some piezos have internal oscillating circuity already built into them, and only require a DC voltage to run (typically 9-12V). These are called internal drive piezo’s (or buzzers), while the ones without circuitry are called external drive piezos (or just piezos). Externally driven piezo’s are not polarized, while internally driven ones usually are. Some have a third leg, which is called the feedback pin, and can be used as an input to the driving circuitry to drive the piezo at it’s resonant frequency.

piezo-schematic-symbol The schematic symbol for a piezo speaker.

A Piezo’s Frequency Response

A piezo does not have near anything like an ideal flat frequency response over the audible range! This does not make them suitable for quality sound/music reproduction. See the figure below.

piezo-4khz-resonant-frequency-response The frequency response of a piezo speaker with a resonant frequency of 4kHz.

How To Drive A Piezo

An easy and loud way to drive a piezo speaker using an inductor in parallel with the piezo and a NPN BJT.

When the NPN BJT is switched on, the current builds up through the inductor and energy is stored in it’s magnetic field. When the transistor is switched off, the inductor creates a large voltage spike which excites the piezo speaker. The piezo can be driven to around 40-60V with a 5V supply. Make sure the BJT has a collector-emitter breakdown voltage high enough to withstand this!

The frequency of the PWM controls the pitch of the sound, the duty cycle controls the volume. Duty cycle should be varied from 0-50%. The inductance does not matter to much, something in the range of 10-50mH seems to give the best results with most piezo’s.

piezo-drive-circuit-parallel-inductor An easy and loud way to drive a piezo speaker using an inductor in parallel with the piezo and a NPN BJT.

A non-standard and slightly convoluted method for driving a piezo speaker using a half-bridge driver IC.

piezo-drive-circuit-half-bridge-ic A non-standard and slightly convulated method for driving a Piezo speaker using a half-bridge driver IC.

How To Drive A Buzzer

Buzzers (or internally driven piezo’s), contain internal drive circuitry, and only require a DC voltage to run. They are typically louder than externally driven versions because:

  1. They normally feature a resonant cavity which amplifies the sound. You will notice most buzzers are larger than externally driven piezo’s.
  2. The internal circuitry usually has feedback, which means the piezo is always driven at resonance.

One disadvantage of buzzers is that you can’t change the tone of the sound.

The volume can be controlled with a simple RC low pass filter and PWM signal as shown in the circuit diagram below.

piezo-int-drive-volume-control-circuit The schematic of an internally driven piezo volume control circuit.

This circuit uses a RC low-pass filter and PWM to change the DC voltage that the buzzer sees across it’s terminal, thus controlling the volume. Note that the volume changes drastically from 0-1% duty cycle because of the logarithmic nature of sound, so a 12-bit or higher PWM is normally needed for smooth control. 12-bits will give you increments of approximately 0.025%. When I built one of these circuits, at 1% duty cycle the piezo was at approximately 90% apparent volume.

Piezo Benders

piezoelectric-bender A piezoelectric bender. Image from http://www.kineticceramics.com/.

Piezo bendors are essentially un-mounted piezos, the insides of the standard black cased piezo that you commonly see. They are used in more spaced-constrained situations.

These un-mounted piezos have to be mounted on something, and consideration about the vibrational aspects of the piezo have to be taken into account. Obviously, if you glue the entire piezo to the mounting surface, it won’t be able to vibrate, and you’ll get no sound. There are two standard ways of mounting a piezo, and they are called either edge-mounting or nodal-mounting.

Edge mounting is pretty self-explanatory, it is when you mount the piezo by holding onto its edge. A thin ring of double-sided adhesive tape can achieve this. Nodal mounting is where the piezo is fixed around it’s nodal points. A nodal point is a place on the piezo surface that does not move while it is vibrating. As a general rule of thumb, there are nodal points on a piezo at 0.65 of the radius from the centre of the piezo, in all directions. Again, this can be done with a ring of double-sided adhesive tape, whose diameter is 0.65 that of the edge mounting tape ring.

Multi-layer Piezo Speakers

Mutli-layer piezo speakers contain more than one vibrating piezo element. The vibrating elements are designed to have different resonant frequency’s, and when combined, give a speaker which has a flatter frequency response over the audible range than traditional piezo speakers.

The bandwidth of multi-layer piezos is usually between 200-500Hz and 20kHz. Because of this, they are able to reproduce music and voice much better than a traditional piezos whose frequency response if usually limited to a few hundred hertz either side of a resonant frequency in the 3-4kHz region.

PUI Audio makes some good quality multi-layer speakers, which can be found on DigiKey.

Homemade Piezo Crystals

You can easily make crystals with a few common household ingredients. See the Piezo Crystal Formation Project for more information.

large-piezo-crystal A large homemade piezo crystal.


If you want a loud buzzer, then the ABI-D23-RC (Element14 Num: 102-2400) is a good choice. It runs of 12VDC and has a SPL of 96dBm.

  • hello!
    im from chile, sorry for my english i’ll try to make myself clear….

    i’ developing an art installation with arduino and 8 spacializated 2″speakers. I want to distribute one only sound throw these speakers controlling each volumes with an individual pwm signal, drive by an shiftregister (74595), so can move smoothly move the sound throw the space…

    my question: can i use the same cicuit that you mentioned to drive a piezo controling its volume, to control only the volume of each of my speakers, considerating that i will use an external mp3 player to generate the only one sound????

    any help will be we welcomed!!!

    thank you!!!!

    Rodrigo Costa MAluk
    santiago chile!

    • Hi,

      Hmmm, if you desire to play full-spectrum audio (which I assume because you are using an MP3 player), I don’t think you can use a PWM signal to control the audio in the same manner is shown above. Normally the volume would be controlled by varying the gain of the amplifier that is fed the MP3 audio signal. PWM is only good for fixed-frequency sound output.

      • hi !

        yes, finally i wil use a multiplex / dmultiplex to distribute the sound trough the speakers. Its a simple and cheap solution, but i think that iit works for now!

        maybe in the 2.0 version i will go furher..


        • Sounds like a good way of routing sound cheaply! Good luck with the project 🙂

  • Pingback: Building a Frequency/Sound Generator()