Some time ago, I purchased a MiniSense 100 Vibration sensor. I probably had some project in mind, but it happened that it dived into drawer among other “to do” things. I thought it’s time to try a few things with it. Piezo sensor MiniSense 100 is very sensitive with a pretty good frequency response and is linear (±1%). As you can see, high sensitivity is achieved with a 0.3-gram inertial mass at the end of the film. As there is a hole in the mass, you probably can screw in an additional mass and increase sensitivity even further.
Probably there is no need to explain where such a sensor would be helpful. These could be vibration/ motion sensors, impact sensors, and other areas where motion and acceleration are involved. Usually, sensitivity is 1V/g. Where g is standard gravity or standard acceleration due to free fall and is equal to 9.80665m/s2. As a mechanical device, it also has a resonant frequency of 75Hz. At this point, sensitivity reaches 5V/g.
The problem is that sensor output can reach over ±90V on high accelerations or vibrating at the resonant frequency. You cannot plug it directly into a microcontroller or other circuit and expect it to work correctly. It can potentially damage sensitive parts. Here is a quick test with an oscilloscope. Just attached sensor leads to probe set to x10 scale, and you can see how easy with simple flip peak voltage reached almost 100V at the positive side and -46V at the negative swing. The total, you get 144V, and you could get more on a more substantial impact.
Also, you can see that sensor output is a sine wave that rapidly decays. If you attach the sensor directly to the microcontroller where the input voltage is limited to 5V or 3.3V, you can get undesired results. So, how to make this sensor usable with digital electronics? First of all, we have to deal with signal conditioning.
If we look at Piezo film based transducer, we will see that it can be seen as an ideal voltage source and series capacitor. From the datasheet, we know that capacitance is 244pF.
Now we have an interesting situation. If we connect the transducer to any external load like a resistor or oscilloscope (which also has input resistance), we get a high pass filter. If we want to do quality signal measurements, we need to take this into account. Let’s say we want the cut off frequency to be at 2Hz. At this point, the magnitude of the Piezo signal will fall to 0.707 level or -3dB. Using a simple formula, we can find a load resistor:
R = 1/(2πfC) = 1/(2*π*2*244*10-12) = 326MΩ
This means that to get a low-frequency response, you need a high resistance load or input of the next stage. The next step would be signal buffering. To ensure our filter to be effective, we require that buffer input impedance was even higher than the load resistor. If you take the LM741 operational amplifier, you will see that input resistance is about 2MΩ. So this would shift the filter’s cut-off frequency to a higher frequency, and measuring slow signals would become problematic. It would be best if you were looking for low bias current operational amplifier. For instance, Linear Technology has LTC6240, which input resistance is 1012Ω. It could be a good candidate. Then signal conditioning would look like this:
Here we have a buffered sensor with a low cutoff frequency. If you need to measure weak vibrations, then the sensor will output low voltage. Then probably would be a great idea to add some gain to the amplifier:
If we would like to scale 1V/g to 5V/g, then we would need a gain of 5. We could choose resistors as follows:
R3 = 1MΩ; R2 = 250kΩ.
Since piezo transducers can output a high voltage signal, it is good practice to include diode protection at the input. It would be best if you chose Zener diodes according to the signal level. For instance, if you work with 5V signals, then 5.1V Zener should be fine:
The above circuits are practical if you need to get some quantity measurement. This means the intensity of vibrations. By connecting this circuit to ADC, you can get different values according to acceleration level. But sometimes, you might only need to trigger the circuit when any vibration is present. A simple application can be an alarm. To achieve this, you can connect the piezo element directly to the microcontroller or another digital circuit by leaving protection diodes only:
All you need is to capture any activity on output and trigger events. Many projects use something similar. There may be some low pass filtering added before output to smooth spikes. A simple RC filter works fine.
But a more civilized way of triggering events would be by using a simple comparator. Using a potentiometer on negative input, there would be possible to adjust the threshold of triggering pulse. Such configuration could be used to connect to the microcontroller external interrupt pin. This way, MCU could wake up only when the comparator pulse is generated instead of continually monitoring ADC and triggering software events. The simple schematic would look as follows:
Practically don’t expect to do precise measurements with these vibration sensors. They are great for detecting accelerations, shocks, vibrations. Also, they are cheap comparing to accelerometers. So if your application requires simple sensing, these might be a great choice and money saver.