pillar2060 发表于 2017-2-19 13:41:02

MPU6050测量角度的方法?为什么我测得角度只能反映0~90°

附上我的角度测量程序:
/*******************************************/
函数名称: short AVR_Get_Angle(float x,float y,float z,unsigned char dir)
功    能: 知道三个轴上的重力加速度就可以通过如下算法计算出角度。
参    数: ms--延时的毫秒数
返 回 值: 一个16位的角度值 0.1度
/********************************************/
short AVR_Get_Angle(float x,float y,float z,unsigned char dir)
{
float Result=0;
floattemp;
switch(dir)
{
case 0:   //X
temp = sqrt((x*x+y*y))/z;
Result = atan(temp);
break;
case 1:   //Y
temp = x/sqrt((z*z+y*y));
Result =atan(temp);
break;
case 2:   //Z
temp = y/sqrt((x*x+z*z));
Result =atan(temp);
break;
}
return Result*1800/3.14;
}

很奇怪的时候为什么我的角度测出来是0~90°,请前辈多多指教?
还有就是MPU6050模块用那种测量角度更好一点?

ackyee 发表于 2017-7-7 23:04:34

我也是,过了90度 角度变成45度了

ackyee 发表于 2017-7-7 23:31:42

我已经解决这个问题了 Z轴的计算有问题 读出的数据处理跟X轴和Y轴不一样
页: [1]
查看完整版本: MPU6050测量角度的方法?为什么我测得角度只能反映0~90°