自动洗碗机的控制系统设计
摘要:基于自动洗碗机的功能要求,介绍了用单片机AT89LS8252和键盘/显示管理芯片HD7279A设计的自动洗碗机的硬件控制系统的设计方法,给出了用HD7279控制键盘和显示的硬件电路,同时给出了系统软件和功能软件模块的流程图。该系统经过试验调试,可有效地实现洗碗机的自动控制,完成自动进水、加温、清洗、消毒等功能。
关键词:洗碗机;控制器;键盘/显示
1 引言
随着数字信息家用电器应用的普及,洗碗机已经广泛进入人民大众的家庭之中,从而使得人们能够从繁杂的家务劳动中逐步解放出来。javascript:window.open(this.src);" style="cursor:pointer;"/>作为一种家庭自动化设备,洗碗机一般需要实现诸如自动控制进水、自动加洗涤剂、冷洗、自动加温洗、清洗、排水、杀菌消毒,以及定时和故障报警等功能。从被控制量角度出发,一个洗碗机通常需要满足图1所示的一些具体要求,其中涉及的开关量信号有两种,一种是传感器的高、低电平信号检测,如机门开关、水位高低、温度调节保护器和行程开关等;另一种开关信号经由固态继电器控制强弱电压信号的断开和加载,如进水电磁阀门的开合、恒温加热器的开合、瞬间加热器的开合、清洁剂控制盒和消毒剂控制盒的工作等。图1中所涉及的模拟量信号主要用于实现以下几方面的功能:
(1)用温度传感器实现水温/消毒水温度检测;
(2)通过人机接口的显示输出、键盘输入和声音输出等实现水温显示、洗涤过程显示以及故障类型显示等;
(3)根据用户需要通过设置键选择洗涤模式,并通过功能键启动相关功能;
(4)机器使用情况统计、清洁剂和消毒剂剂量的使用情况计数等;
(5)故障报警以及、洗涤完成报告等。
2 洗碗机控制系统的硬件设计
针对上述功能及可靠性、成本和方便使用维护等因素,笔者设计了图2所示的洗碗机控制系统。
单片机最小系统采用与MCS-51兼容的AT-MEL公司低功耗高性能CMOS芯片AT89LS8252设计,其中片内8k字节在线可编程闪存用以存放系统程序,可通过SPI接口来下载程序;而2k字节的EEPROM则用以存放关键参数,如开机维护密码、产品的序列号、开机次数、洗涤设置参数等;256字节的RAM用来存放临时变量。
鉴于本洗碗机有较多的开关量信号,故此,设计中使用并行芯片8255来扩展I/O接口,以配合P1和P3口部分管脚的使用,其输出和输入的比例为21/14,其中蜂鸣器由P1.3控制。从可靠性角度出发,输入和输出部分都采用光电隔离措施。考虑到部分驱动信号所要求的驱动电流较大,因此,本设计选用功率驱动器件ULN2803来驱动。
温度采集有两种方案:一是使用热敏电阻配合芯片MAX150进行AD转换,然后通过存放在程序存储器里的表格来求得当前温度;二是使用三端温度传感器DS18B20进行采集,直接得到温度数据。相比之下,后一种方案较为经济简捷。
键盘和LED显示选用HD7279A3来进行控制,其电路图如图3所示。HD7279A无需外围元件即可直接驱动8位共阴式LED数码管;引脚DIG0~3对应0~3位数字输出驱动;引脚SA~SG和DP则对应于段a~g及小数点的驱动输出;各位可独立控制译码/不译码及消隐和闪烁等属性。
javascript:window.open(this.src);" style="cursor:pointer;"/>
该芯片共有三种类型的指令:第一种是6条不带数据的8位纯指令,如复位、测试、左/右(循环)移位等;第二种是7条16位带数据指令,包括下载数据按方式0/1译码、下载不译码、闪烁、消隐、段点亮、关闭等;第三种是读取键盘数据指令。它们均采用串行方式与AT89LS8252进行通讯,串行数据从DATA引脚送入芯片并由CLK端同步。当片选信号CS变为低电平后,DATA引脚上的数据将在CLK引脚的上升沿时被写入HD7279A的缓冲寄存器。
此外,HD7279A片内含有去抖动电路,可控制64键键盘矩阵。图3中,元件JKEY为4×4键盘接口,当有键按下时,KEY引脚输出低电平,发光二极管LED1发亮,该状态一直保持到按键松开。此时如果接收到“读键盘”指令15H,在指令前半段,DATA引脚将处于高阻状态以接受来自微处理器的指令。而在指令后半段,DATA引脚则从输入状态转为输出状态,用以输出所按下的键代码值。
3 洗碗机控制系统的软件设计
本系统功能模块按洗碗过程可分为六个阶段:进水过程、加温过程、注入清洁剂过程、控制电机旋转清洗过程、注入消毒水消毒过程和排水过程。同时为确保洗碗机正常工作,对容易出故障的过程,系统还设置了故障报警或停机功能。系统软件可按照洗碗机的工作流程进行编写。主要的软件模块有开机自检、状态初始化、显示当前默认状态,进入键盘扫描状态并等待操作键按下,以及根据操作键转入相应流程等,其主程序流程见图4所示。
图3
用户使用前,应首先检查洗碗机状态是否正常,若状态正常,按下弱电源开关,根据洗涤要求设置洗涤模式(或使用默认方式),将碗放入清洗室,然后关上机门,按下开始键。之后,控制器检测水位高低和水温,以决定是否进水与恒温加热,至此准备工作完成,启动电机进行清洗。接下来再把清洁剂注入清洗室,同时检测水位高低,若水位较低,则立即进水,以保证清洗效果。清洗完成后,等碗上的水空一段时间后,洗碗机再注入高温消毒水进行消毒。洗涤完成后,蜂鸣器鸣叫,表明洗涤完成,同时控制器回到用户初始设置模式。洗涤中每一过程和按键均对应有一发光二极管的亮灭,用以显示过程和按键的正常与否。洗涤完成后,用户打开机门,取出碗盘,然后断电即可结束整个洗碗过程。
在该系统软件子程序中,需要对键盘/显示管理模块进行说明,包括初始化子程序、发送子程序、接收子程序、中断子程序、显示子程序等。其中用户通过键盘设置模块可以设定洗涤模式、每一过程的时间长短以及洗涤剂量大小,也可随时按相应的功能键暂停或中止洗涤过程。技术维护人员可以通过键盘/显示管理模块输入正确密码来查询机器的使用状况,如机器序列号、机器的使用次数等,也可对关键参数根据实际情况进行设置。
javascript:window.open(this.src);" style="cursor:pointer;"/>
故障报警功能模块可在工作电压故障、进水阀故障、加热器故障、电机故障、清洁剂注入故障以及高温消毒水注入故障发生时用蜂鸣器报警,同时断掉强电控制信号,以确保系统安全。
4 结论
该控制系统目前已经调试成功,试验性能良好,可实现本自动洗碗机所要求的功能,而且简捷实用。但还有需要完善提高的地方,如排水需要人工干预、人机接口可考虑选用效果更好的字符或图形LCD、系统集成度有待提高等。