logosz 发表于 2014-5-2 15:28:08

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



小手冰凉 发表于 2014-5-2 17:34:50

可能是好算吧,转换成角度制又不麻烦

logosz 发表于 2014-5-3 10:47:26

明白了,其实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适当放大

v灰尘 发表于 2014-9-14 22:11:10

logosz 发表于 2014-5-3 10:47
明白了,其实Angle_ax = Accel_x /16384得到的是重力加速度沿X轴方向的分量(单位为g),应该再除以竖直向下 ...

你知道这里为什么要除于16384吗?

nhw1234 发表于 2014-9-15 17:44:48

学习了,      

julin 发表于 2014-9-19 16:32:04

v灰尘 发表于 2014-9-14 22:11
你知道这里为什么要除于16384吗?

精度为:16384LSB/g,即加速度为1g时,输出为16384.

v灰尘 发表于 2014-9-19 22:17:50

julin 发表于 2014-9-19 16:32
精度为:16384LSB/g,即加速度为1g时,输出为16384.

{:biggrin:} 谢了,后来看手册大概看懂了。

Mira奎 发表于 2015-3-7 19:13:16

学习了····

安安安 发表于 2016-3-17 21:58:20

julin 发表于 2014-9-19 16:32
精度为:16384LSB/g,即加速度为1g时,输出为16384.

手册 发一份给我 谢谢

brant08 发表于 2017-11-20 23:26:24

学习了,谢谢
页: [1]
查看完整版本: MPU6050 加速度计求角度问题