你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
查看全部评分
feixiang20 发表于 2018-8-17 23:17 读数据的频率非常影响气压的值,或者是温度的值。需要多验证,注意精度等,你可以参考这个资料,比较长不粘 ...
STM32+MS5611测气压温度例程详解
http://blog.csdn.net/moses1994/article/details/50621052
有看到别人的一点经验---
我是在房间内测试MS5611的,模块一直放着不动,然后,通过stm32读取芯片内存储气压值(用其他芯片读取没试过,但应该没有影响)。最后发现,读数据的频率非常影响气压的值,或者是温度的值。这里我已经考虑到了传感器芯片内部做AD转换的时间了。
出现的问题是,当读取频率不一样的时候,气压值和温度值都会稳定在不同的数值上。例如,每20ms读取一次,和每100ms读取一次,气压值前后会有很大的差别,已经经过很多次试验了,传感器芯片一直放着一旁没有动过,室内肯定无风,也没有空调影响。所以,我得出的结论是读数的频率影响了其稳定的数值。
最后我的解决方法是,不得不适用stm32的定时器中断,每隔一个精确的时间读取一次传感器数值,这才稳定下来。看过MWC的算法里面读气压计的代码部分,它是判断是否超过10ms然后读取的,由于不是中断,所以,有可能某些值是超过10ms读取的,这样或多或少会造成读数的不准确。
ps:MS5611在刚刚通电数10s内读到的数值,变化幅度是最大的,需要一段时间的预读取使其稳定下来。MWC里面有个寄存器控制着这个预读取并计算基准气压的量calibratingB。在主文件内面定义的值是200,我觉得这个还不够,还要更大才能让气压计稳定下来,但是,由于气压计读数很慢,每次要20ms(MWC里面设置的),所以,可能会造成飞机上电之后需要等待的时间过长。
评分
查看全部评分
感谢百忙中抽时间来回复!!
恩,那篇文章我是仔细看了,也是精准定时100ms采集一次。单个ms5611气温,气压都非常稳定的,就算气压变化也是连续的如一个小时有10多个pa的慢慢增加和减少。(Ps:每日的气压会波动3-400pa左右)。所以单个模块我认为是正常的。
但是,我想达到的效果是两个模块做差分得到两个模块的相对高度。所以首要前提是两个模块在同一高度同一环境下,测得的气压值是相同的,或者两个设备气压差值是相同的。实际测试如:
9:13 94987 94970 -17
9:36 95011 94989 -22
9:51 95026 94999 -27
10:08 95037 95009 -28
10:18 95040 95008 -32
10:34 95032 94998 -34
10:46 95023 94989 -34
10:58 95015 94982 -33
11:25 95008 94975 -33
11:44 95003 94973 -30
11:56 94985 94955 -30
13:38 94916 94897 -19
14:56 94816 94798 -18
15:35 94750 94731 -19
但是测试值的差值不是相同的,因为差值为10pa,相差距离约有1米,我这边要求比较高想精度尽量能确定到1米以下。但是上面的差值过大2-30pa.毕竟这个芯片号称精度能达到10cm。