找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4783|回复: 4
打印 上一主题 下一主题
收起左侧

单片机+DS18B20获取温度后,温度显示不稳定

[复制链接]
跳转到指定楼层
楼主
项目内容:智能温控系统在检测中,通过温度传感器DS18B20实时获取当前温度,若低于设定温度下限或热释电传感器没有感测到人体则不会下达开机指令,若温度介于上限和下限之间且热释电传感器感测到人体时电机转速缓慢,当温度大于上限值且热释电传感器感测到人体时,电机全速转动。
仿真时,LCD显示屏dw为模式,dw:0即温度低于设置的下限,dw:1即温度介于温度范围间,dw:2即温度大于温度上限
在模拟仿真时,LCD显示的温度一直在变化,且相差几十度,反复跳动,求助!
相关文件已上传到附件,向各位前辈求助!

仿真截图.png (131.53 KB, 下载次数: 66)

仿真截图.png

温控风扇.zip

77.89 KB, 下载次数: 7

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2021-2-28 08:55 | 只看该作者
DS18B20是单总线器件,对时序非常敏感。读取一次温度值需要几ms时间,定时器中断程序就有可能破坏DS18B20读写时序,导致读写数据出错。需要重新设计程序构架来消除干扰。
回复

使用道具 举报

板凳
ID:517951 发表于 2021-2-28 09:48 | 只看该作者
我这里有5个18B20 LCD显示十位数,个位数,小数,其中只有一个小数位跳动得很厉害,另外4个正常稳定。 所以你换个18B20,看是否是单个个体18B20的问题,再来调整程序时序。
回复

使用道具 举报

地板
ID:887027 发表于 2021-2-28 14:25 | 只看该作者
改变采样的频率或者采用平均值
回复

使用道具 举报

5#
ID:420836 发表于 2021-2-28 23:56 | 只看该作者
可以在代码中添加数字滤波器以获取传感器读数的平均值
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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