I'm trying to get 110dB out of a 25khz Piezo Transducer. This piezo resonates at 25khz and as per the illustration in its datasheet should emit 110dB with 10 volts and 25khz frequency.
Any assistence as to what I'm doing wrong here would be GREATLY appreciated !!
My code is bit-banging it. With an oscilloscope, I confirmed that I'm getting a nice clean 25khz square wave.
I have attached a step-up circuit to the device and am seeing 10volts across the terminals of the piezo while it is emitting it's 25khz frequency.
However, instead of 110dB, I'm only getting 50dB.
I've tried upping the voltage to 20, and still get the same volume level. The voltage is adjustable via the screw on the top of the blue capacitor on the Voltage Step Up (pictured below).
I've tried changing the duty cycle having HIGH go for 25microseconds and LOW go for 5microseconds. I've tried several combinations and a 50/50 duty cycle appears to achieve maximum volume which is 50dB.
Here's how I'm connected:
- The inputs of the Step Up are attached to GND and 3.3V pins on the Arduino.
- The output+ of the Step Up is connected to 1 pin of the Piezo.
- The output- of the Step Up is NOT connected to anything. (tried to connect it to GND but it didn't change anything.
- The other pin on the Piezo is connected to D11 on the Arduino.
I'm Running the following code:
#include<Wire.h>
const int SPK = 11;
void setup()
{
Serial.begin(9600);
pinMode(SPK, OUTPUT);
digitalWrite(SPK, LOW);
}
void loop()
{
long startTime = millis();
for (int i = 0; i < 25000; i++)
{
digitalWrite(SPK, HIGH);
delayMicroseconds(15);
digitalWrite(SPK, LOW);
delayMicroseconds(15);
}
Serial.println(millis() - startTime);
}
UPDATE:
Ok, I am now set up to look like this:
Is this the next step (ie: Adding an Inducer) ?