基于RS-485通信的温度水位远程测控系统
扫描二维码
随时随地手机看文章
摘要:为满足太阳能热水工程远距离测控的需要,设计了一个基于单片机控制的温度和水位远程测控系统。系统的主机和从机均以ATmega16为控制器,二者通过RS-485通信,距离可以超过1 km。用NTC热敏电阻作测温元件,使用单片机内置的10位A/D转换模块实现多路温度的测量。通过非对称式多谐振荡器电路把水位转换为振荡频率,再用计数器测量频率来实现水位的测量。给出了主机和从机的完整电路及功能,较详细地介绍了水位和温度的测量电路以及传感器参数。
关键词:RS-485;ATmega16;水位;温度;远程
目前,与太阳能集热热水工程配套的控制器基本上都是单机工作,需要安装在离太阳能热水工程现场较近的位置,而太阳能热水工程一般是安装在工厂、宾馆和居民楼的楼顶上,因此管理人员必须爬上楼顶才能完成信息查看和功能操作,管理和操作十分便。为满足太阳能热水工程远距离测控的需求,本设计采用ATmega16单片机,利用RS-485通信技术、NTC热敏传感器和多谐振荡器测量水位方法,研制开发了温度水位远距离测控系统,解决了太阳能热水工程需要远距离测控的问题。
1 系统结构和工作原理
远距离温度和水位测控系统用于选择功能,设置参数,测量和显示太阳能热水工程储水箱中的水温和水位、集热器的温度、温差循环管道温度和出水温度,控制上水、温差循环换能、辅助电加热、管道防冻等。系统主要由主机、从机、温度和水位传感器及电气控制部分组成,远程温度和水位测控系统的总体结构如图1所示。主机以ATmega16单片机为控制芯片,通过RS-485与从机通信,完成基本功能设置,用LCD显示工作状态、水位、多路温度等数据,并把设置的参数和控制信息传送给从机。从机也是以ATmega16为控制芯片,主要负责完成水位、温度等现场数据的采集和电气控制。
2 系统硬件设计
ATmega16单片机内置10位A/D模块,可直接实现多达8个通道模拟信号的A/D转换输入,有两个8位和一个16位的计数器,带有512的E2PROM,可以实现数据掉电保护,ATmega16还带有串行接口,可以接485转换芯片实现RS-485通信。
2.1 主机电路
主机的主要功能是接收从机采集的储水箱水位、4路温度数据、在128x64的液晶上显示水位、温度和工作状态。主机的另外一个功能是完成参数的设置,然后把设置的参数发送给从机。图2是主机的电路图,其主要由RS-485通信、键盘输入和LCD显示等几个部分组成。
2.1.1 RS-485通信
RS-485总线通信模式由于具有结构简单、价格低、通信距离和数据传输速率适当的优点而被广泛应用于楼宇控制、监控报警等领域。但RS-485总线存在自适应、自保护功能差等缺点,如一些细节处理不好,常会出现通信失败等故障,因此提高RS-485总线的可靠性十分重要。在该电路中使用的接口芯片MAX485是Maxim公司的一种RS-485芯片,采用单+5 V电源工作,额定电流为300 μA,采用半双工通讯方式,它的结构和引脚简单,内部含有一个驱动器和接收器。RO和DI端分别是接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可。RE和DE端分别是接收和发送的使能端,当RE为逻辑0时,器件处于接收状态,当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚PD2控制这两个引脚即可。A端和B端分别是接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1,当A的电平低于B端时,代表发送的数据为0。同时将A和B端之间加匹配电阻R9,一般可选120 Ω的电阻。在图2中使用四位一体的光电耦合器TLP521让单片机与MAX485之间实现了完全的电隔离,消除了相互干扰,提高了电路的可靠性。
2.1.2 键盘输入和输出显示电路
液晶显示选用的OCM128x64是128x64点阵型液晶显示模块,可显示各种字符及图形,可显示四行汉字,满足本设计的要求,可与单片机直接接口,具有8位标准数据总线、6条控制线及电源线。键盘输入和显示输出电路如图2中所示,LCD与单片机的连接使用数据串行输入方法,数据通过PA7和LCD串行输入端输入,PA4、PA5为片选信号,PA6为读写使能信号。输入按键为8个,用2x4键盘接PC0~PC5实现。
2.2 从机电路
从机的主要功能是完成一路水位和四路温度的测量,并通过RS-485通信将这些数据传送给主机,接收主机发送来的参数和控制信息,通过继电器组控制上水、温差循环、辅助电加热、管道防冻和恒温供水等。从机电路如图3所示。
2.2.1 水位测量
先用非对称式多谐振荡器电路把水位传感器的阻值大小转换为振荡信号的频率,再用单片机内部的计数器测量信号的频率来测量水位。如图4所示,非对称式多谐振荡器电路由74HC04、C1、R5~R7和水位传感器的电阻Rw组成。该振荡器的振荡频率为f=1/[2.2(R5+R6+Rw)C1]。可选用四个电阻相串联,在电阻引线处引出5个水位探测电极,作为4水位测量传感器。由于水有导电性,水位的变化引起水位探测电极间的短路,改变水位传感器的电阻Rw的阻值,使振荡频率f发生变化。该振荡信号经非门隔离后接单片机的引脚PB1,由Tmega16片内16位计数器T1对振荡信号的频率f计数来测量水位高低。通过大量实验,对上述多谐振荡器电路和参数,当选用阻值分别为30、10、10、10 kΩ的4个电阻串联组成测量水位传感器时,振荡信号的频率f的值在60~415 Hz之间,用于水位测量,效果很好。
2.2.2 温度测量
四路测温电路完全相同,选用NTC热敏电阻器测温传感器,每一路都是用一个阻值固定的电阻(如R1)与一个热敏电阻(如RT1)串联,对5 V电源电压分压,利用热敏电阻上的压降随温度变化而变化实现温度的测量。在图4中,四个热敏电阻RT1~RT4上的电压分别接到引脚AD0~AD3上。通过ATmega16内置的多通道10位A/D转换器转换为数字信号后由程序读取,分别用于测量储水箱水温、集热器温度、温差循环管道温度和供水温度。NTC热敏电阻具有电阻温度系数大,灵敏度高,体积小,响应速度快,能进行精密温度测量的优点,缺点是热电特性非线性现象严重。如使用TG408503(25℃时,阻值50kΩ,B值4050K,玻璃封装)NTC热敏电阻,在0~99℃范围内,电阻的灵敏度约为8500~100Ω/℃。因此使用时一般要进行线性补偿。通过计算和分析,在RT1~RT4选用玻璃封装。精度为50 kΩ±0.5%,B值为4 050K±1%的NTC热敏电阻,电阻R1~R4选用精度为20 kΩ±0.5%的金属膜电阻时,测温精度可达±1℃。
2.2.3 控制电路
从机通过PB0、PB2~PB4控制4路继电器,分别用来控制温差循环泵、辅助电加热、防冻电伴热带、上水电磁阀等。如在主机按“上水”键,主机将把信号发给从机,从机再将PB4置高,启动手动上水,再次按“上水”键,程序使PB4输出低电平口,手动关闭上水。其它功能和“上水”,基本相同。在PB0、PB2~PB4与继电器之间加入光电耦合器TLP521,用于隔离继电器的干扰。
3 系统软件设计
测控系统的程序用C语言编写,程序并不复杂,主要包含有LCD显示,RS-485通信,行列键盘输入,A/D数据处理,继电器控制等几个程序模块。在该设计中虽然只是双机通信,但是为了将来扩展的需要,通信采用轮询方式。首先主机发送指令,从机接收指令,根据指令,判断执行相应动作。指令总共3种,所以用两位二值代码,代码有:00为查询,01为设置参数,02为手动指令传输。485通信流程如下:主机隔
50 ms发查询帧一>从机返回传感器数值数据帧;设置参数、状态等:主机发设置参数帧,启动定时器定时20 ms一>从机返回设置确认帧;若在定时时间内没有收到从机返回数据,则重新发送,一直等到从机返回正确数据。
4 结论
太阳能集热热水工程现已大量安装于工厂、宾馆、居民楼等需要提供大量热水的场所,与其配套使用的控制系统是不可缺少的部分。本系统以ATmega16为控制芯片,使用RS-485通信,主机和从机之间通信距离可达1 km以上。系统采用NTC热敏电阻和A/D转换测温的方案,电路简单,能满足太阳能集热热水工程中多路测温的精度要求。用非对称多谐振荡器电路测量水位的办法,水位传感器制作容易,成本低,可以实现水位的可靠测量。本系统功能实用,人机对话界面直观,操作简便,测控可靠,较好地解决了太阳能热水工程或其它一些场合对水位、温度的远距离测控的问题。