基于DS18B20的温度控制系统设计

2013-03-11 10:50韩峻峰
网络安全与数据管理 2013年17期
关键词:子程序温度传感器电阻

艾 诚,韩峻峰

(1.广西科技大学,广西 柳州545006;2.广西机电职业技术学院,广西 南宁530007)

温度的变化影响各种系统的自动运作,例如冶金、机械、食品、化工等工业中,广泛使用各种加热炉、散热处理、反应炉等,要求对工件的温度进行控制。对于不同的控制系统,其适宜的温度总是在一个范围,超过这个范围,系统或许会停止运行或遭受破坏,因此必须能实时获取温度的变化,对于超过适宜范围的温度能够报警。同时也希望在适宜温度范围内可以由检测人员根据实际情况加以改变。温度控制在工业及日常生活中应用广泛,分类较多,不同温度控制系统的控制方法也不尽相同,其中以PID控制法最为常见。

1 温度控制系统的组成及硬件设计

本设计采用STC89C52单片机为处理器,利用温度传感器DS18B20采集温度,结合Keil软件编程[1],实现用PID算法来控制PWM波形的产生,进而控制加热电阻以实现温度控制。该设计利用Proteus仿真为基础,再结合单片机最小系统调试验证结果。系统的总体结构框架图如图1所示。

图1 系统总体结构图

本温度闭环控制系统由温度传感器、控制器、PWM控制模块、加热电路、键盘和显示模块等部分组成。单片机选用宏晶科技推出的新一代高速、低功耗、超强抗干扰的单片机STC89C52RC[2]。温度经过DS18B20传感器模块传给控制器,控制器根据检测值与设定值的偏差,计算PID控制值,其结果通过PWM模块控制加热电路功率,实现对温度的控制。系统硬件电路原理图如图2所示。

图2 系统硬件电路原理图

1.1 DS18B20温度传感器

系统采用美国DALLS半导体公司生产的一种改进型温度传感器DS18B20,与传统的热敏电阻等温度元件相比,它无需A/D转换能直接读出被测温度值,而且可根据实际要求,通过简单的编程实现9~12 bit数字值读数方式[3]。其测量范围为-55℃~+125℃,在-10℃~+85℃间精度达到±0.5℃。温度传感电路如图3所示。

图3 温度传感电路

1.2 加热电路

加热电路采用一个PNP三极管S8550驱动一个15Ω/2 W的功率电阻进行加热。

本系统的控制对象是温度传感器的温度,也就是控制加热电阻的加热或不加热。而在加热电阻上是否有电流流过,则取决于8550三极管的通断与否,因此其控制电路如图4所示。从单片机P1.5口出来的方波电压直接加到8550的基极上来控制三极管的通断,同时可根据设置温度与适时温度的比较进行相应的报警。当实时温度低于设置温度时,加热电阻持续加热直到其温度达到设置温度,蜂鸣器就会报警,且该温度会保持设置温度不再加热(其误差温度为1℃)。

图4 加热电路

1.3 液晶显示模块电路

运用LCD1602作为显示模块,按照并联总线接法连接,LCD1602数据口接单片机的P0口,液晶显示模块如图5所示。

图5 LCD1602显示模块

LCD1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的两条线是背光电源线。该模块用D0~D7作为8 bit双向数据线,4 bit数据分两次传送,可以节省CPU的I/O口资源[4]。

VSS、VDD分别接地和5V电源。VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高。RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。E(或EN)端为使能(Enable)端,下降沿使能。DB0~DB7为双向数据总线。

2 温度控制系统软件设计

系统程序主要包括主程序、初始化子程序、PID计算子程序、温度比较处理子程序、延时子程序、T0中断服务子程序和DS18B20驱动程序等。主程序流程图如图6所示。

图6 主程序流程图

2.1 加热功率PWM控制

本设计采用的STC89C52单片机虽然不具有4路16位的可编程计数器阵列(SPA)或8位的可调制脉冲输出 (PWM)模块,但在本设计中,利用软件编程,通过PID控制,调整PWM占空比,通过P1.5口输出PWM信号,去控制外围加热电路。PWM的输出频率决定于PCA定时器的时钟源。PCA定时器的时钟输入源有4种可供选择,分别是Fosc/12、Fosc/2、定时器0的溢出频率以及P3.4/ECT的输入频率。由于PWM是8位的,因此PWM的输出频率=PCA时钟输入频率/256。本设计采用的是定时器0的溢出频率作为PCA的时钟输入,这样可以通过设置定时器0的计数值改变PWM的频率。本设计先进行温度比较,再采用定时器0中断来实现PWM输出,从而实现温度的实时控制。

2.2 PID算法设计

PID调节器是一种线性调节器,它将给定值R(t)与实际输出值C(t)的偏差的比例(P)、积分(I)、微分(D)通过定值线性组合构成控制量,对控制对象进行控制。其模拟PID控制系统原理框图如图7所示。

图7 模拟PID控制系统原理框

PID调节器的微分方程为:

其中,Kp、Kt、Kd分别为比例放大系数、积分常数、微分常数,T为采样周期。PID计算子程序的主要功能是根据设置的PID参数[5]进行计算。PID计算的子程序如下:

3 实验结果

现利用Keil编辑程序结合Proteus所做的原理图进行仿真处理,仿真结果可以达到设计要求。本设计制作了硬件设计实物,通过PID控制,当加热电阻靠近温度传感器时,测量温度明显上升,并达到31℃(设置温度)。此后加热变缓,温度维持在31℃,系统温度误差精度可达到±1℃之内,并且用蜂鸣器发出鸣响。当加热电阻离开温度传感器,测量温度会降低,当实测温度低于设置温度,蜂鸣器不响。再次设置温度,当加热电阻再次靠近温度传感器时,测量温度又明显上升到设置温度。

为了更好地观察实验结果,证明仿真结果的可靠性,体现本设计对温度控制的稳定性和精确性,经过多次设置不同的温度,实验记录数据如表1所示。从记录数据分析可知,本设计达到了预期的设计目标,控制温度误差范围在±1℃之内。

表1 实验结果数据

本系统以单片机为控制核心,采用PID算法进行温度闭环控制,具有控制精度高,能够克服容量滞后的特点,特别适用于负荷变化大、容量滞后较大、控制品质要求高的控制系统[6-7]。以DS18B20温度传感器设计的温度闭环控制系统线路简单、硬件少、成本低廉、软件设计简单,尤其是其具有完善的单总线通信协议,无需复杂的布线,只需3根连线就能很容易地组成多点测温系统,因此在工农业生产和科学研究中有着广阔的应用前景[8]。

[1]胡寿松.自动控制原理[M].北京:科学出版社,2002.

[2]马淑华,王凤文,张美金,等.单片机原理与接口技术[M].北京:北京邮电大学出版社,2005.

[3]黄建伟.基于DS18B20无线温度测量系统[J].煤矿机械,2008,29(7):118-119.

[4]潘新民,王燕芳.微型计算机控制技术实用教程[M].北京:电子工业出版社,2006.

[5]谭浩强.C程序设计[M].北京:清华大学出版社,1991.

[6]吕俊亚.一种基于单片机的温度控制系统设计与实现[J].计算机仿真,2012,29(7):230-233.

[7]叶丹,齐国生,洪强宁,等.基于单片机的自适应温度控制系统[J].传感器技术,2002,21(3):27-30.

[8]赵娜,赵刚,于珍珠,等.基于51单片机温度测量系统[J].微计算机信息,2007,(12):146-148.

猜你喜欢
子程序温度传感器电阻
气象用温度传感器检定结果的测量不确定度评定与应用
电阻大小谁做主
温度传感器DS18B20在温度计设计中的应用
一种高性能CMOS温度传感器
巧测电阻
XTR105电流变送器在温度传感器中的应用
电阻焊
基于multisim13.0负电阻在电源中作用的仿真
浅谈子程序在数控车编程中的应用
子程序在数控车加工槽中的应用探索