MPU6050 加速度计求角度问题
本帖最后由 logosz 于 2014-5-2 15:29 编辑网上程序都是这样写的。
Accel_x= GetData(ACCEL_XOUT_H); //读取X轴加速度
Angle_ax = Accel_x /16384; //计算得到角度(弧度),请问这里为什么得到是弧度制的,而不是角度制的。如果这里是角度制的话就可以省去下一步的转换了。
Angle_ax = Angle_ax*1.1*180/3.14; //弧度转换为度
attachimg]188006
可能是好算吧,转换成角度制又不麻烦 明白了,其实Angle_ax = Accel_x /16384得到的是重力加速度沿X轴方向的分量(单位为g),应该再除以竖直向下的重力加速度1g才行。Angle_ax = Accel_x /16384应该写成
Angle_ax = Accel_x /16384/1;这样得到是sin(θ)的值,而sin(θ)又近似于θ(此时θ为弧度制),所以即得到了角度(弧度),Angle_ax = Angle_ax*1.1*180/3.14; //弧度转换为度
因为x>=sinx,故乘以1.1适当放大 logosz 发表于 2014-5-3 10:47
明白了,其实Angle_ax = Accel_x /16384得到的是重力加速度沿X轴方向的分量(单位为g),应该再除以竖直向下 ...
你知道这里为什么要除于16384吗? 学习了, v灰尘 发表于 2014-9-14 22:11
你知道这里为什么要除于16384吗?
精度为:16384LSB/g,即加速度为1g时,输出为16384. julin 发表于 2014-9-19 16:32
精度为:16384LSB/g,即加速度为1g时,输出为16384.
{:biggrin:} 谢了,后来看手册大概看懂了。 学习了···· julin 发表于 2014-9-19 16:32
精度为:16384LSB/g,即加速度为1g时,输出为16384.
手册 发一份给我 谢谢
学习了,谢谢
页:
[1]