Pages: [1]   Go Down
Author Topic: How to connect piezo accelerometer?  (Read 828 times)
0 Members and 1 Guest are viewing this topic.
USA, OH
Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?

Logged

United Kingdom
Offline Offline
Tesla Member
***
Karma: 220
Posts: 6587
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

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.

United Kingdom
Offline Offline
Tesla Member
***
Karma: 220
Posts: 6587
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

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.

USA, OH
Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

United Kingdom
Offline Offline
Tesla Member
***
Karma: 220
Posts: 6587
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: December 13, 2012, 04:35:37 pm by dc42 » Logged

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.

USA, OH
Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
« Last Edit: December 13, 2012, 04:45:26 pm by Stan09 » Logged

United Kingdom
Offline Offline
Tesla Member
***
Karma: 220
Posts: 6587
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes, that looks right. R1 is needed to provide the ground current to the FET in the transducer.
Logged

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.

USA, OH
Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: [1]   Go Up
Jump to: