Some time ago I purchased a MiniSense 100 Vibration sensor. Probably had some project in mind, but it happened that it dived in to drawer among other “to do” things. I thought it’s time to try few things with it. Piezo sensor MiniSense 100 is very sensitive with pretty good frequency response and is linear (±1%). As you can see high sensitivity is achieved with 0.3 gram inertial mass at the end of film. As there is a hole in the mass you probably can screw in additional mass and thus increase sensitivity even further.
Probably there is no need to explain where such sensor would be useful. These could be vibration/ motion sensors, impact sensors and other areas where motion and acceleration is involved. Normally sensitivity is 1V/g. Where g is standard gravity or also known as standard acceleration due to free fall and is equal to 9.80665m/s2. As mechanical device it also has resonant frequency at 75Hz. At this point sensitivity reaches 5V/g.
The problem is that sensor output can reach over ±90V on high accelerations or when it is vibrating are at resonant frequency. You cannot plug it directly to microcontroller or other circuit and expect it to work correctly. It can potentially damage sensitive parts. Here is a quick test with 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 positive side and -46V at negative swing. Total you get 144V and you could get more on stronger impact.
Also you can see that sensor output is sine wave that rapidly decays. If you attach sensor directly to microcontroller it where 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 ideal voltage source and series capacitor. From datasheet we know that capacitance is 244pF.
Now we have interesting situation. If we connect transducer to any external load like resistor or oscilloscope (which also has input resistance) we get high pass filter. If we want to do quality signal measurements, we need to take this in to account. Let’s say we want the cut off frequency to be at 2Hz. At this point the magnitude of Piezo signal will fall to 0.707 level or -3dB. Using simple formula we can find load resistor:
R = 1/(2πfC) = 1/(2*π*2*244*10-12) = 326MΩ
This means that in order to get low frequency response you need high resistance load or input of next stage. Next stage would be signal buffering. In order to ensure our filter to be effective, we need that buffer input impedance were even higher than load resistor. If you take LM741 operational amplifier you will see that input resistance is about 2MΩ. So this would shift filter’s cut-off frequency to higher frequency and measuring slow signals would become problematic. You should look 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:
Here we have buffered sensor with low cutoff frequency. If you need to measure weak vibrations then sensor will output low voltage. Then probably would be a great idea to add some gain to 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 high voltage signal it is good practice to include diode protection at the input. You should choose Zener diodes according to signal level. For instance, if you work with 5V signals, then 5.1V Zener should be fine:
These above circuits are useful 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 circuit when any vibration is present. Simple application can be alarm. To achieve this you can simply connect piezo element drectly to microcontroller or other digital circuit by leaving protection diodes only:
All you need is to capture any activity on output and trigger event. Many projects use something similar. There may be some low pass filtering added before output to smooth spikes. Simple RC filter works fine.
But more civilized way of triggering events would be by using simple comparator. By 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 microcontroller external interrupt pin. This way MCU could be woke up only then when comparator pulse is generated instead of constantly monitoring ADC and triggering events in software. 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 great choice and money saver.