关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 一种开关量控制的水浴恒温控制器设计

一种开关量控制的水浴恒温控制器设计

作者:时间:2012-09-05来源:网络收藏

2.5 温度曲线显示模块
 温度曲线显示模块是本编程的难点之一。本文选择的液晶屏点数为128×160,真正显示曲线部分如图6所示。由图6可知,可显示的横坐标点共121个点。若在while循环中,每次循环都在液晶屏上显示一个点,则121个横坐标表示的点只能覆盖很短的时间。若能实现每隔1 s读取一次温度值,则整个屏幕可以覆盖2 min内的数据,也就是说足可以显示2 min内的温度变化的趋势。本文实现的方法如下:
 cur_sec=date_r[0]; //读出当前的秒数,为BCD码
if (cur_sec!=last_sec)
//当前的秒数与上一次不相等,则过了1 s了
{
……//此部分代码1 s执行一次
last_sec=cur_sec;
count++;//用于断续加热
}

本文引用地址:http://www.eepw.com.cn/article/159976.htm

 画点函数与画直线函数原型为:
 void LCD_draw_point(uchar x,uchar y,uint color);
 //画点函数
 void LCD_draw_line(uchar xStart,uchar yStart,uchar xEnd,uchar yEnd, uint color)//画直线函数
在曲线显示时,希望温度曲线始终在屏幕的中间部分显示,以全面反映温度的上下波动。而且画直线时,需要知道上一个温度点的纵坐标和当前温度点的纵坐标。本系统中,曲线显示部分中间那条标尺纵坐标为115,于是计算当前温度点的纵坐标和上一次温度点的纵坐标方法为:
 a=115+(TargetTemSet-Temperature);
    //温度变化后的Y坐标
 b=115+(TargetTemSet-Temperature_last);
    //温度变化前的Y坐标
 其中,TargetTemSet为当前设定的温度值,Temperature为当前检测到的温度值,Temperature_last为上一秒检测到的温度值。假设设定温度TargetTemSet=200(即20.0℃),上一次温度Temperature_last=200,当前温度为Temperature=210,则变化后的温度点纵坐标a=105,温度变化前的温度点纵坐标b=115。由此可以画一条竖线,就可以达到要求。在使用画直线函数前,还需要将a、b限幅,即{a,b}?奂[75,155]。
在本中,共画出了9条标尺,每个标尺间距为10个像素点,代表温度相差1℃。
2.6 温度调节模块
 本要求实现温度值与设定值相差大于3℃时,连续加热;小于3℃时,断续加热;大于设定值时,断开继电器;断续加热时,继电器交替通断。关键代码如下:
if(Temperature(TargetTemSet-30))
//温度较低,直接加热
{
if (Temperature!=0) RELAY=RelayOn;
}
else if(TemperatureTargetTemSet)
//温度接近设定温度,断续加热
{
if (count>= TargetTimeInterval)
//读出秒数,需加热时,加热几秒,停几秒
 { count=0; RELAY=!RELAY;}
 }
 else RELAY=RelayOff;//大于设定值, 断电
3 实验效果
 针对本进行相关的实验,实验原理图如图10所示。实验中,设定了3个温度档次,即30 ℃、35 ℃、40 ℃分时进行。

 当设定为30℃时,通过实验发现加热过程温度过冲为0.3℃,过程波动为±0.1℃,控制过程运行良好。
当温度设定为35℃时,发现过冲比较大,说明传感器与加热体相隔距离太远,不合理,需要重新调整。但过程比较满意。
 于是调整传感器与加热体的距离(减小),使之更加合理。设定为40℃时,水槽水温上升曲线可知基本上无过冲,恒温效果比较满意。在恒温过程中将时间清零了一次,所以运行时间比加温时间小。
实验中发现:温度是否恒定、过冲是否小与许多因素有关,如:加热体和传感器之间的距离、水槽是否密封、水槽材质散热性等。当温度设定较高时,水槽周边散热较大,同一水槽中,不同位置水的温度不同,水槽中的水温呈一定的梯度分布。要提高恒温效果,除了从本身入手外,还可以进行如下方面的考虑:
 (1)保持加热体与传感器之间处于合适的距离。
 (2)有条件的话,在加热体附近增加一个小的螺旋桨,使水在水槽内温度更加均匀。
 (3)保持水槽密封,根据水槽装水的多少,选择合适功率的加热体。
 (4)增大加热体加热面积,使水槽整体升温,减小局部温度过高的可能。
 本文设计了一种恒温控制器,介绍了其硬件与软件设计过程,并进行了相关实验,结果表明其升温与恒温效果均比较满意。本设计的一大亮点在于通过TFT液晶屏实时显示了当前温度值、设定值、当前运时间等,还能通过彩色曲线显示2 min内温度变化趋势。文中提出的实时时钟编程思想,可在高速微处理器上实现长时间定时,对其他大惯性控制系统的设计具有一定的借鉴意义。
参考文献
[1] 贺艳秋,黄大贵.电阻炉FuZZy_PID温度控制系统[J]. 橡胶工业,2006(53):109-109.
[2] 宏晶公司.单片机器件手则:STC89C51RC-RD+GUIDE-CHINESE.2006:42-43.
[3] 杜克铭,姚燕,李景涌.基于STC89C52的多路温度传感器标定系统[J].电子技术应用,2009(4):152-155.
[4] 王节旺.一种基于STC89C52RC单片机的计时系统的设计方案[J].微型机与应用,2011(6):28-30.


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭