#include <Wire.h>
#include <MPU6050.h>
MPU6050 mpu;
int16_t ax, ay, az;
int16_t gx, gy, gz;
void setup() {
Serial.begin(9600);
Wire.begin();
mpu.initialize();
mpu.setDLPFMode(0);
mpu.setFullScaleGyroRange(3);
mpu.setFullScaleAccelRange(0);
}
void loop() {
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
float axg = ax / 16384.0;
float ayg = ay / 16384.0;
float azg = az / 16384.0;
float gxds = gx / 131.0;
float gyds = gy / 131.0;
float gzds = gz / 131.0;
float axz = atan(axg / sqrt(pow(ayg, 2) + pow(azg, 2))) * 180 / PI;
float ayz = atan(ayg / sqrt(pow(axg, 2) + pow(azg, 2))) * 180 / PI;
if (axz > 75) {
Serial.println("Standing");
} else if (axz < 45) {
Serial.println("Sitting");
} else if (ayz < -160) {
Serial.println("Running");
}
Serial.print("axz ");
Serial.print(axz);
Serial.print(" ayz ");
Serial.print(ayz);
delay(500);
}