Driving a piezo loudly!

Hi all!

I'm rather new to electronics, and i'm working on building an alarm. However i can't seem to figure out how to push my piezo to be louder. Currently i've hacked one of these 'cheap' personal alarms that can be bought at the hardware store and pulled out the piezo. Before doing so i measured 40v across the piezo from a mere 4.5 volts battery. I have many failed tries on trying different circuits to boost the power, using all sorts of different methods. Where i'm currently at i use an inductor and transistor like so:

wired up using:

  • Arduino Nano
  • BC550c transistor
  • 100uH inductor
  • 20mm piezo

Setup as shown on attachment.

The inductor and piezo is in the 5v output of the arduino.

When i measure across the piezo i get around 3.3v

Any idea what i'm doing wrong? How do i increase the volume/voltage across the piezo?

Thanks a lot in advance!

/ Daniel

Well the 10mH choke has a much better chance of resonating in the audio band than a tiny 100uH...
Using component values a hundred-fold out isn't normally successful.

MarkT:
Well the 10mH choke has a much better chance of resonating in the audio band than a tiny 100uH...
Using component values a hundred-fold out isn't normally successful.

Thanks for the reply Mark!

(Correct me if i'm wrong) As i understand it, the resonance of the inductor is what can produce a higher voltage, right? - So the aim for me to increase the sound-pressure of the piezo would be to find an inductor that resonates at the exact same frequency as i would like the piezo to? (for instance 4kHz) so when i use
tone(3,4000,1500) in my arduino-code i'm not resonating the inductor at the correct frequency? That makes sense, and i've bumped into this before. However i don't understand how on earth i'm to find the correct frequency for the inductor to increase the voltage?

Can you point me in a direction?

Best regards
/ Daniel

The piezo and the inductor form a resonant LC tank circuit. Hit the resonant frequency and the voltages will
be much higher than the supply.

Piezo elements are basically flexible ceramic capacitors.

However i don't understand how on earth i'm to find the correct frequency for the inductor to increase the voltage?

  1. Look up or measure the capacitance C of the piezo element.

  2. Calculate the parallel LC resonant frequency in Hz using f = 1/(2PIsqrt(L*C)).

The piezo will have a self-resonant frequency in it's housing at which it will be most efficient.

Hence most drivers use this as the tuned element of of a high voltage output oscillator....

I did this years ago for a burglar alarm and got ear-piercing results at 3-4kHz

Special magnetics are required. eg TOKO make them. An auto-transformer wound on a ferrite core.

See if I can dig out a circuit.

The housing will be important for best output - look at a commercial unit. It has to be tuned as well.

A piezo disc is NOT a wideband device !

Allan

jremington:

  1. Look up or measure the capacitance C of the piezo element.

  2. Calculate the parallel LC resonant frequency in Hz using f = 1/(2PIsqrt(L*C)).

Thanks a lot!

I measured the capacitance to 12.27nF and then found a inductor on 154mH to match, so that i would get around 3.6569 kHz which is where the piezo is hearable.

However when measuring the AC voltage i only get half of what's inputtet through the waveform generator, any guess what's wrong?

What is the Q of the inductor? Power inductors are not normally suitable for RF applications like this.

MarkT:
What is the Q of the inductor? Power inductors are not normally suitable for RF applications like this.

I'm not sure - i guess after seeing wiki, that you're asking about the quality-factor? I'm currently at university where we have a component-shop where i found the inductor. However atm. i've managed to actually find a frequency where i can bump the voltage up to around 10ACv from 2 outputs in the arduino, using the ToneAC library. This is done using two of the above mentioned inductors and some time finding a frequency with a waveform generator.

When you talk about power inductors, i'm not quite sure what the difference between different inductors are (and their usage), could you elaborate? :slight_smile:

Thanks again for your help! :slight_smile:

Its a very big subject area, inductors are far more complicated than any other passive component type,
there are literally thousands of different magnetic materials used, none is even remotely ideal except
for air-cored, and then you have resistance losses and stray capacitance to worry about.

It may be the case that the Q of the piezo element is too low for resonance even...

Another way to get higher drive voltages is using a step-up transformer.

You mentioned the cheap alarm the piezo came from - why not reverse-engineer the driver circuit
in that?

I wouldn't call a few kHz RF....

And modern swmode psu's often run at 100's of kHz so their inductors should be fine.... though 154mH is a bit high for that. They're normally 10's to a couple of hundred uH.

What's it's core made of, OP?

Allan

A much easier solution is to use a self-excited piezo. Just apply 5 volts to get the sound. There are many different sound levels available. Pick one to suit your situation. I put one on an oven controller that is so loud I had to use it inside the enclosure. It was laying around the shop left over from some customer's project.

Paul

...The inductor and piezo is in the 5v output of the arduino.

When i measure across the piezo i get around 3.3v

...However when measuring the AC voltage i only get half of what's inputtet through the waveform generator, any guess what's wrong?

How do you know what's coming-out of the waveform generator?

DMMs are calibrated to measure the [u]RMS voltage[/u] of a sine wave. If you don't have a sine wave it won't be correct.*

A 0 - 5V square wave has a peak of 5V (and 5V peak-to-peak). The average is 2.5V and the RMS is also 2.5V.

The RMS of a sine wave is 0.707 times the peak and the average** is 0.637 x peak. Since the meter assumes a sine wave, some meters will simply filter the rectified & filtered voltage to get the (rectified) average, and then multiply by (0.707/0.637) to get RMS.

**Or, it might read the peak and multiply by 0.707. It looks like that's what your meter is doing...**It's just the wrong formula for a square wave.

  • There are "True RMS" meters. I have one at work.

** That's the average of the rectified voltage or the average of the absolute values. The true average is zero, since a sine wave is positive half time and negative half the time.

The reading is only true if you use a true RMS voltmeter - eg a Fluke 87 - a cheapo voltmeter measures the average and displays it as if it were RMS.

This is only accurate for a sinewave. Not for any other waveform.

Allan

you need autotransformer

So the whole problem revolves around the fact, that i need to drive the piezo to the highest possible DB-level from a 3v battery. I've designed and 3D-printed a resonance chamber which seems to work okay. My biggest succes has come from driving around 4.6kHz from the output arduino pin to a transistor and from there to a parallel setup with a 4.7kH inductor and the piezo. The piezo is measured as 18.5nF which by my calculations should result in a ressonance frequency around 17068Hz. However this is far from where i get my highest voltage when measuring vAC. Around 4.6kHz is where i get the highest voltage (around 6.2vAC). Any suggestions on how to increase the voltage across the piezo? My current setup just doesn't seem to cut it. It needs to be louder :frowning: (it's for an alarm)

Thanks again for inputs!

Danielvt:
So the whole problem revolves around the fact, that i need to drive the piezo to the highest possible DB-level from a 3v battery. I've designed and 3D-printed a resonance chamber which seems to work okay. My biggest succes has come from driving around 4.6kHz from the output arduino pin to a transistor and from there to a parallel setup with a 4.7kH inductor and the piezo. The piezo is measured as 18.5nF which by my calculations should result in a ressonance frequency around 17068Hz. However this is far from where i get my highest voltage when measuring vAC. Around 4.6kHz is where i get the highest voltage (around 6.2vAC). Any suggestions on how to increase the voltage across the piezo? My current setup just doesn't seem to cut it. It needs to be louder :frowning: (it's for an alarm)

Thanks again for inputs!

Look for a PULSE TRANSFORMER with winding ratios that will give the voltage you want. Use to be almost free from surplus establishments. Now probably hard to find used.

Paul

Presumably you don't mean 4.7kH ( 4700H)

What value is it?

Allan

Putting about 80mH in series with the piezo would give a reasonable current through it at 4kHz - see enclosed.

The voltage depends on the internal resistance of the piezo.

Allan

p1.pdf (12.5 KB)

allanhurst:
Presumably you don't mean 4.7kH ( 4700H)

What value is it?

Allan

Sorry, i mean 4.7mH ofcourse!

allanhurst:
Putting about 80mH in series with the piezo would give a reasonable current through it at 4kHz - see enclosed.

The voltage depends on the internal resistance of the piezo.

Allan

I don't have a 80mH inductor unfortuanently. Only have 56mH :frowning: But why would you put it in series? According to what i've found

they should be in parallel? :slight_smile:

For some weird reason my calculations of ressonance frequency don't seem to match the reality of what i'm measuring :frowning: