Making piezo buzzer louder, how?


I have a piezo buzzer driven directly from Arduino pin, thus feeding it with 5 V. I need to make the sound louder. Max operating voltage of this buzzer is 30 V. I built a transistor circuit and connected buzzer to the colector part fed by 12V and connected both grounds. Result: no sound at all. The circuit is correct - verified with blink LED example.

Why the buzzer does not make any sound? Is it the transistor (BC547) not able to switch on/off fast enough to make a wave to drive the buzzer?


Here is the circuit:

Tested with toneMelody example, no sound.

If the piezo is connected directly to pin 8, it works. If I replace the piezo in shown circuit with LED+resistor and upload Blink example, LED flashes.

What happens when you take the wire from the bottom of the piezo element and brush it against ground (bypassing the transistor)?

Good idea. Perhaps the piezo won’t really work with +12vdc. Prove it can by direct connection to +12vdc and ground.


I found the other day while researching for driving an ultrasonic piezo transducer.

You can use the same circuit to drive your piezo buzzer as well. Basically, it needs higher voltage than 5V.

So you can try one of the followings: 1. use a flyback inductor 2. use a bridged amplifier 3. use a matched transformer.