You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.6 KiB
55 lines
1.6 KiB
// these constants describe the pins. They won't change:
|
|
const int xpin = A1; // x-axis of the accelerometer
|
|
const int ypin = A2; // y-axis
|
|
const int zpin = A3; // z-axis (only on 3-axis models)
|
|
//
|
|
int sampleDelay = 500; //number of milliseconds between readings
|
|
void setup()
|
|
{
|
|
// initialize the serial communications:
|
|
Serial.begin(9600);
|
|
//
|
|
//Make sure the analog-to-digital converter takes its reference voltage from
|
|
// the AREF pin
|
|
pinMode(xpin, INPUT);
|
|
pinMode(ypin, INPUT);
|
|
pinMode(zpin, INPUT);
|
|
}
|
|
void loop()
|
|
{
|
|
int x = analogRead(xpin);
|
|
//
|
|
//add a small delay between pin readings. I read that you should
|
|
//do this but haven't tested the importance
|
|
delay(1);
|
|
//
|
|
int y = analogRead(ypin);
|
|
//
|
|
//add a small delay between pin readings. I read that you should
|
|
//do this but haven't tested the importance
|
|
delay(1);
|
|
//
|
|
int z = analogRead(zpin);
|
|
//
|
|
//zero_G is the reading we expect from the sensor when it detects
|
|
//no acceleration. Subtract this value from the sensor reading to
|
|
//get a shifted sensor reading.
|
|
float zero_G =512;
|
|
//
|
|
//scale is the number of units we expect the sensor reading to
|
|
//change when the acceleration along an axis changes by 1G.
|
|
//Divide the shifted sensor reading by scale to get acceleration in Gs.
|
|
float scale =102.3;
|
|
//
|
|
Serial.print(((float)x - zero_G)/scale);
|
|
Serial.print("\t");
|
|
//
|
|
Serial.print(((float)y - zero_G)/scale);
|
|
Serial.print("\t");
|
|
//
|
|
Serial.print(((float)z - zero_G)/scale);
|
|
Serial.print("\n");
|
|
//
|
|
// delay before next reading:
|
|
delay(sampleDelay);
|
|
}
|
|
|