太阳能热水器自动控制系统的研究与设计

2020-01-03 01:24苏赐民1李春杏1刘俊峰
计算机测量与控制 2019年12期
关键词:热水器按键水位

苏赐民1,李春杏1,曾 君,刘俊峰

(1.广东海洋大学 寸金学院, 广东 湛江 524094;2.华南理工大学 自动化科学与工程学院,广州 510640)

0 引言

目前,市场上销售的家用热水器按照其消耗的能源类型可以分为3种:第1种是燃气热水器;第2种是电热水器;第3种是太阳能热水器。然而,自从太阳能热水器进入消费市场以来广受人们的喜爱,人们在选购热水器的时候更加愿意购买节能环保的太阳能热水器。

随着科学技术的发展,人们对新能源的开发利用不断取得突破,其中太阳能的开发利用可作为本世纪新能源开发利用的代表。太阳能,作为源源不断的能源一直饱受人们的关注[1-2]。世界各国对于太阳能技术的应用都十分重视,英国政府在20世纪末就提出了绿色住宅计划;以色列的民用建筑在太阳能利用上走在世界前列[3]。而在我国西部地区的太阳能储量丰富,为了保证国内太阳能相关产业的快速发展,我国政府近年来大力出台了多项相关的法律政策,大力护持和发展太阳能等清洁能源相关产业。近年来,我国的太阳能热水器行业增长快速,2012年的年产量已经达到2484万台,销售额达400多亿人民币。目前,我国已经成为世界最大的太阳能热水器生产国和太阳能热水器最大的消费市场[4]。展望未来,太阳能作为本世纪新能源的开发利用及其相关技术,一定会在各国政策引导下,在现代科技进步的助力下取得更大的发展,具有广阔的市场应用前景。

本设计选择性能与价格都合适的单片机STC89C51作为核心处理器,配合数字化温度检测芯片DS18B20及其他传感器构成水温、水位检测电路,控制器相关程序选择使用具有可移植度高、语句简单明了、头文件种类丰富的C语言编程。太阳能热水器自动控制系统集多功能与低价格等优势于一体,既满足了人们的需求,同时也降低了电费支付的负担,真正节能环保。

1 系统硬件设计

本设计硬件方面选择STC89C51单片机作为核心控制部件,硬件电路设计包含以下几个方面:单片机基本电路设计(包括外部晶振电路,按键复位电路,稳压供电电路等),1602液晶屏显示电路,水温、水位检测电路,继电器辅助加热电路,蜂鸣报警器电路以及控制定时上水电路等。不同部分的硬件电路分别完成其对应的功能,同时又受到单片机的控制,协同实现对太阳能热水器自动控制系统的设计目标。

1.1 系统总框图

本设计的系统如图1所示。

1.2 单片机主控电路

本设计所选择的STC89C51单片机是一款典型的51单片机,拥有8位高速CPU,片内有数据存储器128 B,片内有程序存储器4 KB,片内自带振荡器,频率范围为1.2~12 MHz,全双工串行口,32位I/O口线,有较强的位处理能力,采用单一+5 V电源工作。STC89C51单片机电路如图2所示[5-7]。

图2 STC89C51单片机电路

1.3 液晶显示电路

本设计显示电路选择LCD1602为核心,LCD1602液晶显示模块是一种字符型液晶模块。字符型液晶模块是专门用于显示字母、数字以及符号等数据类型的点阵式液晶屏,常用的屏幕规格有16*1、16*2、20*2和40*2。下面介绍本设计所使用的LCD1602显示模块,LCD1602显示模块实物图如图3所示。其电路如图4所示[6]。

表1 LCD1602液晶屏技术参数

图3 LCD1602显示模块实物图

图4 液晶显示电路

1.4 温度检测电路

温度检测电路的核心元件是采用数字温度检测芯片DS18B20。DS18B20芯片是美国DALLAS半导体器件公司推出的第一片遵循总线协议的数字化温度传感器,它具有集成度高、性能优良、功耗较低、抗干扰能力强以及使用灵活方便,可搭配多种微控制器等优点,使用过程中不需要进行模数转换,简化了电路设计。DS18B20传感器电路图如图5所示。

图5 温度检测电路

为了提高 DS18B20 进行温度转换的精确度,I/O 线必须保证在温度转换期间提供足够的能量[1]。DS18B20芯片在正常工作时,其工作电流在1 mA左右,当多个芯片连在同一根I/O口上进行多点同时测温时,如果仅依靠4.7K上拉电阻无法为芯片工作提供做够的能量,从而会造成芯片测量温度不准,会与实际温度产生较大的误差等,这个问题在使用时一定要注意。

1.5 水位检测电路

本设计中采用分段式液位检测方法,在水箱内安装了5个水位传感器探针以感知水位变化情况,水位检测电路如图6所示。主控制器可以根据水箱内5个水位传感器探针检测的结果,自动识别和判断当前的水位情况,然后开启相关的电路自动加水至水位设定的档位。当水箱内的水位达到100%时,控制电路就自动停止加水;当水位低于10%时,控制电路就自动报警并停止辅助加热,电路进入自动保护状态,以防空烧。

图6 水位检测电路

1.6 辅助加热电路

太阳能热水器辅助加热电路就是确保热水器在梅雨季节或者是阴雨天气能可靠输送热水的重要电路。太阳能热水器在使用过程中比较容易受到季节变化、天气变化等外界环境的制约,冬天太阳能热水器制热效果显然没有夏天的效果好,阴雨天气的制热效果也比不上晴天,它存在着密度低 、间歇性 、空间分布不断变化的问题[9-10]。因此,在设计热水器的时候必须具备辅助加热功能。本设计采用了继电器来控制外部加热电路的工作。电路如图7所示。

当单片机发出控制信号为低电平时,继电器得电吸合,辅助加热电路接通电加热器工作。当单片机发出控制信号为高电平时,继电器复位,辅助加热电路断开,电路停止工作。继电器可以将两个不同电压等级的电路隔离,电路间不存在耦合,不产生相互干扰的现象,整个控制电路结构简单,工作安全可靠。

图7 辅助加热电路

1.7 键盘电路

键盘电路要考虑用户操作的方便性、可靠性和安全性问题,可采用独立式的键盘电路结构。独立式的键盘在智能控制系统中,往往只需要几个简单的功能按键就可以实现,整个电路结构简单、配置灵活、调试方便、工作稳定。独立式的按键是直接用主控芯片I/O接口构成的,其最大特点是每个按键电路单独与一根I/O口线连接,每个按键的工作状态是独立的,不会受到其它I/O口的数据影响。本设计的键盘电路如图8所示[8],采用独立式按键,一共5个按钮,每个按键单独占用一根I/O线。其中S1为功能或复位按钮,按下S1按钮,可以选择温度和水位等功能,配合S2S3就可以实现对温度的加减调节,或者是对水位的加减调节。S2为加按钮,S3为减按钮, S4为启动按钮,S5停止按钮。

图8 键盘电路

2 系统软件设计

为了便于调试,同时降低不同程序之间的相互影响,本文选择用模块化理念进行程序编写。为使控制器能够正常有序地工作,本文将控制器部分功能写成子程序,采用子程序调用的方式来完成相应功能。子程序包括:LCD1602液晶显示程序、温度信号采集和处理程序以及按键输入指令等。系统软件总体结构如图9所示。

图9 系统软件结构框图

2.1 系统主程序流程图

本系统设计有6个部分,分别是:温度检测子程序,水位检测子程序、显示子程序、键盘子程序、加热子程序及控制子程序。一开始,系统主程序首先要完成对各个串行口、定时器、中断源的初始化,读取与设置初始状态的运行参数,然后循环读取键盘状态,根据存储的键盘状态和检测读取到的水箱中的水温、水位等数据进行相应的处理,并等待中断服务程序的执行相应的功能。主程序流程如图10所示。

2.2 温度检测程序

图10 系统主程序流程图 图11 温度数据读取子程序框图

温度检测电路在硬件设计上采用了全数字化设计,不需要进行模拟信号与数字信号之间的转化,由DS18B20芯片直接将检测到的温度信息用数字信号的方式发送给单片机,单片机只需要发送指令来控制芯片发送数据即可,因此程序上相对简洁明了。读温度子程序的流程如图11所示。

2.3 水位检测程序

水位传感器有3个引脚,一个引脚接电源,另外两个引脚接单片机的两个I/O口。水位传感器将水位信息转化为3个等级,分别为水位高,水位中和水位低。当水位达到高位时,单片机P2_0口接收到高电平信号,当水位变低时,单片机的P2_1端口接受到高电平信号,当端口均为低电平时,热水器水位处于较低水平,需要向水箱中注水。从传感器工作模式出发,水位检测程序可以采用多个判断结构嵌套构成,水位检测子程序如图12所示。

图12 水位检测程序框图

如图12所示,先判断水位是否为高,若为高,则在液晶屏上显示水位为高并关闭加水继电器,以防止水箱中水过满溢出,否则判断水位是否为中,若水位为中则在液晶屏上显示水位为中,若水位既不为高也不为中,则水位处于较低水平,控制器在液晶屏上显示水位为低,同时打开加水继电器,向水箱中加水,并关闭加热继电器,停止加热,防止出现干烧。

2.4 人机交互程序设计

人机交互单元包括液晶显示单元和按键单元,液晶显示单元将传感器部分采集的一系列数据显示出来,如水温,水位等,同时还会显示用户设定的温度区间的最低温度和最高温度等信息,按键单元主要是用来使用户根据需求设定温度区间,进行个性化控制等操作。

2.4.1 液晶显示程序

液晶显示屏在使用时可分为4个状态:读指令,写指令,读数据和写数据。4个基本状态具体操作方式如下表2所示,液晶显示程序如图13所示。

表2 1602液晶屏基本状态

2.4.2 按键程序

本文控制器一共设计了5按键,均为独立按键,5个独立按键分别有不同的功能。其中S1为功能或复位按钮,按下S1按钮,可以选择温度和水位等功能,配合S2S3就可以实现对温度的加减调节,或者是对水位的加减调节。S2为加按钮,S3为减按钮, S4为启动按钮,S5停止按钮。了便于用户操作,加减按键还赋予了连加和连减功能,连续三次按下加、减键就会触发连加或连减功能,使用户能更快的调节到想要的温度范围。

由于按键功能较多,其程序设计也比较复杂,本文不对按键程序做一一介绍,就以增加键为例,增加键程序设计如图14所示。

图13 液晶显示程序框图 图14 按键程序框图

2.5 辅助加热程序

自动加热辅助功能和自动上水辅助功能分别嵌入在温度检测程序与水位检测程序之中。以辅助加热功能程序为例,在用户已经设定好太阳能热水器的水温之后,若温度检测程序执行结束后单片机接收到的温度数据低于所设定温度区间的下界,则控制器会自动执行加热程序,打开加热电路的继电器,使加热电路工作,从而使水温上升。因程序较为简单,此处不在给出相关程序框图。

3 实验与测试

本设计程序编译平台选择的是keil编译平台,keil编译平台在单片机程序开发,特别是51单片机程序开发中使用十分广泛。在程序调试过程中,遇到了一些问题,主要是各个子程序的调用以及菜单按键的个别功能不能协调。由于本系统的功能较多,程序也比较复杂。因此,采用了分步调试,逐渐增加功能的调试方法。太阳能热水器自动控制系统的主要功能有:

1)实现水温自动检测、显示以及控制功能。用户可以通过控制器上的按键来设定热水器的水温。当水箱中水温达不到设定温度时,控制器自动接通外部加热电路工作,使水温上升至设定值;

2)实现自动水位检测、显示功能。热水器控制系统将水位传感器获取水箱中的水位信息显示在液晶屏上。

3)实现定时上水和水位过低自动上水功能。当水位传感器检测到热水器水箱内水位过低时,控制系统会断开辅助加热电路并执行自动上水,避免热水器出现空烧,防止热水器水量不足引发的安全事故。

4)实现人工辅助设置功能。用户可以通过键盘来设置水箱中的温度和水位,从而满足不同用户的个性化需求。

5)实现辅助加热功能,保证热水器在光线较弱或阴雨天气情况下也能正常可靠地提供热水。

软硬件联调过程相对于软件调试来说比较难,调试时首先把程序烧录到单片机内部,然后通电看液晶屏能否正常显示,最后逐个测试热水器的不同功能,如果发现个别功能错误或者缺失,就要从软硬件两个方面同时检查,寻找出问题的所在。若是程序逻辑有问题,则修改相应的程序代码;若硬件焊接或者元件损坏,则重新焊接或更换相应的元件。

4 结束语

只有通过软件测试,才能保证程序能够被主控制芯片顺利地执行。而通过软件、硬件联调则可以排查程序在逻辑上的一些问题,从而保证电路系统完成所需的全部功能。太阳能热水器设计之初的目的就是节约能源,因此,在设计其控制电路的过程中也遵循了这个原则,我们选择了既能满足控制器功能需求又相对比较经济的元器件,同时使设计出来的电路便于后期维修,降低了后期的维护成本。使设计出来的太阳能热水器控制系统以相对较低的能耗完成所需功能,整体上达到了设计的目的。

猜你喜欢
热水器按键水位
基于有限状态机的按键检测程序设计
多按键情况下,单片机端口不足的解决方法
谁应该为毁损的热水器负责?
太阳能热水器
自制一个太阳能热水器
身边的太阳能
其实真的很简单教你轻松关闭WP8.1手机按键灯
计算器
七年级数学期中测试题(B)