标题: 单片机+DS18B20获取温度后,温度显示不稳定 [打印本页]

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

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

仿真截图.png

温控风扇.zip

77.89 KB, 下载次数: 7


作者: wulin    时间: 2021-2-28 08:55
DS18B20是单总线器件,对时序非常敏感。读取一次温度值需要几ms时间,定时器中断程序就有可能破坏DS18B20读写时序,导致读写数据出错。需要重新设计程序构架来消除干扰。
作者: rayin    时间: 2021-2-28 09:48
我这里有5个18B20 LCD显示十位数,个位数,小数,其中只有一个小数位跳动得很厉害,另外4个正常稳定。 所以你换个18B20,看是否是单个个体18B20的问题,再来调整程序时序。
作者: yun2021    时间: 2021-2-28 14:25
改变采样的频率或者采用平均值
作者: TTQ001    时间: 2021-2-28 23:56
可以在代码中添加数字滤波器以获取传感器读数的平均值




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1