/ electronics

Adjustable Volume Piezo Buzzer Driver Circuit Module

I recently had to do a project with a piezo buzzer powered by a 3.7V Lithium battery which had to be pretty loud. Here is a circuit I designed and some explanation around it:

Circuit Diagram

This diagram was created using SchemeIt


The piezo sounder is driven by a square wave from a microcontroller which is amplified by this circuit. The BJT allows the full voltage and current from the battery to be utilized rather than the regulated 3.3V and limited current provided by the microcontroller GPIO pin.

The 50mH inductor creates a larger voltage spike as current tries to pass through the transistor. This can be calculated based on the characteristic equation of an inductor which is:

$V_l = L \frac{dI}{dt}$

When the transistor is on, this voltage spike can reach upwards of 15V peak. The pulse has a shorter duration, however, and thus is no longer a square wave. This is fine because even a short voltage pulse is enough to really gets the piezo diaphragm oscillating at a higher amplitude and significantly increases the audible volume.

The digital potentiometer creates a voltage divider which allows the voltage over the sounder to be adjusted by changing the wiper setting on the digital pot.


Design files (EagleCAD) for an eval board I designed can be found on github at https://github.com/JBaczuk/piezo-buzzer-driver. Good luck and let me know if you have any questions.