基于单片机的饮水机温控系统的设计

时间:2022-07-01 11:32:33

基于单片机的饮水机温控系统的设计

【摘要】介绍一种饮水机的温度控制系统。该系统利用软件编程实现饮水机的智能温控,在保温阶段采用双位调节进行温度控制,控制精度为±2℃,采用该温控系统可以使得饮水机在使用过程不产生“千滚水”。保温温度、保温时间和预加热时间可以自由设定,使得饮水机使用起来更加方便。

【关键词】单片机;温度控制;节能减排

1.引言

随着我国经济发展和国际能源紧张局势的加剧,人们环保意识的提高,越来越多的人在购买家电产品时都把节能当做重要的衡量指标。饮水机作为一种常用的家用电器,给我们的日常生活带来了极大方便。目前市场上大部分饮水机采用热敏电阻进行温控,饮水机将水从室温加热到沸腾,温控开关断开,停止加热;之后温度缓缓下降,当温度下降到一定时,温控开关闭合,然后又继续加热到沸腾,如此周而复始。如果用户在喝完水之后忘记切断电源,就会使水反复烧开,不仅浪费能源,而且容易形成含有重金属、砷化物等有害物质的“千滚水”。本文主要讨论如何应用单片机,为饮水机设计一个节能环保的温控系统,弥补饮水机的这些缺点。实验结果表明该温控系统具有稳定性好、易于操作、性价比高的特点,将会有广泛的发展前景。

2.硬件电路设计

系统主要实现时间显示,温度显示,保温阶段防止水反复烧开,保温温度、保温时间和预加热时间可自由设定的功能。系统硬件框图如图1所示,以STC89C516RD单片机为核心,扩展外部存储器构成系统的主控模块[1]。STC89C516RD单片机具有超强抗干扰/高速/低功耗的特点,工作电压为3.4V~5.5V,工作频率0~40MHZ,其指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择,内部自带看门狗。

2.1 测温电路

饮水机加热胆中的水温由DS18B20温度传感器检测并转换成数字量通过串行方式传送给单片机。DS18B20采用单总线接口方式,仅需要一个引脚来发送或接受数据,单片机与DS18B20之间仅需要一条数据线。该温度传感器测温范围为-55℃~+125℃,固有测温分辨率为0.5℃,工作电压为3~5.5V/DC,在使用时不需要任何元件,它能够采集被测物的温度并通过串行方式传送给单片机。当单片机给DS18B20发送温度转换命令后,DS18B20开始进行温度转换,转换时间与设定的分辨率有关,当设置为9位时,最大转换时间为3.75ms;10位时转换时间为187.5ms;11位时为375ms;12位时为750ms。当分辨率设置为9位时,温度转换时间短,但是测量精度不高,采用12位分辨率时转换时间太长,综合转换时间和测量精度考虑,本系统在软件编程时将其设置为11位。该器件具有体积小、质量轻、性能稳定等优点,其各方面都满足系统的设计要求。在硬件电路上,DS18B20可以用3~5.5V的外部电源供电方式工作,也可以采用寄生电源供电方式工作。当采用外部电源供电时,DS18B20的VDD引脚接外部电源正极,GND引脚接电源负极,DQ引脚通过一个4.7KΩ的上拉电阻与单片机相连;当采用寄生电源供电时,DS18B20的VDD引脚必须接地,DS18B20从单总线上汲取能量,在信号线处于高电平期间把能量存储在内部电容里,在信号线处于低电平期间由内部电容提供能量,直到高电平到来再给寄生电容充电。当温度高于100℃时,DS18B20漏电流比较大,采用寄生电源供电可能导致其无法与单片机进行通讯。由于饮水机中的水在饮用之前都要烧开,为了确保系统的可靠性,本系统采用外部电源供电方式,电路原理图如图2所示,DS18B20的DQ脚与单片机的P1.3引脚相连,R1为上拉电阻。由于要对饮水机加热胆中的水进行测温,先将DS18B20放置在Φ6mm的不锈钢保护管中,然后填充硅胶增强导热性,再放入加热胆中,这样测量效果比较好。

2.2 时钟电路

为了增强系统的使用灵活性,使其具备定时加热的功能,需要增加一个时钟电路。本设计采用串行接口实时时钟芯片DS1302为系统提供实时时钟,它可以对年、月、日、周、时、分和秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V,芯片本身具备对备份电池进行涓细流充电的功能,可以延长备份电池的寿命。时钟电路原理图如图3所示,DS1302实时时钟电路采用32.768KHZ的晶振,与单片机的P2.0~P2.2引脚相连,采用串行数据传输。DS1302的VCC1外接3V的纽扣电池,保证在掉电的情况下DS1302也能正常工作。

2.3 数据保存接口电路

当由于某些外界因素如断电导致系统停止工作时,系统里面如保温温度、保温时间等用户设定的参数将会丢失,在系统重启之后需要重新设定,从而造成使用的不方便。所以在用户完成这些参数的设置之后需要对这些参数进行备份,防止掉电丢失。本设计采用AT24C01芯片,它提供128字节的EEPROM存储空间,采用IIC总线通信,每次用户进行按键设置之后,将改变的数据复制到AT24C01中,这样系统每次重启时直接从AT24C01中读取相关参数,免去了重复设置带来的麻烦。EEPROM接口电路原理图如图4所示。

2.4 键盘接口电路

当饮水机的使用环境改变时,用户可能需要对系统的保温温度、保温时间和预加热时间进行相应的修改或者系统的时钟因外界因素而导致时间显示错误时也需要人为进行修正。本系统通过5个独立按键来实现此功能。由于系统的按键个数不是很多,采用独立按键连接方式,单片机的P3.0~P3.4口通过上拉电阻与5个按键相连构成系统的键盘输入部分。键盘输入电路原理图如图5所示。在软件设计时采用电平检测来判断按键是否按下,当检测到低电平时,说明按键被按下,否则,未按下。

2.5 继电器控制模块

系统可以采用可控硅、继电器等作为输出单元。由于本设计的温控系统的控制对象为饮水机,其控制精度要求不是很高,采用继电器作为输出单元即可满足设计要求。单片机的P1.2引脚通过电阻R2与三极管S8550基极相连控制继电器的通断。由于继电器线圈在切断瞬间会产生一个感应电动势,与电源电压相加直接加到三级管集电极,容易导致三极管击穿,所以在继电器线圈两端接上一个二极管1N4148抑制感应电动势。继电器模块电路原理图如图6所示。

2.6 TFT彩屏显示模块

2.6.1 TFT彩屏色彩模式简介

在TFT彩屏中,一个黑白或单色像素点用一位二进制数表示,一个彩色像素用多位二进制数表示。表示彩色像素的二进制数的位数称为颜色质量。TFT彩屏显示的颜色质量可以选择1位色、8位色、16位色、24位色和32位色。由于系统采用的是8位单片机,其对大批量数据传输速度不是很快,再根据饮水机的使用环境对颜色要求不是特别高,所以本设计采用16位色表示一个彩色点。图7为用1个16位二进制数表示一个彩色点的示意图,高5位表示红色所占比例,低5位表示蓝色所占比例,其余位表示绿色所占比例,即R5G6B5格式[2],这样一共可以组合出65536种颜色。例如,利用该表示方法红色可表示为1111 1000 0000 0000 B,高5位全1,中间6位和低5位全0,表示红色部分占100%,绿色和蓝色占0%,用十六进制表示为f800H。同理可知黑色可用0000H表示,蓝色可用001fH表示。所以只要合理搭配红绿蓝三基色的比例,就可以调出想要的颜色。

2.6.2 TFT彩屏显示原理及汉字字模的获取

了解了TFT彩屏像素点颜色的表示方法之后,要把一个汉字显示在TFT彩屏上,还需要获取需要显示的汉字的字模。在UCDOS中文宋体字库中,每个汉字均由16行16列的点阵组成,即每个字均由256个点来表示[3]。如果把每个点理解为一个像素,把每个汉字的形状理解为一幅图像,那么TFT彩屏就可以显示出任意形状的字符,通过更改像素点的颜色就可显示出彩色图像。利用行扫描的方法,可以获取任意一个汉字的字模。例如,把“南”字看成一幅图像,逐行扫描,有笔画的地方为1,没有笔画的地方为0,则“南”字的第一行可用0100H表示,第二行可用0104H表示,第三行可用FFFEH表示,……,示意图如图8所示。利用这种方法可用得到任意汉字的字模,依靠人工提取汉字字模比较繁琐,汉字字模可以通过字模提取软件来提取。

获取汉字字模之后,当要把某个汉字显示在彩屏的某个区域时,只需要通过程序设计对该区域逐行扫描,每扫描一个点,向彩屏发送一次颜色码,有笔画的区域发送字体颜色,没有笔画的区域发送字体背景颜色,这样把该区域扫描完之后,就可以把一个汉字显示出来了。利用该方法,可用将中英文字符、彩色图像显示在彩屏的任意区域。

2.6.3 TFT彩屏接口电路

本系统采用的TFT彩屏主控芯片为ILI9325,分辨率为128×160,TFT彩屏电路原理图如图9所示。利用该彩屏,通过软件编程可以设置出一个友好程度很高的界面。TFT彩屏主要显示当前时间、当前水温、保温温度、保温时间、预加热时间和饮水机当前的状态等内容;在用户进行按键设置时,显示设置提示。

3.软件设计

3.1 主程序设计

在一定的控制系统中,首先将需要控制的参数由传感器转换成一定的信号后再与预设定的值进行比较,把比较得到的差值信号经过一定规律的计算后得到相应的控制值,将控制量送给控制系统进行相应的控制,不停的进行上述工作,从而达到自动调节的目的[4]。在本系统中可以采用PID控制等控制方法对水温进行控制,由于本系统的控制精度要求不是很高,考虑到生产成本,本系统在保温阶段采用双位调节控制对水温进行控制。双位调节控制规律是较常用的位置式控制,其作用是不连续的,调节机构只有开和关两个位置[5],该控制方法具有简单易行、成本低廉的特点,在控制精度要求不是很高的场合广泛应用。

本设计希望通过以STC89C516RD单片机为核心的系统,采用软件编程,防止饮水机形成“千滚水”,达到节能环保的目的。

根据饮水机加热胆的容量,本系统控制对象为750ml水。进入主程序后,初始化各个模块,显示参数。如果此时到了用户设定的加热时间,则把水加热至沸腾,然后进行保温直到保温结束;否则刷新TFT彩屏上的各项参数。在系统进入保温状态时,单片机对饮水机加热胆中的水进行温度监控,计算温度下降梯度(t为两次温度采样时间间隔),如果发现k突然变大,说明在保温阶段加入了冷水,这时需要把水再次烧开;否则对饮水机中的水进行双位调节控制,使水温在保温温度上下一定范围内波动。如此周而复始,直到保温结束。经过这样的控制之后,饮水机内的水就不会被反复烧开,防止了“千滚水”的形成,达到了节能环保的目的。主程序流程图如图10所示。

3.2 双位调节控制子程序

在系统处于保温状态时,通过双位调节控制使得水温在保温温度上下小范围内波动,如果检测到水温低于保温温度2℃,闭合继电器,进行加热;如果检测到水温大于或等于保温温度,断开继电器,停止加热。双位调节控制子程序流程图如图11所示,ttest为当前水温,tset为用户设定的保温温度。

3.3 键盘扫描子程序

在本设计中,通过STC89C516RD单片机的外部中断0进入按键扫描程序,当系统的按键K3被按下后进入按键扫描子程序,再次被下后则退出按键设置,在退出按键设置时,需要将用户更改的参数更新到AT24C01中,防止掉电丢失。系统按键包括进入/退出设置、左移、右移、加1和减1五个按键。通过按键用户可以进行保温温度设置、保温时间设置、预加热时间设置和系统时钟设置。在用户进行按键设置时,通过软件编程让TFT彩屏显示设置提示,这样使得饮水机使用起来更加方便。

3.4 看门狗定时器的设定

当系统的使用过程中受到干扰而失控,引起程序乱飞,或者程序陷入“死循环”,这时需要采用“看门狗”使系统脱离这种状态。STC89C5

16RD单片机内部自带一个14位看门狗定时器,当采用12时钟模式时,由于采用了“预分频技术”,它的溢出时间=(N*Prescale*32768)/晶振频率,其中N是单片机的时钟周期,Prescale时预分频数,如果采用12MHZ的晶振,通过设置相关寄存器,看门狗溢出时间范围可设定为65.5ms~8.38s。系统采用12时钟周期模式,晶振频率为12MHZ,如果系统在执行过程中不停地喂狗,是比较浪费时间的,为了节省单片机资源,本设计将看门狗溢出时间设定为8.38s。

4.实验结果

图12和图13为室温22℃下,保温温度设定为60℃时,根据系统温控结果所绘制的曲线。图中横坐标为采样时间(单位:分钟),纵坐标为温度(单位:℃)。

实验结果表明,该温度控制系统实现了预期设计的目的。在保温阶段,系统采用双位调节控制,温度控制精度达到±2℃,防止饮水机在使用过程中形成“千滚水”。

5.结束语

本设计的饮水机温控系统主要根据目前节能环保的发展趋势和实际应用的特点和要求,对现行饮水机进行改进,采用单片机,利用软件编程实现饮水机的智能保温节电。在保温阶段系统采用双位调节进行温度控制,当温度高于保温温度时,停止加热,当温度下降到保温温度下2℃时,开始加热,控制水温在保温温度上下小范围内波动。双位调节是一种简单易行的控制方式,具有成本低廉、可靠性强的特点,在控制精度要求不是很高的场合广泛应用。通过实验证明该控制方法完全可以满足系统的使用要求。系统采用1.8寸的TFT彩屏作为显示部分,利用软件编程设置了一个友好的界面将饮水机的各项参数显示出来,使得用户可以根据彩屏上的提示很方便的通过按键对相关参数进行设定,这样该系统可以满足不同环境下用户的使用要求。

本文设计的温控系统具有稳定性好、易于操作、性价比高的特点,将其稍加改装即可应用于其他家用电器的控制系统中。

参考文献

[1]张毅刚,彭喜元,姜守达,乔立岩.新编MCS-51单片机应用设计[M].哈尔滨工业大学出版社,2008.

[2]毛学军,沙祥.液晶模块应用[M].电子工业出版社,2010.

[3]靳桅,邬芝权,李骐,刘全.基于51系列单片机的LED显示屏开发技术(第2版)[M].北京航空航天大学出版社,2011,4.

[4]汪孝国,王婉丽,祁双喜.高精度PID温度控制器[J].电子与自动化,2000(5).

[5]刘春蕾.温度双位调节实验系统的设计[J].河北建筑工程学院学报,1999(02).

[6]8051系列单片机C程序设计完全手册[M].人民邮电出版社,2006.

[7]余永权,汪明慧,黄英.单片机在控制系统中的应用[M].电子工业出版社,2003.

作者简介:林奇盛(1992—),男,江西赣州人,现就读于南昌航空大学测试与光电工程学院,主要研究方向:单片机开发与应用。

上一篇:一种快速混合积分法的动态布料仿真 下一篇:电阻测定一例