Piezoelectric contact mic for Audio line in Teensy 4.0 Rev D Board High Voltage issue

Hi, I have a small Piezoelectric sensor disk. I want to use it to record vibrations of a cello, feed it through the teensy to add delay, then send it through lineout. However, I don't want to break the teensy. The piezo has very minute changes for the vibrations, but they are detectible and readable. My worry, however, is if I hit it too hard. When connected to my multimeter, I read up to 30V, and that's the RMS - so it likely gets a lot higher. I'm a complete beginner to this.
What should I do to keep the low signals while not doing anything with more than 3.3 v? I tried making a voltage divider(using 3k3 and 2k2 resistors), but then I only got sound when I hit the disk hard. I don't want to damage the audio board. Is there another way of using a contact mic to send audio to the teensy?

Thank you!

If you were to actually look at the signal on a scope you would see that the piezo output also is an AC signal going above and below 0.0 volt. So you not only need to attenuate the signal but you need to signal condition the signal for your analog input. While I have never worked with a teensy I believe an analog in is limited to 3.3 volts. You can use a voltage divider to reduce or attenuate the signal but you also need to offset it much like offsetting an AC signal into for example an Arduino. You cannot have an input signal go negative. You really need to get a handle on what the maximum peak to peak signal looks like and then calculate values for a voltage divider. That done you need to DC level offset by 3.3 / 2 or about 1.65 volts. There are circuits posted online on how to go about doing that. This is an example just ignore the 5.0 volt and use 3.3 volt. Also just ignore the transformer in the link, this is just an example. Rough guess based on your numbers a 10:1 voltage divider is what you want, 9K and 1K or 90K and 10K. Keep in mind your offset circuit to follow your divider.

Ron

Please understand any Arduino cannot record sound or vibrations of any type. It only can record the voltage that you read on a regularly timed basis from the analog to digital converter circuit. What you do with the number you get from the converter is what you must code in your program.

Then there is what you have in mind to play that number back after your delay. What do you intend to do with a list of numbers?

You do need a bias (offset) circuit or you'll lose the negative half of the waveform and get a badly distorted signal. A piezo needs a high impedance load so your resistors should be in the 1M range. (This is why your voltage divider is knocking-down the signal more than expected.)

...Normally you'd subtract-out the bias in software but since the also chip can't put-out negative voltages you'll probably want to keep it biased and then use a capacitor to block the DC.

If you are getting a good signal level under normal conditions you probably don't want a voltage divider for the signal (only for the bias).

And you probably won't kill the chip with high voltage because the piezo probably can't put-out enough current to damage the chip.

But if you're worried you can use an Over-voltage Protection Circuit.

The regular Arduino actually has small (low current) built-in "protection diodes" so you'd just need a series resistor to limit the current when the diode "kicks-in", but I don't know if the teensy has that... And I'm pretty sure the diodes in the regular Arduino can handle the current from a piezo without a resistor

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.