Created
September 2, 2015 01:38
-
-
Save buildcircuit/c4e9b258b3fb43a8a11d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Analog read pins | |
const int xPin = 0; | |
const int yPin = 1; | |
const int zPin = 2; | |
//The minimum and maximum values that came from | |
//the accelerometer while standing still | |
//You very well may need to change these | |
int minVal =270; | |
int maxVal =440; | |
//to hold the caculated values | |
double x; | |
double y; | |
double z; | |
void setup(){ | |
Serial.begin(9600); | |
} | |
void loop(){ | |
//read the analog values from the accelerometer | |
int xRead = analogRead(xPin); | |
int yRead = analogRead(yPin); | |
int zRead = analogRead(zPin); | |
//convert read values to degrees -90 to 90 - Needed for atan2 | |
int xAng = map(xRead, minVal, maxVal, -90, 90); | |
int yAng = map(yRead, minVal, maxVal, -90, 90); | |
int zAng = map(zRead, minVal, maxVal, -90, 90); | |
//Caculate 360deg values like so: atan2(-yAng, -zAng) | |
//atan2 outputs the value of -π to π (radians) | |
//We are then converting the radians to degrees | |
x = RAD_TO_DEG * (atan2(-yAng, -zAng) + PI); | |
y = RAD_TO_DEG * (atan2(-xAng, -zAng) + PI); | |
z = RAD_TO_DEG * (atan2(-yAng, -xAng) + PI); | |
//Output the caculations | |
Serial.print("x: "); | |
Serial.print(x); | |
Serial.print(" | y: "); | |
Serial.print(y); | |
Serial.print(" | z: "); | |
Serial.println(z); | |
delay(100);//just here to slow down the serial output - Easier to read | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment