Circuit for using a piezo film sensor

Hi,

I am trying to connect a piezo film sensor to my Arduino nano. I am using the following circuit:

The problem is that on top of the sensed data, there seems to exist a low frequency envelope oscillation of period of about 10 seconds. The amplitude range of the oscillation depends on R - for 1MOhm it is about the full range (0-5V). Of course it makes the data unusable.

The only thing I could think of is some capacitor being charged and discharged, but if it is true, what is the origin of such capacitance? does the inherent capacitance of the piezo film can cause such an oscillation? How to get rid of it?

Thanks,

Ita.

p.s I've tried to search in the forum, and there is a picture of a circuit in this thread: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236017180/7#7, but the picture is too small...

low frequency envelope oscillation of period of about 10 seconds.

Are you sure it is that low?
If that is the frequency of the envelope what is the frequency of the carrier?

My guess is that this is mains pick up beating with something very close to mains to give you this interference. Make sure you have good earth returns (grounds), one from each sensor back to the input. Don't try and save wire by going round all the sensors with a common wire and bringing that to the Arduino.

On that circuit I would put a series resistor of about 10K to give the diodes a fighting chance.

Hi and thanks for the fast reply.

Actually the frequency of the envelope is longer, about 20 sec. The carrier is just the signal coming from the piezo sensor, so it is quite wide-band - I click on it and stuff like that.

I think you are right about the mains being the origin - I am working on a laptop, and when I disconnect it from the mains, the low frequency envelope disappears.

I am not sure I understand your comment regarding the earth - do you mean to have a physically different earth wire for each sensor? what is the difference from having one common wire? The earth is common anyway. (I am using one sensor at the moment, so it is not relevant to my former question).

How come the mains is coupled to the Arduino? Isn't the usb voltage suppose to be de-coupled?

Thanks again,

Ita.

Seems I was happy too soon :frowning:

It seemed to work ok for a few minutes, and then the oscillation was back. It is steel there, even while working on the laptop while it is running on the battery.

I attach a video of the reading from the arduino in Max (as a bar-graph) while I am constantly applying some pressure to the piezo sensor, so you can see it.

Any other ideas?

http://ccrma.stanford.edu/~itakatz/MOV0007A.mpg

Any other ideas?

No still the same idea as this is your problem.

do you mean to have a physically different earth wire for each sensor

Yes

How come the mains is coupled to the Arduino? Isn't the usb voltage suppose to be de-coupled?

No, a long wire will act like an antenna. This will pick up electromagnetic emissions the biggest of which is mains radiation. This is made easier by the sensor and the connection into the Arduino being high impedance. So you could lower the impedance but that would mean putting something like a transistor at the sensor end.

Do you get the problem with a very short connection? Did you try the smaller resistor values?

while I am constantly applying some pressure to the piezo sensor,

You do know that the piezo only outputs voltage in response to a change in pressure not a constant one?

Do you get the problem with a very short connection? Did you try the smaller resistor values?

Yes, my wires are very short. Didn't try other R values yet.

You do know that the piezo only outputs voltage in response to a change in pressure not a constant one?

I know that it cannot hold a charge if pressed, but still, it measures pressure, not the pressure's derivative.

Another thing - I'm quoting from the product page, http://www.sparkfun.com/commerce/product_info.php?products_id=9196:

A small AC and large voltage (up to +/-90V) is created when the film moves back and forth

but still, it measures pressure, not the pressure's derivative.

But the quote you posted says otherwise, the relevant bit is:-

when the film moves back and forth

As the film is flexed it generates a charge when held under pressure the charge is held until it leaks away from the impedance of the aruino input and the value of R. No further charge is generated until the film is flexed again.

Didn't try other R values yet.

That's why you still have the problem.