搜索
查看: 6954|回复: 3

[讨论] stm32f103+ms5611计算高度方案。

[复制链接]

该用户从未签到

3

主题

13

帖子

0

蝴蝶豆

初级会员

最后登录
2023-12-26
发表于 2018-8-17 18:51:49 | 显示全部楼层 |阅读模式
1、使用了stm32f103+ms5611测量大气压高度,单个设备上升下降都能很稳定的测到大气压变化精度也非常高。
2、想通过两个ms5611测量大气压,通过差分方式去测得两个设备的相对高度。

测试结果:两个设备从早到晚联系测试,高度相同,温度基本也保持一致,但是测试3天过程中,1天两个设备差值能一直保持不变,另外两天测试气压差值不定。所以不能确定是否能用差分方式测试相当高度。
提问:是否有人使用过ms5611,并且做过多个ms5611测试的。是否有什么经验。
回复

使用道具 举报

该用户从未签到

91

主题

4756

帖子

4

蝴蝶豆

论坛元老

最后登录
2021-2-27
发表于 2018-8-17 23:17:22 | 显示全部楼层
读数据的频率非常影响气压的值,或者是温度的值。需要多验证,注意精度等,你可以参考这个资料,比较长不粘贴了
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里面设置的),所以,可能会造成飞机上电之后需要等待的时间过长。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

13

帖子

0

蝴蝶豆

初级会员

最后登录
2023-12-26
 楼主| 发表于 2018-8-18 09:32:10 | 显示全部楼层
feixiang20 发表于 2018-8-17 23:17
读数据的频率非常影响气压的值,或者是温度的值。需要多验证,注意精度等,你可以参考这个资料,比较长不粘 ...

感谢百忙中抽时间来回复!!
恩,那篇文章我是仔细看了,也是精准定时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。
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

13

帖子

0

蝴蝶豆

初级会员

最后登录
2023-12-26
 楼主| 发表于 2018-8-27 11:53:43 | 显示全部楼层
各种尝试后依然不行,又仔细读了datasheet,看了芯片是不能达到我想做的精度。买两个LPS22HB来试试精度了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-24 18:39 , Processed in 1.183188 second(s), 38 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表