Electrical – Blocking DC when driving a buzzer with a PWM signal

dcfilterpiezo-buzzerpwm

I am driving a piezo buzzer with a PWM signal (typical freq. 100Hz-1kHz) in order to generate 'beeps'. However due to software constrains (*), when the PWM signal is stopped I can't control if it stays at a high or a low level.

If it stays at a high level when stopped, then the power consumption of the buzzer increases, and it also generates more heat. I believe this could be solved if I could somehow block the DC component of the PWM signal that goes to the buzzer. Can anyone point at a sample circuit or application note on how to do this?

(*) Update: There is a (software) device driver which is not my own that turns the PWM signal on and off; when turning off, the PWM output stays at whatever level it was at that point.

Best Answer

A capacitor blocks DC and passes AC broadly speaking. maybe try a 10 uF capacitor. At 100 Hz it will have an AC impedance of 159 ohms. At 1 kHz it will be 15.9 ohms. Here's how: -

enter image description here

Your piezo load is the resistor in the above.