1140| 0
|
[入门] 为了节省燃气,用arduino板做了个壁挂炉温控器 |
本帖最后由 vDGaTt5vCZaW 于 2024-2-27 20:55 编辑 第一次发帖,我就照着程序从前往后逐一说明吧。 初始化物联网obloq模块,初始化1602显示屏,初始化温湿度传感器,变量设定T年前设了20.6℃,过完年设成19.7摄氏度了,我在甘肃天水地区,变量开数和关数用来显示继电器开和闭的次数,系统运行时间赋值到变量时间标记,用于同时运行多个子程序。(具体理解:如果用等待10秒,则程序会停在那个地方静静地等10秒,如果用系统时间-初试时间=10秒,则程序会同时执行所有脚本(其实也是顺序执行只不过很快,跑一遍时间很短),符合等式的一瞬间执行相应动作,其余脚本不会停止,能同时无延时地执行,程序能够兼顾所有脚本,程序是动态的、时刻运行着的在不停地从头跑到尾,周而复始,比等待脚本妙太多了,请尝试使用系统运行时间+变量实现更多灵活的程序思路,改造各种之前的项目,抛弃“等待X秒”而实现相同甚至更加出色的结果),设定温度子函数,用两个按钮开关控制设定T的升降,然后室内T和室内湿度都是每个10个半秒即5秒读取一次,还在显示屏上显示系统运行的小时数,当满足室内T小于设定T且后每1440个0.125秒时打开继电器,每1-7的随机数=1时发送一次消息到互联网用于远程查看,打开一次继电器开数增加1,最后时obloq物联网模块,可用手机电脑在远程控制设定T,从而控制继电器开闭(壁挂炉启动,关闭),每隔1600个半秒向云端发送一次室内温湿度和系统运行小时、分钟等信息…… 文末附程序源码,编程软件mind+ 最后说明一下我为什么不用1秒,而要用半秒,0.125秒等等。如以秒为单位,符合条件的那一秒会执行四次(稳定)或五次(有时),为了减少无畏的重复,应该用毫秒做单位,但余数要错开,若各处脚本都设置余数为0则执行,那么1ms的时间程序无法兼顾,靠后的脚本会被靠前的截胡,因为程序大约250ms跑一遍,1s太长,会执行四五次,1ms又太短,只能执行一条(室内温度),勉强2条(室内湿度,但不可靠),也就是说,条件要持续一段时间(约250ms)才能可靠执行,最终我设置成了半秒取余,这样符合条件的持续时间仅有半秒,有效避免了无畏重复。 |
975.19 KB, 下载次数: 1779
程序原码
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed