系统硬件设计
系统通过集成数字式温湿度传感器检测环境的温度值和湿度值,将环境的温度和湿度转换成数字量,并将结果传送给单片机,通过数码管显示。单片机利用键盘设置环境温度和湿度的最大值和最小值,并将检测的当前值和预设的最大值和最小值作比较,根据比较结果单片机做出相应的判断,以控制输出继电器的工作状态,执行相应的控制操作,从而可以实现对环境温湿度的检测和控制。系统框图如图1所示。
温湿度检测电路
系统采用长英科技的LTM8901作为环境温湿度传感器。LTM8901是一款专门为用户设计自身产品而提供的数字化温湿度探头,可单点使用,也可以与其他ITU设备多点联网使用。其湿度测量量程为1%~99%RH,分辨率为0.5%RH,测量精度为±3.0%RH(典型值);温度测量范围为-25℃~+60℃,分辨率为0.0625℃,测量精度为±0.5℃;响应时间典型值为5秒;工作电压范围为4.5V~5.5V。LTM8901将测量结果直接输出为数字信号,通过“一线式总线”串行传送给单片机,同时可以传送校验码,具有较强的抗干扰纠错能力,其电路连接如图2所示。
键盘输入和数码显示电路
键盘输入电路的主要作用是供用户设置温湿度参考值,包括最大值和最小值。键盘输入电路由4×4个小键盘组成,共16各功能键,包括0~9数字键、温度设置键、湿度设置键、最大值键、最小值键、确认键和清除键。温度设置键有效后可以改变预设温度的最大值和最小值。温度设置键有效后可以改变预设湿度的最大值和最小值。最大值键用于说明输入的是最大限值,最小值键是说明输入的是最小限值,和确认键配合使用可以设定温湿度的预设限值。清除键用以清除当前的设置值。
数码显示电路由6个数码管组成,分成两组,一组用于显示温度值,一组用于显示湿度值。当用户设置温湿度参考值时,显示的是设置的最大值或是最小值;当系统处于监测控制时,显示的是当前检测到的温湿度值。
输出电路
系统采用继电器输出,通过改变温度控系统或湿度控系统的工作状态,实现对环境温湿度的控制。系统温度和湿度控制设备主要包括加热装置、通风装置、抽湿装置和加湿装置。ULN2803是8重达林顿反相驱动器,其输入端接单片机的输出端口,输出端接继电器的输入端。继电器采用国产的交流固态继电器(AC-SSR)H220D15,其内部采用光电隔离方式,可以有效避免电磁干扰。当单片机检测到温度值或湿度值超过预设的范围时,单片机的I/O口输出控制信号驱动继电器,启动电器工作,实现对温度控系统或湿度控系统的控制。
系统软件设计
系统软件设计采用模块化结构,各个功能子块独立,方便调试。系统主流程图如图3所示。从图中可以看出,整个软件在结构上分为主程序、键盘扫描程序、LTM8901控制程序、显示程序以及输出控制程序。主程序实现各个模块的初始化,然后进入中断等待。键盘扫描程序主要任务是判断被按下的是哪一个键,从而执行相应的功能子程序。LTM8901控制程序主要是检测环境的温湿度值,并将检测结果传送给单片机。显示程序是用来显示用户预设值或检测值。输出控制程序主要是将检测值和用户预设值相比较,根据比较结果将相应的输出端口置位或复位,从而控制继电器的工作状态。
LTM8901的控制程序主要包括以下几个步骤:发启动转换命令(250~350μs的负脉冲);延时850~1000ms,用于LTM01转换;发上位机读取命令。当单片机发送读取命令00H时,读取湿度值,然后延时4.5~5 ms,发送读取命令01H,读取温度值。
结语
LTM8901是单片集成的数字式温湿度传感器,所有信号的处理都在内部完成,采用“一线式总线”进行通信,以数字形式完成数据的传输,节省了单片机的I/O口,而且省掉了A/D器件,降低了成本。该系统电路结构简单、检测准确、稳定性好,可以实现对环境温湿度的测量和控制。