湖北省随州市第一高级中学 周雪林
能源危机是当前人类社会发展面临的一个主要问题,因而全社会都应大力提倡节能环保。太阳能热水器是普通家庭中常见的一种热水供应设备,节能方便安全,本设计是利用STC12C5A60S2单片机作为控制芯片,结合传感器、继电器、电磁阀、小型液晶显示屏等实现对传统太阳能热水器的升级改进,使其具有一定程度的智能化。
整个系统由两大部分构成。底层系统是由霍尔传感器、温度传感器DS18B20构成的神经网络;顶层系统由STC12C5A 60S2单片机、继电器—电磁阀系统、继电器—加热电阻系统、时钟芯片DS1302、1602液晶显示屏、2*2键盘组成,构成了总系统的执行机构和人机交互系统。图1所示是系统的总体硬件框图:
图1 系统的总体硬件框图
由单片机和传感器实现的太阳能热水器自动控制系统是以STC-12C5A 60S2芯片为核心,由2*2矩阵键盘、1602液晶显示、DS18B20温度传感器、DS1302时钟芯片和继电器—电磁阀、继电器—加热电阻等组成。系统的工作原理如下:(1)发生水位变化时,带动浮子内的磁铁,通过霍尔传感器侦测磁铁的位置,从而得知水位的高低,同时通过发光二极管和液晶屏显示液位高度,并根据设定的要求,当低于设定水位时单片机控制继电器,由继电器接通电磁阀电源,进行加水;当达到设定的最高水位时,继电器控制电磁阀停止加水。(2)由温度传感器测得实时温度,当水温低于设定温度时,由继电器接通电阻丝电源,进行加热;当温度高于设定温度时,停止加热。(3)由DS1302时钟芯片进行计时;(4)由1602液晶屏实时显示时间、温度和水位;(5)由键盘进行参数设定。
本系统的单片机采用STC12C5A60S2芯片。其中,P0口用于1602液晶屏的数据传送;P1口用于单片机与各种外围器件的通讯;P2口用于检测霍尔传感器信号、控制电磁阀动作和指示灯显示;P3口连接一个键盘。
本系统采用2*2矩阵键盘,占用单片机P3口的4个端口。2*2矩阵键盘主要作用是设置温度和时间。键盘及程序的设计任务主要有:按键检测及判断键值。有按键按下则进行消抖,并根据键值驱动执行机构开启加热功能(停止加热)以及设定时间。
单片机通过对液晶的E、RS、RW等引脚按时序图进行读写操作,使其显示当前水位,时间、温度。
时钟芯片采用DS1302,它通过串口与单片机通讯,通讯只需要三根线:CE,数据线(I/O)和串行时钟(SCLK)。实时时钟/日历提供关于年、月和日的信息。对于不到31天的月份,每月将自动调整,并具有闰年修正功能。芯片具有AM/PM指示器,时钟能够以12小时制或24小时制工作。在设计电路时,为了提高抗干扰能力,在设计电路时分别给CE、I/O、SCLK接了10K的上拉电阻。
温度模块采用DS18B20温度传感器。超小的体积,超低的硬件开销,抗干扰能力强,测温精度高。
DS18B20芯片通过的单总线协议依赖于单线端口进行通信。当所有设备通过三态端口或漏极开路端口连接到总线时,控制线应该连接弱上拉电阻。对于DS18B20的电路连接,除了上面描述的传统外部电源的电路连接图之外,DS18B20还可以工作在“寄生功率模式”中。下图显示了在“寄生电源模式”下工作的DS18B20的电路连接图。这使得DS18B20能够在寄生功率模式下工作。它可以收集多个位置的实时温度信息而无需额外的电源。
实际应用中,因上拉较弱,起控制、输入输出的三个端口,容易产生信号串扰,因而与单片机P1口间应接上拉电阻,以便增强信号稳定性;为保证时钟的可靠性,使用了纽扣电池作为备用电源,输出电压为3V,从而保证了系统掉电状态下能够继续工作。
在设计电路时,让DS18B20与DS1302一点共地。
本系统选用的继电器,额定工作电压125VAC/28VDC,工作电流10A,控制电压5VDC。用它作为电磁阀和发热电阻的控制元件。
继电器是一种利用电磁原理控制的开关,它具有输入回路和输出回路,常用于自动控制电路中。在继电器的低压控制端与继电器的接触端之间没有电气连接,是通过电磁吸引和机械方式实现接触控制,从而实现低压直流控制高压(DC/AC)的功能。
由于继电器的低压控制端的电流相对于单片机I/O口的电流较大,需要使用三极管驱动继电器吸合。
继电器的电磁铁具有电感,在断电时可能会产生较大的反向电压,损坏三极管,所以在继电器的控制端使用二极管来进行放电。
本设计方案采用浮子、磁铁结合A 3144E型霍尔传感器来监测水位的方法。当水位达到相应位置是,霍尔元件检测到磁信号,有控制信号使相应的发光二极管发光,指示水位高低,同时在液晶屏上显示水位值。应用霍尔效应,并采用半导体集成技术制造磁敏电路,这便是霍尔开关集成电路。它工作时的输入变量是磁感应强度,输出的则是一个数字电压信号。
电源尖峰脉冲会引发噪声干扰,高频信号线间也会产生耦合干扰,为解决这些问题,在电源入口处及芯片顶端或底端,接入去耦电容,用于提高系统的稳定性。
图2 主程序流程图
本方案在主程序中采用轮询的方式依次循环执行各模块程序,本方案要实现的功能,采用这种方式实现,完全可以满足要求;对于由霍尔传感器和按键给出的信号,也可以考虑采用中断的方式进行处理,在中断服务程序中执行相应的指令。
在芯片的驱动程序设计中,要特别注意时序问题,严格按照芯片手册的要求来设计程序,同时在延时问题上,也要注意与所选单片机型号和晶振相对应。还要注意变量的数据类型。
在软件设计中,上电时完成对单片机、传感器和1602液晶屏的初始化;然后单片机扫描键盘,可以通过键盘输入完成参数的设定;单片机循环采样各传感器,将采集到的数据通过1602液晶屏显示出来;然后依次根据所采集的数据,判断是否驱动继电器—电磁阀模块进行加水(停止加水)或驱动继电器—加热模块进行加热(停止加热)。
系统主程序流程图如图2所示。
本方案设计一种太阳能热水器控制系统,能够使传统的系统具备一定的智能性。本系统通过调试,实际运行,证明传感器工作灵敏,系统运行稳定,人机交互性好,基本实现了设计目标,有较好的应用前景。
[1]郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2009,01:342-354.
[2]杨欣,张延强,张铠麟.实例解读51单片机完全学习与应用[M].北京:电子工业出版社,2011,04:448-449.
[3]刘佳琪,高敬鹏.Altium Designer 15原理图与PCB设计教程[M].北京:机械工业出版社,2016,07.
[4]谭浩强.C程序设计[M].北京:清华大学出版社,1999,12.