2
\$\begingroup\$

I am using the following piezo buzzer: enter image description here As far as I understand, a piezo buzzer is a capacitive load. So the current loading this capacitance should be limited in order not to burn the driver (in my case an MCU).
What is then capacitance and what is max rated current?
At 15nF capacitance a resistor of about 100 ohm will be needed in order to limit the current @Vdd=3.3V and max pin current 40mA. However, if max rated current is only 2mA, I basically do not need any serial resistance in order to limit the current. How to use these data?

My second question is, what is Tone nature?
I do not believe there is a buzzer which generates a discontinuous tone when driven with continuous signal.

\$\endgroup\$
3
  • 1
    \$\begingroup\$ Quick search on internet shows examples of Tone nature are: slow pulse, fast pulse, single tone, dual tone, siren \$\endgroup\$
    – Huisman
    Commented Feb 25, 2019 at 12:59
  • 1
    \$\begingroup\$ Regarding the rated current, it's the current the piezo buzzer can handle. Play around in a simulator with a voltage source giving a 30Vp-p square wave at 2kHz, sourcing a 15nF capacitance and check what (RMS) current runs through the capacitor (assuming it's still 15nF at 2kHz) \$\endgroup\$
    – Huisman
    Commented Feb 25, 2019 at 13:12
  • 1
    \$\begingroup\$ Trying to drive a piezo buzzer directly from a microcontroller pin is not likely to work and will probably be an exercise in frustration. Recommend you use a simple transistor drive like this one: electronics.stackexchange.com/a/231498/213609 \$\endgroup\$
    – Mr. Snrub
    Commented Feb 25, 2019 at 20:30

1 Answer 1

4
\$\begingroup\$

The datasheet for this piezo element shows that it is a simple piezo element. It does not have a built-in driver circuit. See the datasheet here:

http://www.produktinfo.conrad.com/datenblaetter/700000-724999/716975-da-01-en-PIEZO_SIGNALGEBER_KPT_G1420A_K8437.pdf

It is designed for a 5V square wave.

Yes, the 2 mA rated current, in my experience, is accurate. These piezo elements, as long as you feed them the rated voltage as a square wave AT their "resonant" frequency (2 kHz in this case), are really loud without consuming a lot of power. Hitting the resonant frequency is the key. They are much quieter if the frequency fed to them is above or below their rated resonant frequency. I do not use any resistors in series with piezo elements as the driver circuit has its own resistance.

I think you should use a "buffer" circuit between your MCU producing the square wave and the piezo transducer. How about an op amp wired as a non-inverting buffer? Something like the TL071? It has FET inputs so it won't load your MCU very much.

Maybe a circuit like this could be modified into an effective buffer for your piezo transducer?

http://www.tdpri.com/threads/op-amp-buffer.396794/

The op amp shown in the thread above is wired for "single supply" operation. That is why it shows the two 1 megohm resistors configured as a voltage divider. You definitely need those unless you happen to have a dual power supply for the op amp.

This piezo element's tone "nature" is a continuous "BEEEEP"! at the resonant frequency of 2 kHz.

AVX/Kyocera produced a good pamphlet on acoustic "generators" (driver circuits) for piezo elements. It shows how to apply your square wave to some simple transistor driver circuits to make the piezo element buzz. Check it out here:

http://www.mouser.com/ds/2/40/piezo-43596.pdf

Kepo, the manufacturer of your piezo element, doesn't seem to provide any information on good driver circuits. :-(

Good luck and happy experimenting!

\$\endgroup\$
8
  • \$\begingroup\$ Well, that can only mean that 2mA is current either at 5Vp-p or at 30Vp-p. But what about the capacitance of 15pF@100Hz. Does that mean that if you apply ac signal 100Hz you will get the current according to the impedance of 15pF capacitor? If you apply square wave from MCU, without serial resistor, 15pF should burn the pin, because in order to limit the current to 40mA you need about 100 Ohm, unless this value is already internally between the pin and the output driver? \$\endgroup\$
    – Nexy_sm
    Commented Feb 26, 2019 at 15:34
  • 1
    \$\begingroup\$ the pamphlet is very nice. \$\endgroup\$
    – Nexy_sm
    Commented Feb 26, 2019 at 18:03
  • \$\begingroup\$ Don't connect the MCU's pin directly to the piezo element. Connect it through a buffer circuit such as an op amp wired as a non-inverting buffer. (See link in my answer.) The input impedance (resistance) of an op amp with FET inputs (such as the TL071) is VERY high. The op amp will only draw a small amount of current from the MCU. THEN, connect output of the op amp to the piezo buzzer. The op amp can supply a few milliamps of current to the pizeo buzzer. You may need to put a capacitor in series with the buzzer and maybe a resistor, to limit the volume of the buzzer. \$\endgroup\$ Commented Feb 26, 2019 at 19:50
  • \$\begingroup\$ Yes, the idea is to provide the resistance for the buzzer as part of the driver circuit. The driver circuit accepts your square wave input signal from the MCU and then outputs it to the piezo element. See page 6 of the AVX/Kyocera pamphlet. Check out the simple transistor driver circuit on the top left of the page. The 30K resistor on the base of the transistor (R1) protects your MCU from excessive current. The resistor on the collector of the transistor (R3) reduces the current drawn by the piezo element. Play with the values of the components to hit the resonant frequency of the piezo. \$\endgroup\$ Commented Feb 26, 2019 at 20:03
  • \$\begingroup\$ R3 in the schematic of the AVX/Kyocera document is the "pull-down" resistor for the base of the transistor. It forms a voltage divider. \$\endgroup\$ Commented Feb 26, 2019 at 20:04

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.