基于ATmega16与DS18B20的智能温控系统的设计
扫描二维码
随时随地手机看文章
0 引言
在工农业生产和日常生活中,温度的测量及控制越来越重要。传统的温度控制系统采用热敏电阻器或热电偶测量温度,但是由于模拟温度传感器输出的是模拟信号,必须经过A/D转换等环节才能获得数字信号,再加上这种温度采集电路有时需要冷端补偿电路,这样增加了电路的复杂性,且电路易受干扰,使采集到的数据准确性不高。随着技术的发展,目前国际上新型温度传感器已从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。智能化温度传感器DS18B20将温度传感器、寄存器、接口电路集成在一个芯片中,能直接输出数字信号。本论文设计了以ATmega16单片机和DS18B20为主构成的智能温控系统,该系统的温度启控点可以根据用户需要而自行设定。
1 系统控制原理及总体构成
1.1 系统总体构成
温控系统主要有2大任务;采集温度信息和能对温度实时控制。为完成控制要求,本智能温控系统的总体构成如图1所示。
1.2 系统控制原理
智能温控系统通过DS18B20采集温度信息并将其传送到ATmega16单片机中,单片机再将采集的温度信息与用户设定的温度值进行比较,从而控制加热/通风执行机构是否需要加热或降温。用户可通过键盘输入来设置温度值,LCD显示用户设定的温度值、当前采集温度值。如果发生故障时,系统发出声、光报警。
2 系统的硬件设计
系统硬件电路的设计主要包括4大部分:单片机核心部分、DS18B20温度采集模块、加热/通风执行机构、报警电路。
2.1 单片机核心部分
ATmegal6单片机采用Harvard结构,内置WDT,具有高速、低功耗,可直接驱动LED、SSR或继电器等特点,因此本系统采用该单片机作为微处理器中。单片机核心部分的设计主要包括ATmega16单片机的最小系统、4×4键盘、汉字式LCD(SMG12864)液晶显示、电压检测和报警电路的设计。其中,PB2,PB3作为电压检测输入端,若系统发生欠压、失压或过压时可产生报警信号;PB6、PB7与报警电路连接,控制声、光报警;PC端8个引脚与SMG12864A连接,控制汉字式LCD显示;PC端8个引脚外接4×4键盘,使用户进行温度设定;PD4、PD5分别作为加热执行机构和通风执行机构的控制信号输出端;PA0与DS18B20的DQ进行连接,作为温度采集信号输入端。
2.2 DS18B20温度采集模块
在众多应用于温度监测的温敏元件中,虽然温敏电阻成本低,但后续电路复杂,且需要进行温度标定,因此本系统采用DS18B20进行温度采集。DS18B20是美国Dallas半导体公司生产的新一代1-wire总线的数字式温度传感器,测量范围在-55~+125℃,最大分辨可达0.062 5℃。
DS18B20的TO-92封装有3个引脚:GND、DQ和VDD。DS18B20可采用2种方式供电:一种是采用电源供电方式(即GND与地线连接,DQ与ATme-ga16的PA0连接,VDD与5V电源连接);另一种是寄生电源供电方式(即VDD和GND接地,DQ与ATmega16的PA0连接)。由于外部电源供电方式,工作稳定可靠,抗干扰能力强,电路简单,因此本系统采用外部电源供电方式。外部电源供电方式的I/O线可不需要接强上拉,不存在电源电流不足的问题。
DS18B20内部自带A/D转换器,通过内部的温度采集、A/D数据转换等过程,以形成与温度相对应的数字值,最后将该数字值由DS18B20的DQ端经PA0送给ATmega16单片机。测温原理如图2所示。
2.3 加热/通风执行机构
加热/通风主要是通过控制风扇转动以达到降温的目的,或者通过控制加热器加热达到升温的目的。温度的上升或下降具有一定的惯性,因此要想达到精度较高的温控效果必须要设计相应的控制电路。传统的加热/通风执行机构可能采用电磁继电器作为开关元件,其缺点是寿命短、开关速度慢、温度变化惯性大,难以满足工艺要求。本系统采用固态继电器(Solid State Relay,SSR)作为加热/通用执行机构的开关元件,它具有寿命长、可靠性高、开关速度快、电磁干扰小、无噪声、无火花等特点。
要达到较好的温控效果,风扇的转速和通过加热器的电流大小应能发生改变,即功率可调。采用可控硅实现交流调功时通常有2种方法:一种是改变负载电压波形的导通角,即调相;另一种是负载电压波形不变而改变其电压波形在时间段内的出现次数,即PWM脉冲调功。调相调功采用移相触发,PWM脉冲调功采用过零触发。由于过零触发方式不对电网造成严重污染和干扰其它用电设备,是应用较为广泛的一种方法,因此本系统采用PWM调功。可以通过软件编程方式由ATmega16的PD4(OC1B)和PD5(OC1A)直接输出PWM波形来控制风扇的转速和加热器电流的大小。
加热/通风执行机构的开关元件选用交流过零触发型SSR,控制方法采用过零触发,当控制信号输入后,SSR在交流电源为零电压附近导通。通风执行机构的电路如图3所示,加热执行机构的电路与此电路类似。
2.4 报警电路
本系统采用蜂鸣器作为声音报警电路,它由晶体管和蜂鸣器组成。采用发光二极管作为系统异常显示,它由红、绿发光二极管及限流电阻构成。单片机工作在正常情况下时,绿色发光二极管点亮,蜂鸣器不发声。当温度测量值超出给定的上、下限或者系统出现低电压时,由ATmega16单片机的PB6控制蜂鸣器发声,PB7控制绿色发光二极管熄灭,而红色发光二极管点亮。控制蜂鸣器输出不同声音而区分系统是电压异常还是测量值超出异常。
3 系统的软件设计
本系统采用ATmega16作为核心处理器件,上电时首先通过PB2、PB3检测系统电压是否异常,若异常发出报警信号。在电压正常情况下将经过DS18B20现场实时采集到的温度值存入ATmega16的内部数据存储器,并送SMG12864A显示,同时与设定的温度值进行比较,然后由ATme-ga16输出控制信号去控制加热/通风执行机构。进行温度控制程序设计时还应考虑越限报警。当采集到的温度值与设定的温度值进行比较后,若发现当前温度值越限,则产生报警信号。因此,本系统的软件设计主要包括:系统初始化,键盘扫描、温度读取、温度显示、报警、加热控制和通风控制等,这些操作分别由相应子程序模块完成。其软件设计流程如图4所示。
4 结语
该智能温控系统在Proteus上仿真成功后,进行了电路实物的制作,并成功完成了整机调试。整机在实际运行中完全达到设计要求,并具有较高的可靠性。若将该系统加以适当的扩展,可以组成功能更加强大的温控系统,能形成多点、无线传输的温度远程监控网络。