Piezo Sensor

Hi Everyone.

I am an old new user here.

i am attempting to make a vibration sensor using a Piezo.

using the analogRead i get a lot of noise when there is no vibration on the sensor.

the read jumps between 0 to 100 (using INTERNAL AREF)

But then, if i stand barefoot on the floor and i touch the arduino’s ground terminals, i get very good readings.

i know i can use a threshold or i can use smoothing, but both reduce the sensitivity,

Is there a better way to use the maximum reliable sensitivity?

Thanks.

Have you searched the forum? "Piezo sensor" comes up with a lot of hits and one may help your situation.

Weedpharma

I have searched.

I tried decoupling, it did not help.

IS there a way for me to get to the same results as i got while i physically grounded the arduino?

Thanks.

How long are your piezo wires. A very high impedance circuit like that easily picks up noise/hum. Using the internal Aref makes the piezo 5x more sensitive, but that also goes for the hum pickup. If you have to use longer than 5-10cm wires, use shielded (audio) wire. Very long wire could reduce piezo sensitivity. Leo..

Yes, shielding should help. At high impedance analog input behaves like a capacitive sensor http://playground.arduino.cc/Main/CapacitiveSensor?from=Main.CapSense

You can also experiment with lower values for the resistor.

The wire are quite long about 2 meters.

The wire is an audio cable with shield.

I tried lowering the resistor value, it brings down the noise but also the sensitivity.

Is there any other way to improve the grounding?

It drives me nuts to see it working perfectly only when i touch it barefoot :(

Thanks.

This could have been solved in a few posts if you had added the code and real picture of the setup. See the forum rules. Leo..

Wawa: This could have been solved in a few posts if you had added the code and real picture of the setup. See the forum rules. Leo..

I did add a drawing, And the details i added needed no code for understanding.... or maybe i am wrong... I think it was only an hardware issue..

Anyway, problem solved.

I used an external adc (ads1115), that alone did not help with the noise, i then used An analog differential read between two inputs, so instead of connecting the piezo to ground and an input i connected it to a0 and a1 of the external adc, and then my actual read would be the difference between a0 and a1.

If anyone is interested in more details, just pm me.

Thanks anyway.