Limiting piezo input voltage without limiting resolution

piezosensorvoltagevoltage-regulator

I realise I am asking what might seem to be a fairly common question here, at least I have found this question online several times, but really never / rarely an answer with some sort of follow-up which could make me conclude that the solution is valid for my instance.

The idea is simple, I wish to make a knock sensor to detect a fairly substantial knock (hit airsoft pellet). Since piezo disk can create (very) high, amounts of Voltage I need to protect my microcontroller board against over-voltage on the pin. (so far fairly common)

The general solution is to place a resistor between the VCC and ground, to disipate the energy. Oke I see the value there, but it would leave a lot of questions.

  1. What ohm resistor, to disipate what voltage, or what formula to calculate this with?
    In theory I can calculate the energy in the pellet, but that still doesn't give me the energy it would dissipate on the shot plate with the piezo element attached. And then again, what amount of this mechanical energy would be transfered into electrical energy. I could test it out, but for that I feel like I would end up in a chicken/egg problem. So the first ?-mark.

  2. The voltage the piezo disk would create would depend on the disk itself, unfortunately the disks generally do not come with much specifics, so this leaves another ?-mark.

  3. Also I believe that using merely a resistor would, decrease the the practical resolution it would detect, because it would basically dissipate the DC part of the AC+DC output to a certain extent. Please correct me if am wrong here. But I would like to use this value to basically detect the quality hit on the shot plate, so the detection resolution is also important to me.

Instead I would like to use some sort of scale-down of the output voltage, Just cutting a DC part sway from the siganel. This way it would "normalise" the output to set the expected (this would still need to be carefully tested one way or another) max. output voltage + a margin back to 3.3 V of the microcontroller which can accept a max. of 3.6 V so there is a small margin still there, which should then be translated to the 12-bit value of the ADC.

Currently I use a sw-420 based, AliExpress sensor module, which delivers a digital signal so I lose all hit "Quality" information.

I have found piezo disks with modules connected to it with a r105 resistor and a diode, so this seems to me similar to the original solution, additionally for Arduino whose pins are 5 V, so also not the safest solution for a guaranteed protection against over voltage on my 3.3 V based board (Wemos ESP32 S2 Mini)

For the more "complex" solutions provided online there usually is not much or any follow up, and many different approaches from multiple diodes to entire networks with transistors in one form or another.

Is there a more advanced standard solution / schematic for a problem like this, and if not, where would I start creating one? As I do not have the faintest idea any help, guidance, and direction would be much appreciated.

Best Answer

You can used reversed biased diodes to clip the output as shown in the diagram below. You can use small signal diodes like a 1N4148 or small signal schottky diodes. The voltage divider resistors set the clipping level and can be in the kilo-ohm range. Be sure to take in to consideration the forward voltage drop of the diodes.

Example, VCC = 5V, VEE = -5V. Lets say you want to clip at ±3V. Assume the forward voltage drop of the diodes are 0.5V (silicon diode Vf is in the range of 0.5 to 0.7V depending on current). Thus, you want voltage divider to give a voltage of 2.5V (2.5 + 0.5 = 3V). Using 10k resistors would work fine for this application.

The capacitors are important as they will absorb the over voltage impulse. The capacitors should be at least 100 times larger than the simple capacitance of the transducer.

schematic

[Edit]
If the input is unipolar, you can use the same sort of clipper, but shift things above zero volts as shown in the simulation below.
There are four cases shown here with 0.5, 1, 2, and 5 volt peak sine waves for the input signal. The 2 and 5 volt peak waveforms are clipped. You can play with the resistors to suit your needs (bias level, clipping threshold).

C1 and V1 form the simulated piezo electric transducer which is a reasonable low frequency model approximation. The value of C1 (the transducer simple capacitance) needs to be measured using a capacitance meter that uses a frequency less than 0.1 x the resonant frequency of the transducer.

C2 (optional) forms a capacitive voltage divider with the simple capacitance (C1) of the transducer. C2 can be used to lower output voltage (the sensitivity) of the transducer.

enter image description here
LTspice simulation of a unipolar clipper circuit.