ADXL335 accelerometer

advertisement
living with the lab
Acquiring Data from an
ADXL335 Accelerometer
DIGIKEY DKSB1002A Evaluation Board
3-axis accelerometer
Arduino Uno
microcontroller board
living with the lab
DKSB1002A Evaluation Board and ADXL335 Accelerometer
•
•
•
•
DKSB1002A is a prototyping board purchased for $20 from Digikey
Screw holes for mounting board onto “object of interest”
Board is ~ 20mm square
ADXL335 3-axis accelerometer chip
• 3-axis
this small chip is the ADXL335 accelerometer
(this is an older model . . . they are even smaller now)
• ±3g
•
•
•
•
•
z
COM - ground
VSS - power (we will provide 5V)
X
- acceleration in x-direction
Y
- acceleration in y-direction
Z
- acceleration in z-direction
x
y
the DKSB1002A is a board used to evaluate the accelerometer; if you
were putting an accelerometer in a device like a cell phone, you
would only use the ADXL335 chip (and maybe some capacitors)
2
living with the lab
Implementing a 3-axis Accelerometer: Wiring to Arduino
COM - ground
VSS - power (we will provide 5V)
X
- acceleration in x-direction
Y
- acceleration in y-direction
Z
- acceleration in z-direction
3
living with the lab
Programming
void setup()
{
Serial.begin(9600);
}
void loop()
{
int xaccel = analogRead(0);
int yaccel = analogRead(1);
int zaccel = analogRead(2);
unsigned long timevar = millis();
Serial.print(timevar);
Serial.print(" ");
Serial.print(xaccel);
Serial.print(" ");
Serial.print(yaccel);
Serial.print(" ");
Serial.println(zaccel);
associates a time with
each set of accelerations
}
4
living with the lab
Calibration
z
x
y
5
living with the lab
+x
qx
Angle Measurement
ax
z
x
y
θx = asin(ax/g)
qx
1g (perceived vertical acceleration)
6
living with the lab
Example Application
The piezospeaker below outputs a frequency that varies with the acceleration in the xdirection. The equation for computing the frequency is chosen so that the device makes
an audible noise that varies when rotating or shaking the device.
void setup(){Serial.begin(9600); }
void loop()
{
int xaccel = analogRead(0);
int freq = 1500+xaccel*2;
tone(7,freq);
Serial.print(xaccel);
Serial.print(" ");
Serial.println(freq);
}
7
Download