I'm using a MEAS piezo sensor (this one: https://www.sparkfun.com/products/9196) to detect very slight vibrations, but I'm having trouble selecting a pull down resistor that allows it to be sensitive, but not so sensitive that it just keeps climbing. I'm currently using a one mega ohm resistor to pull down. It works, and keeps the reading from climbing (also allows it to drop to zero), but moving it a lot only gives me a reading of about 100-200 max (out of 1023).

I have it in the A2 pin, just so you know that I have it in an analog pin.


1 Answer 1


Looking at the AD inputs on arduino, they are not a good match fordirectly reading those piezo sensors. First, the AD inputs need a relatively low impedance source:

[Edit: I had posted the wrong link] Arduino Analog Input example clarification [End edit]

So using a 1meg resistor with the piezo is essentially a 1meg source impedance, which is far away from a good situation, and as you've observed, results in drift.

Further, piezos have very poor low frequency response, so slow bending will produce low output, especially with smaller values of resistor.

For better ways to condition the piezo signal, follow the sparkfun page links to the Technical Manual, page 36 Circuit Basics.


Not the answer you're looking for? Browse other questions tagged or ask your own question.