Go Down

Topic: How to connect piezo accelerometer? (Read 1 time) previous topic - next topic

Stan09

I am trying to read  piezo accelerometer ACH-01 data with Arduino;
I am confused with interface circuit it requires. Data sheet says it need biased power supply and provides a simple schematic with -5V/+5V supply; there is another uni-polar alternative with two op-amps;
Is there any simpler way to interface Arduino with this accelerometer?
If I connect it to Gnd, +5V and to analog ping through RC high pass filter, it shows accelerations, but only top half of acceleration wave - I vaguely understand it has something to do with that biasing.
Another thing I don't understand about it - why it requires high-pass filter?
I tried connecting it directly to gnd, +5V and analog pin to read output voltage; when untouched  the output is about 0; if I give it a little knock, the output momentarily goes to 2-3 V and then goes back to zero _very slow_, like, for a second or so. Why?


dc42

Try connecting a resistor of about 33K between the output and ground. That should make the device perform better output go back to zero quickly.

The reason for the high pass filter is that the output will have a bias voltage of around +1V on it. You could connect the output direct to the Arduino (without the high pass filter, but with the 33K resistor in place), but you would have to allow for the bias voltage when you take the reading, and the bias voltage may vary a little with temperature. However, you would be able to read negative acceleration as well as positive acceleration.

Another way to read both positive and negative acceleration is to modify your high pass filter to add a bias of +2.5V. To do this, replace the single resistor you have between the input pin and ground by two equal resistors, one to ground and one to +5V.
Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

dc42

PS:

1. You can use a single-supply op-amp instead of the dual-supply one shown in the datasheet, if you bias the op-amp noninverting input to +2.5V.

2. The 33K resistor to ground that I suggested takes the place of the 180K resistor to the negative supply shown in the datasheet.

3. It is not difficult to generate a low-current supply of around -4V if you have a spare PWM pin on the Arduino. But you should be fine without it if you choose the op amp carefully.
Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

Stan09

dc42, thank you for the prompt response!
this is my current connection:

Resistors are 15k (left) and 150k (right), capacitor 0.33 mF
With this setup I can only see positive accelerations.
What should i change to see both negative and positives?
May be, I should connect R1 and R2 not to the Gnd, but to something like +2v from simple voltage divider?

dc42

#4
Dec 13, 2012, 10:32 pm Last Edit: Dec 13, 2012, 10:35 pm by dc42 Reason: 1
To see negative accelerations as well, the simplest approach is to connect another 150K resistor from the Arduino pin to +5V.

PS- 15K is a bit low for the left hand resistor. You will get better sensitivity and better range for negative accelerations with 33K or 47K.
Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

Stan09

#5
Dec 13, 2012, 10:41 pm Last Edit: Dec 13, 2012, 10:45 pm by Stan09 Reason: 1
So it should be something like this?


I don't quite understand why do I need R1 at all? It's not a part of high pass filter, right?
Is it something related to high output impedance of the sensor?

dc42

Yes, that looks right. R1 is needed to provide the ground current to the FET in the transducer.
Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

Stan09

Thanks a lot for your help, dc42!
Now it really works,
so I am acquiring and storing about 28000 points/sec with Arduino Mega.

Go Up
 

Quick Reply

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Note: this post will not display until it's been approved by a moderator.
Name:
Email:

shortcuts: alt+s submit/post or alt+p preview