Electronic – Arduino analog input read peak-noise

arduinonrf52832

I am using the NRF52832 and code it with arduino. I am reading A0 to get a signal from a sensor at 1m cable length.

schematic

simulate this circuit – Schematic created using CircuitLab

If I disconnect the sensor from the board, the analog input drop to zero. (Of course, the pull down is doing its job)

But once I connect the sensor, in the console, the analog input read 0,0,0,0,0 then 192 and come back to 0,0,0,0… (arduino analog signal goes from 0 to 1025)

What I have tried so far:

  • Add a 1pF capacitor in parallel of R1.. but not luck, it doesn't cancel the noise.
  • Change R1 value to 10kohm resistor but it appear to increase the noise
  • Adding a ferrite bead to the sensor cable (doesn't change anything)

I also tried this amplifier :

enter image description here

How can I avoid this noise ?

Best Answer

Your piezo has an extremely high source impedance; what you need to do is use an amplifier as a buffer, close to the sensor, to increase the drive strength. No way your piezo can drive a whole meter of line; you'll be mostly seeing noise.

Capacitively loading the piezo is the opposite of helpful.