使用MS5611高精度气压计之后的感想
我是在房间内测试MS5611的,模块一直放着不动,然后,通过stm32读取芯片内存储气压值(用其他芯片读取没试过,但应该没有影响)。最后发现,读数据的频率非常影响气压的值,或者是温度的值。这里我已经考虑到了传感器芯片内部做AD转换的时间了。
出现的问题是,当读取频率不一样的时候,气压值和温度值都会稳定在不同的数值上。例如,每20ms读取一次,和每100ms读取一次,气压值前后会有很大的差别,已经经过很多次试验了,传感器芯片一直放着一旁没有动过,室内肯定无风,也没有空调影响。所以,我得出的结论是读数的频率影响了其稳定的数值。
最后我的解决方法是,不得不适用stm32的定时器中断,每隔一个精确的时间读取一次传感器数值,这才稳定下来。看过MWC的算法里面读气压计的代码部分,它是判断是否超过10ms然后读取的,由于不是中断,所以,有可能某些值是超过10ms读取的,这样或多或少会造成读数的不准确。
ps:MS5611在刚刚通电数10s内读到的数值,变化幅度是最大的,需要一段时间的预读取使其稳定下来。MWC里面有个寄存器控制着这个预读取并计算基准气压的量calibratingB。在主文件内面定义的值是200,我觉得这个还不够,还要更大才能让气压计稳定下来,但是,由于气压计读数很慢,每次要20ms(MWC里面设置的),所以,可能会造成飞机上电之后需要等待的时间过长。
这是在折腾了MS5611之后的一点心得,希望广大在高度算法上折腾的盆友们发表下自己的看法和解决方法。大家多多交流!
现在大多数气压计都是压电式传感器,不知道,这个与传感器的属性有没有关系,希望有经验的人士解答交流一下
朋友,我最近也在测试MS5611,也有和你类似的情况。传感器非常敏感,我实际使用的时候用了一个海绵贴在MS5611表面以防止气流干扰。使用定时器计数的方法进行精确延时,10ms读取一次数据。原始气压转换成高度后进行滤波,得到的值较稳定。不过在刚开上电后,温度会缓慢升高,气压也会缓慢降低,一段时间后才会比较稳定。我猜想是模块上电后,由于模块本身电路的影响,模块会不断升温,比如稳压芯片。直到温度稳定后,MS5611数据也才会稳定。
这个我之前也研究过,我测试了ms5611和ms5534,冬季气温低,但是从5611读取出来的温度数值,也能达到15度以上,所以我想5611的温度数值是否是芯片的工作温度,还是电路产生的温度。相反,我测试5534模块时候反倒是温度数值较为小。不知道有没有人知道气压计选用ms5611好,还是ms5534好一点
写了一个代码这个ms5611误差值太大 我也是用中断读的气压误差有接近10pa 误差超过1m求解
朋友,我最近在测试MS5611,通电48小时 在通电期间读取数据,环境条件基本不变 但数据飘动很大 ,从早上到晚上数据逐渐增加多300PA 后来12小时有慢慢地下降少了360多PA ,测试期间高度温度基本不变, 大神们求解?