我用得ENC-03的陀螺仪,看一看我的公式对不对呀,怎么老是出错呢(个人认为是一个重量级问
http://cache.amobbs.com/bbs_upload782111/files_44/ourdev_669711CMHFFA.jpg(原文件名:未命名.jpg)
这个是陀螺仪的数据
http://cache.amobbs.com/bbs_upload782111/files_44/ourdev_669712ECAY3X.jpg
(原文件名:1.jpg)
这个是原理图(放大10倍,不知可对)
我用得是10位的AD采样,ATMEG64单片机
W = (Vout -V0) / 0.67mV /°/s 其中0.67mV/°/s为ENC-03陀螺仪的灵敏度 V0=1.35V
W=(VOUT-276.21)/1.37 276.21是1023/5*1.35 1.37是1023/5000*(0.67*10)w是角速度
下面是角度换算
Angle_next=Angle+W*T; //T是积分步长 我的陀螺仪是50HZ,即20MS
Angle_next=Angle+W*0.005 //我用的是5MS的AD采样,现在问题是我是不是一定要用20MS的采样时间或者以上,是不是我的5MS就是不行。
Angle=Angle_next; //我的算法就是这样的啊
Angle是角度值,现在是飘得很吓人,30秒就到300度了,自动加的。
所有的变量都是float类型 本来飘得都惊人 试着把采样时间再变短一点…………一般来说是要加滤波的(呵呵,不过我不会滤波) 学习中 学习中
页:
[1]