李昌禄,李海宾,李希茜
基于STC89C52的自动水温控制系统设计与实现
李昌禄,李海宾,李希茜
(天津大学 电气电子实验中心,天津 300072)
文中以单片机STC89C52为控制核心,单线数字温度传感器DS18B20构成前置信号采集电路,固体继电器SSR构成后向控制电路,根据分段控制的思想简化复杂的增量型数字PID算法,对加热系统的水温进行控制。目标温度可在30℃~80℃范围内任意设定,静态误差小于1℃。经过实验测试,系统运行稳定,控制效果良好。
水温控制;STC89C52单片机;DS18B20温度传感器;PID算法
现代工业生产中,很多的电子产品都要用到温度检测和温度控制;在科研、生产中,常需要对某些系统进行温度的监测和控制[1]。各种适用于不同场合的智能温度控制器应运而生,智能化的控制系统成为一种发展趋势[2]。传统的通过人工使用温度计测量,再使用设备加热来控制温度的方法,不仅效率低、质量差,而且不易及时控制温度变化,导致生产的变质,造成较大经济损失[3]。目前,国外也开发出了一些基于单片机的温度控制设备,但价格较高,且其操作系统均为英文,普及性不强[4]。本文设计的基于STC89C52单片机的自动水温控制系统,不仅精度较高,能够满足生产、生活中的各项指标要求,而且可靠性好、灵活度高,达到稳定热平衡的时间较短。
1.1 系统概述
设计一个自动水温控制系统来控制容器中的500 mL水,设计要求应满足调节温度为30℃~80℃,最小区分度为1℃,温度控制的静态误差≤0.5℃。
采用基于PID思想的控制方法,当设定的温度发生突变时使系统的响应加快,尽可能减小调节时间和超调量,并且实时显示控制温度和实际温度。
1.2 整体方案
通过对系统进行深入分析和思考,可以将系统硬件分为以下四个部分:STC89C52单片机最小系统、DS18B20温度采集电路、加热控制电路和显示电路。系统框图如图1所示。
图1 整体系统框图
2.1 温度采集模块
由于温度传感器DS18B20可直接使用数字量与单片机通信,读取测温数据控制方便,且它能够达到0.5℃的固有分辨率[5],满足我们对于精度的要求。
该传感器的特点包括:(1)基于DS18B20;(2)具有专门设计的不锈钢外壳,壁厚仅0.2 mm;(3)具有导热性高的密封胶,保证灵敏度,可在水中长期使用。DS18B20是美国DALLAS公司推出的一种可组网数字式温度传感器,采用1-wire总线接口,测温范围为-55℃~+125℃,精度可达0.067 5℃,最大转换时间为200 ms[6]。DS18B20的工作电压为3~5 V,而且测量的精度可以在程序中设置,最大可达0.062 5℃。
DS18B20内置AD转换器,无须外加电路,其接口电路有三部分:单线数据传输总线端口P3.7、外供电源线VCC和地线,如图2所示。
图2 DS18B20温度传感器接口电路
2.2 加热电路
固态继电器使用简单,不需要外加光耦而且没有触点,本身就能实现良好的电气隔离效果,故选用固态继电器来频繁地控制加热器工作。通过单片机根据温差调节PWM波占空比,以控制固态继电器的通断时间来达到控制加热器功率的目的[7],适合于功率较小的系统,满足我们的要求。
根据设计要求,当水温大于设定温度值时,停止加热,当水温低于设定温度值时开始加热。根据设定温度与实际温度的温差Δu(k)的大小,通过单片机产生占空比不同的PWM波来控制继电器进行通断以调节加热时间,由于功率与占空比成正比,所以可实现加热功率的控制。加热电路图如图3所示。
图3 自动水温控制系统加热电路
2.3 显示电路
用STC89C52单片机系统的BCD数码管显示被测温度和设定温度[8]。用4个独立按键组成键盘,分别实现设定温度的升高与降低及系统的启动与关断。该方案程序简单且直观,具有良好的效果。
程序主要由三部分构成,包括一个主程序和两个中断子程序。主程序负责解决传感器初始化、两个中断程序初始化、数据温度显示以及计算控制等问题;两个中断程序分别负责温度采样和PMW波的占空比控制。
本系统的核心就是加热控制算法的确定。利用增量式PID算法思想,我们根据温差大小产生不同占空比的PWM波来控制固体继电器的通断,从而控制加热功率。
Δu(k)=A e(k)-B e(k-1)+C e(k-2)
式中:e(k)为误差值;A、B、C为PID系数。
加热分两种状态:(1)若当前值小于输入的设定值,则PWM波形占空比增加,输出加热,直到输出值等于设定值;(2)若输出值大于或等于设定值,则PWM输出占空比减小,让系统(水)自然散热,一旦检测到输出值小于设定值时,又改变PWM波型输出,返回状态(1)[9]。通过时间长短不同的加热和持续缓慢的散热,让水温维持恒定。
主程序的流程图如图4所示:
图4 主程序流程图
4.1 静态温度测量
1)测试方法。断开系统的供电电源,向容器中装入500 mL水,保持环境因素不变,将数字温度计放入水中测量实际水温,与系统的显示温度相比较。由于水温下降速度与测温速度相比变化较慢,在测试过程中可视为静态过程,因此,可以得出系统的静态温度测量结果。
2)测试仪器采用标准数字温度计。
3)测试结果如表1所示。
表1 静态温度测试数据 ℃
4.2 动态温度测量
1)测试方法。接上系统的供电电源后,装入500 mL水(温度约等于室温),通过键盘键入设定温度。记录设定温度、起始温度、稳定温度、调节时间、超调温度、稳态误差等数据。
2)测试仪器采用数字温度计。
3)要求测试条件为环境温度24.2℃(附:加热棒功率300 W)。
4)测试结果如表2所示。绘出的温度-时间曲线图,如图5所示。
表2 动态温度测试数据
图5 温度-时间曲线图
通过理论分析和实验验证,本文使用STC89C52单片机、利用PWM波占空比控制算法设计的智能水温控制系统可以方便、自动控制设备工作,并具有测量温度准确、控温精度高、显示直观、运行可靠、使用简单等优点。本系统的工作温度为30℃~80℃,测量误差和控温误差均小于1℃,利用算法使得在温度调节阶段达到平衡温度时间相对较短,在现场测试及应用中收到了相当好的效果,在实际生产过程中具有一定的应用价值。
[1]彭建英,谢国庆.水温智能控制系统的设计[J].中国仪器仪表,2005(7):77-78.
[2]明鑫,陈可中,王戎丞,等.基于单片机的水温控制系统[J].现代电子技术,2005(6):1-2.
[3]刘健,庞兴龙.基于AT89S51的粮仓温度测控系统设计[J].制造业自动化,2012(5):143-146.
[4]李震,洪添胜,黎嘉铭.基于AVR单片机和LabVIEW的水温控制系统[J].计算机工程与设计,2007,28(3):615-617.
[5]陈良光,管聪慧.由数字式传感器DS18B20构成的多点测温系统[J].传感器世界,1999(9):32-35.
[6]赵亮,侯国锐.单片机C语言编程与实例[M].北京:人民邮电出版社,2003:307-311.
[7]孙明超,靳亚林,肖术雷.基于AT89C51单片机的水温控制系统[J].数字技术与应用,2011(7):163.
[8]蔡振江.单片机原理及应用[M].北京:电子工业出版社,2004.
[9]肖恩忠.基于AT89C52的电阻炉智能温度控制系统[J].农机化研究,2005(3):238-239.
Circuit Design and Im p lementation of W ater Tem perature Control System Based on STC89C52
LIChanglu,LIHaibin,LIXixi
(Experimental Center of Electrical and Electronic Technology,Tianjin University,Tianjin 300072,China)
The system takes the STC89C52 SCM as its controlling core.Its hardwaremainly consists of two parts.The single digital temperature sensor DS18B20 constitutes a pre-signal acquisition circuit,while the back controlling circuit ismainly composed of the SSR solid-state relay.The system controls the temperature of the water with an arithmetic named Proportion-Integra-Derivative(PID).The temperature can be discretionarily set in the work region,which is from 30℃to 80℃.In our system the static error can be limited in 1 centigrade.Through experiment analysis,the system works stably and controlswell.
temperature control;STC89C52 single chip;DS18B20 temperature sensor;PID controlling arithmetic
TP273
A
10.3969/j.issn.1672-4550.2014.05.009
2013-09-13;修改时间:2013-10-15
李昌禄(1975-),男,硕士,工程师,主要从事电子技术应用研究工作。