const int xpin = A0; // x-axis of the accelerometer const int ypin = A1; // y-axis const int zpin = A4; // z-axis (only on 3-axis models) // int sampleDelay = 100; //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.0; // //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(" x : "); Serial.print(((float)x - zero_G)/scale); Serial.print("\t"); // Serial.print(" y : "); Serial.print(((float)y - zero_G)/scale); Serial.print("\t"); // Serial.print(" z : "); Serial.print(((float)z - zero_G)/scale); Serial.print("\t"); // if(((float)x - zero_G)/scale > 0 && ((float)x - zero_G)/scale < 0.5 ) { Serial.println(" Center "); } if(((float)x - zero_G)/scale > 0.5 ) { Serial.println(" Left "); } if(((float)x - zero_G)/scale < -0.1 ) { Serial.println(" Right "); } // delay before next reading: delay(sampleDelay); }