Using 12V for Piezo buzzer issue

I'm experimenting with Piezo Buzzer. I connected it directly to PIN9 and GND. Worked well but quite. I'm trying to amplify it. I use external power source 12V and BC 237b transistor.

This is how it looks http://img51.imageshack.us/img51/893/photovra.jpg.

Unfortunately it doesn't work. Well.. it works if I replace the buzzer with resistor and LED. I see it blinking so there is current flow.
When I was troubleshooting this issue I realize if I connect additional resistor to 12V+ and transistor's collector it start to work. I doesn't get much louder thou.

This is the first time I've ever uses a transistor so It's probably a silly noob issue. However it makes me very puzzled. The buzzer works with 5V and tiny current from Arduino without any problem. When I give it 12V it looks like there is not enough power and it reminds silent. I would really like to understand what am I doing wrong.

You seem to have a piezo transducer, not a buzzer. It need push-pull drive (transistor pulls down, resistor pulls up) as its effectively
a capacitor (perhaps about 30nF - this suggests a 330 ohm or so, less than this and you'll need a power resistor, larger and you might lose
high-frequencies).

Piezo transducers are highly acoustically resonant devices and you get the loudest output at the right frequency - so
try various frequencies. 12V drive ought to get a reasonable level I think.

Other ways to drive are put it in series with 150 ohm resistor and then drive from two pins driven anti-phase - this gives 10V peak-peak
signal without needing transistor or 12V supply.

A piezo buzzer contains electronics to make it buzz.

You have a piezo transducer.
You can make it louder:

  • Place the piezo in a case, like a loudspeaker box. That makes it a lot louder.
  • Use two alternating pins in anti-phase as MarkT wrote (and use the resistor he mentioned).
  • As last option, you can use 12V. But you have to use an output stage. You can build a push-pull output stage with transistors (H-bridge). It can also be a power-mosfet driver if the frequency is not too high. A piezo could have a capacitance of 30nF, but I have one that is 100nF. For high (ultrasonic) frequencies you can't just have a square wave to drive the piezo, you need a sine wave.

Thank you very much for your time guys. It turned out the biggest confusion was not understanding the component I was working with. You solved my problem.

MarkT:
Other ways to drive are put it in series with 150 ohm resistor and then drive from two pins driven anti-phase - this gives 10V peak-peak
signal without needing transistor or 12V supply.

Can you explain a little bit more that part? thanks :slight_smile:

metRo_:
...driven anti-phase...

http://playground.arduino.cc/Code/ToneAC