㈡水温检测电路的硬件设计
图2水温检测电路
本设计温度传感器选用AD590。
AD590属于半导体集成电路温度传感器,测温范围-55℃-+150℃,在其二端加上一定的工作电压,其输出电流与温度变化成线性关系,1uA/°K,误差有几种等级:
±1、±0.5、±0.3℃,本设计中选取±0.5℃品种。
OP07为高精度运算放大器,AD590电流流经R1、RP1转换为电压信号,R2、RP2为运算负反馈电阻,成反相比例放大器,将温度信号转换成0-5V的电压信号,ADC0832再将其转换为数字信号,输入CPU。
图2-8为温度检测和A/D转换电路图控制器的操作使用方式自然合理。
S1用来切换操作状态。
控制器有“直接控制”和“参数修改”两种工作状态。
按S1键显示“00”,控制器进入“直接控制”状态,显示“01”、“02”、“03”、“04”分别表示“水位上限设定”、“定时上水时间设定”、“定时加热时间设定”、“加热温度设定”。
进入到“参数修改”的状态以后,,首先S1接受本次修改,并切换到下一个参数,S2、S3用来修改规定的参数,S4取消本次修改。
进入“直接控制”后,S3用来手动加热,S2用来手动上水,,S4用来停止加热或上水。
如果水位已经超过预先设定水位的上限,水温已经超过预先设定的温度,“直接控制”将不起作用。
设定水位上限:
控制器可以监测6个水位,上限水位可以由用户设置,水位上限设置范围为位置3、4、5、6。
设定定时上水时间:
每天在规定时间检查水位,并上满。
若设定时间为00或大于等于24,则取消自动定时上水。
设定定时加热时间:
每天在规定时间检查水温,若水温低于设定温度,则接通电加热器,将水温加热到设定温度。
若设定时间为00或大于等于24,则取消自动定时加热。
设定加热温度:
定时加热温度也可以由用户设定,可设定范围为20℃~60℃。
㈢按键电路的硬件设计
P1.0-P1.7口作为按键的信号输入端,键按下,就执行该键的功能。
其电路如图3所示。
<为了编程简单、方便,采用独立式键盘电路)
当按钮按下后,电路与地接通时,I/U口与地面相连为低电平。
按钮没有按下时,电路不与地面相接,I/U口与电压高端相连为高电平。
本设计中采用了共阴极接法,对于显示水温水位的程序作如下说明:
①在动态扫描过程中,调用延时子程序Del1,其延迟时间为1ms,这是为了使扫描到哪位显示器稳定的点亮一段时间,犹如扫描过程中在每一位显示器上都一段驻留时间,以保证其显示亮度。
②本设计接口电路是软件为主的接口电路,对显示数据以查表方法得到其字形代码,为此在程序中有字形代码Table,从0开始依次写入十六进制数的字形代码。
为了进行查表操作,使用查表指令MOVCA,@A+DPTR,由DPTR提供16位基址,由A提供变址,因此显示数据送A后,再由A送P0.1~P0.6输出给显示器。
图3按键电路
㈣显示电路的硬件设计
本设计采用共阳型数码管,8个LED灯如图3-13中接法,灯的负极依次接到数码管的a-f段,采用动态扫描电路,并把显示程序作为主程序。
数码管的段用P0口控制,P2.0口、P2.3口作为数码管的位控制,P2.4作为指示灯的控制。
图4时钟显示电路
系统输入信号有:
6个液位信号、1个温度信号、4个触摸键。
输出信号有:
4位LED数码管分时显示当前温度和液位,3个位输出控制继电器分别控制上水电磁阀、加热泵、增压泵,1个位输出控制蜂鸣器作为低水位报警信号和其他异常情况报警,2个位输出指示上水、加热状态。
用户设定工程有水位上限、热水温度、上水定时、加热定时。
设定参数用EEPROM保存,停电后参数无需重新设定。
系统具有故障自检功能,电磁阀、加压泵在停水时会自动切断,水位传感器有故障时禁止上水,以免上水时溢出。
液位传感器主要采用ATS173型霍尔元件,若干个霍尔元件被固定在一个垂直的导槽上,磁钢浮子的带动下沿着导槽移动,霍尔元件的输出在电阻网络的作用下转换成不同的电压,经过ADC通道最终送入MCU。
这样,仅用一个ADC通道可以实现多路数字信号的输入。
温度传感器采用负温度(NTC>型通用热敏电阻,信号经另一路ADC输入MCU。
保存设定参数的EEPROM采用HT93LC46,采用串行方式与MCU接口,整个控制器的硬件及对MCU的资源要求降到最低。
MCU根据检测到的水位信号、水箱温度信号,以及用户的设定或操作,通过软件进行数值计算和逻辑运算,以确定当前应该进行的操作,并通过输出口控制进水阀、加压泵、加热泵的状态,以实现要求的控制功能。
由于SN8P1706的I/O口驱动能力可高达15mA,采用高亮度的LED显示无须再使用驱动器件,可以由SN8P1706的I/O口直接驱动。
㈤报警电路设计
由于是用于家用热水器,考虑到成本问题,故采用发光二极管报警,相较蜂鸣器而言,既降低了成本,也使设计简单化。
图5中7407是正向缓冲/驱动器。
它具有缓冲功能,同时也可以提高电流的驱动能力。
7407有两种接法:
<1)当电路共阳极接法时,7407主要起着缓冲的作用,就是缓冲单片机的承受能力,如果没有7407,那么单片机承受的电流能力很小,那么工作电流就受到了限制,亮度不够亮,而加上7407就可以缓解单片机的灌电流,从而,可以减少限流电流的值,使流过二极管的电流增强,从而灯变更亮。
<2)当电路共阴极接法时,即将电源接地,二极管反接过来,这是单片机上拉电流被7407放大,来驱动灯。
综上所述,报警电路如图所示:
图5报警电路
3、小组分工合作完成热水器智能管理控制系统的软件设计。
答:
㈠软件设计原理及设计所用工具
本次设计主要利用C语言编写程序,根据功能的需要进行编程,其中软件设计所用的软件主要是KeiluVision3软件,PROTEUSISIS软件。
即使在天气条件不理想的情况下,太阳能热水器也能够在用户预先设定好的时间内向用户提供热水,给用户生活提供了极大的便捷。
当控制器在用户预先设定的时间范围内使水温达到预先设定设定温度时,控制器会通过声光报警来提醒告知用户。
根据这一要求,控制器软件设计采用模块化结构,包括主程序、键盘中断子程序、DS12887更新周期结束中断子程序、LED显示子程序和提前加热时间计算子程序等。
系统主程序的任务主要是完成温度和水位的检测功能以及进行预算辅助加热时间和一些基本初始化功能。
主程序中主要利用查表的方法进行辅助加热提前量进行预算。
系统主程序流程图如图6所示:
图6系统程序流程图
关于时间和温度的设定,每次设定完成后,设定值会存入到DS12887的非易失性RAM中,当下次开机时会自动进行数值的读取。
这样做有两个优点:
其一是当系统不进行时间和温度的设定时,就默认该设定值和先前的设定值等同,这样就解决了每次开机需要从新设定时间和温度的问题,减少了用户的操作程序,其二是如果系统在运行中间断电且供电再次恢复时,可以不用再重新设定温度和时间值,系统可以按原先设定的默认值对温度进行控制,使控制器对外界条件环境的处理和适应能力得到进一步提高。
对提前加热时间的计算,则是系统能否实现预定加热功能的重要一步。
因为系统采用分段式水位检测,若采用能量守恒的方法对提前加热时间进行预算,也同样得不到精确的结果。
为了避开繁琐的计算过程,本系统中采用了模糊控制思想,使用了如下一些控制语句:
IF水位高AND温度差大THEN加热时间长
IF水位适中AND温度差适中THEN加热时间适中
IF水位低AND温度差低THEN加热时间少
采用这种思想后,可以用实验方法获得各种情况下需要加热的时间,编制成表格。
使用时,只要查表获得提前加热时间就行了。
显然,表格分得越细,控制就越准确。
本控制器采用温差每等于5℃为一格,就能满足控制要求了。
为了减小误差,实验表明,可以采用如图7的方法。
图7水位监测处理示意图
实验中,用水位达到B1时的结果代替水位达到A1时的结果,B2代替A2,B3代替A3,B4代替A4。
这样,CPU读入的A1水位查表后得到的预加热时间是实验中水位在B1处的时间。
经过这种处理,会把由于分段检测而产生的计算误差减小一半,由原来的h变成了h/2(h为分段水位检测间隙>。
如果水箱水深为40cm,分8段检测,此种处理方法的计算将使水位误差由原来的5cm变成了2.5cm。
这种误差对于民用的热水器来说,已完全能够满足要求了。
㈡显示子程序
分析表明,移位寄存器74LS164仅有串入并出作用没有译码功能。
因此,在编写显示驱动程序之前,首先需要计算列写出与本电路对应的LED段选码,然后由89C52的P3.0口送入74LS164的串行输入端,再并行输出到LED的段选端。
需要指出的是,上面显示电路采用TOS28106BHK型号的共阳极LED显示器,根据PCB印制线路板的连线方便,其LED的8个段选端与74LS164的并行输出口即8根段选线的连接没有遵照通常的规律,而是如图3-5所示的段排列为7、6、4、2、1、9、10、5,相应的段选码也要重新计算,如显示字符0的段选码为11H。
电路中设计了4位LED显示器,其功能为:
左首位为百位数或标志位,左二位为十位数,左三位为个位数,左四位为小数点后的十分位数。
据此,给出如图8所示的显示子程序框图。
图8显示子程序框图
㈢软件调试
软件的调试主要通过KeiluVision3软件进行操作,对程序编写过程中的错误进行查找,找出错误,进行修改,然后再进行编译直至编译成功,生成HEX文件,才能下载到单片机里,继而实现相应功能。
四、思考讨论
家用单个太阳能热水器可以通过以单片机为核心的控制系统实现智能化管理控制。
如果单位同时使用多个热水器,如何实现对多个热水器同时智能化管理控制?
答:
将多个热水器进行串联在一起,形成一个大的热水器,然后通过单片机实现智能化管理控制。
五、评价反馈
评价采用小组长考核与教师考核相结合,从专业能力和素质评价两个方面对学生进行评价。
小组长督导本组同学完成知识的获取,在作业本上完成作业,并根据小组成员的日常表现、出勤情况及完成作业情况对小组成员进行素质评价。
教师从学生专业知识获取程度<温度等传感器的选用及使用、智能控制系统设计方法及步骤,绘制图形的规范性)以及学习素质<出勤情况及课堂表现)两方面对学生进行评价。
个人成绩评价表
组长评价
教师评价
评价内容
分值
评价内容
分值
出勤情况<20)
作业情况<50)
小组日常表现<50)
工作页情况<30)
作业完成情况<30)
课堂表现<20)
小计
合计