单片机实例分享,饮水机自动关电源专用插座
为了满足学生饮水需要,学校在每个教室配备了一台饮水机。但由于各种原因,大家经常忘记关闭饮水机,导致饮水机整夜反复烧水,不仅耗费了大量的电能,而且喝这种经过反复烧过的水也有害健康。于是,我们想到了制作一个控制器,当我们忘记关机时,能够自动关闭饮水机电源。
基本原理
饮水机对机箱里的水通电加热,水烧开后会断电停止加热。如果没有将烧好的水用掉,烧好的水会慢慢地散热降温,当温度降到加热下限时,饮水机会控制再次加热。由于加热机箱包裹了性能较好的保温材料,散热降温速度较慢,两次加热间的时间间隔较长,一般在10min以上。如果水烧开后,用去了烧好的全部或部分热水,则温度会很快降到加热下限,这样两次加热的时间间隔较短。这个过程的示意图如图6.1所示。
图6.1 饮水机电流变化示意图
我们可以根据通电电流的有无测量两次加热的时间间隔,从而可以判断有没有倒水,如果连续两次加热没有倒水,则判断不需要再烧水,直接关闭饮水机电源。对电流有无的判断,可以在饮水机里完成,也可以在输电线路上(如在插线板里)完成。如果选择后者,则没必要修改饮水机,可以极大限度地方便推广使用。
结构框图及系统电路图
根据上述分析,我们设计了系统的结构框图(如图6.2所示)及系统电路图(如图6.3所示)。
图6.2 系统结构框图
图6.3 系统电路图
1. 电流传感部分
这部分电路的原理图如图6.4所示,饮水机的功率一般都在1000W以上,我们教室里使用的功率为1000W,额定电流约为5A。当饮水机加热时,有较大的电流流过两个阻值为0.5Ω的水泥电阻并联后组成的取样电阻,并联后的阻值为0.25Ω,两端电压的有效值为1.2V,最大值为1.6V。由于光耦里的红外二极管导通、发光电压为1.2V,因此在加热过程中能周期性地发光。当光耦初级发光时,光耦次级光敏三极管导通,从而输出一个低电平到P27,供单片机进行判断。当电流为零,或者电流方向不符合导通条件时,光耦次级光敏三极管截止,通过上拉电阻的作用,输出高电平到P27,因此有加热电流时,周期性地输出低电平到P27,由此我们可以判断系统有没有加热电流。
图6.4 电流检测电路
此处的取样电阻消耗的功率约为6W,所以选用两个功率为5W的水泥电阻并联使用,光耦选用常用的线性光耦EL817,它不仅实现了信号的耦合,同时也实现了系统与市电的的隔离,提高了系统的稳定性。
2. 按键
系统设置了3个按键,分别用来实现以下3个功能。
(1)存储正常降温的时间数据。
当系统完成一次没有倒水的降温时,按此按键可以把这个降温时间数据存入存储器AT24C02中,供系统参考,判断是否存在倒水动作。
(2)设置加热一次断电。
如果是家庭使用,多数情况下,我们只要喝一杯水,此时只要烧一次就可以了,按此按键,在烧好一次水之后,系统将断电。
(3)设置智能断电。
按此按键后,系统进入自动断电状态的初始设置,如工作类型设定,没有倒水的烧水次数清零,读取参考数据等。
3. LED 指示灯及蜂鸣器警示部分
这部分电路设置了4个LED指示灯。其中,3个在按键旁边,用于状态指示,在按键1旁边的用于指示是否有可存数据,如果等待时间大于10min,则认为是没有倒水的时间间隔,可以存储使用。按键2和按键3旁边的指示灯,用于指示系统的工作状态,按键2旁边的灯亮,说明处于一次烧水状态,如果按键3旁边的指示灯亮,说明系统处于自动断电状态。初始默认为智能断电。
另一个3mm共阳双色发光二极管用于指示系统工作状态,发红色光表示饮水机处于加热状态,发绿色光表示饮水机处于等待状态。由于红色LED正常工作电压降约为1.7V,绿色LED正常工作电压降约为3V,所以为了获得相同的亮度,它们要连接不同的限流电阻。本制作中,红色LED串联1kΩ电阻作为限流电阻,绿色LED串联200Ω作为限流电阻,这使得它们的亮度能基本一致。安装二极管时要特别注意引脚的极性。
当水烧好时,蜂鸣器会发出声音,提醒我们可以倒水,当要自动关闭电源时,也发出声音提醒我们,使我们不用看指示灯,即可在第一时间知道水有没有烧好。
4. 数据存储部分
不同的饮水机,不同的环境温度,烧好水后的自动降温时间是不同的,不能一概而论,所以此处设置了一个数据存储部分,用于存储某种使用状态下,自动降温的时间,当换用了不同的饮水机,或者环境温度变化较大时,可重新设置并保存。由于存储的数据量不是很大,并且要求断电后能够保存,此处选用常用的AT24C02作为存储芯片。
5. 环境温度检测
由于不同的环境温度,水温降低的速度不一样,我们可以加入一个环境温度检测电路,根据测得的环境温度不同,对自动降温时间做出适当的修正。
6. 继电器控制
控制系统通过继电器控制是否给饮水机通电,如图6.5所示。当P22输出高电平时,VT1导通,继电器触片接到常开引脚,接通饮水机的电源。反之,则关闭饮水机的电源。由于继电器是感性元件,断电时将产生较高的感应电动势,所以要接上一个二极管(IN4007)作为续流二极管,吸收所产生的感应电流。此处使用的继电器额定电流为10A,完全适合此制作的需要。
图6.5 继电器输出电路
7. 主控电路
由于处理的数据不多,对处理速度要求不高,所以选用常用的51单片机作为主控单元,负责协调控制整个系统的工作,包括电流检测、时间测量、按键扫描、220V高压输出控制等相关操作,整个系统就是通过主控电路把各部分电路结合成一个有机整体的。
8. 电源电路
由于系统要驱动5V继电器,所需的工作电流较大,控制部分总电源达250mA,所以找到一个输出5V/500mA的废旧手机充电器,拆掉里面的电路板作为电源模块,给系统供电。
程序设计
根据系统的工作过程,设计出单片机程序的流程,如图6.6所示。其主要的控制部分在定时中断里完成,而按键扫描,则在主程序里完成。
图6.6 主要程序框图
制作过程
(1)根据设计的原理图绘制PCB图,利用热转印法手工制作电路板。设计PCB时要充分考虑安装的空间、形状、关键元器件的位置,设计好的PCB如图6.7所示,安装好相关元器件之后的电路板如图6.8所示。
图6.7 PCB 图
图6.8 焊接好元器件的电路板
(2)由于控制器涉及220V的高压电,因此必须制作一个外壳,把里面的电路包装起来。我们选用的是加工性能好、透明度高的亚克力板(有机玻璃板),在保护里面电路的同时,不至于把我们制作的精华部分隐藏起来。为使系统更协调,底板采用乳白色的亚克力板。根据设计,裁取合适的6块板,并在面板上相应的位置加工相关的孔,如散热孔、安装孔、按键孔、插座孔等。加工好的几块板如图6.9所示,再用亚克力板专用胶水把各部分粘连起来,如图6.10所示。
图6.9 裁好并钻好孔的几块亚克力板
(3)从废旧手机充电器上取出里面的电路板作为系统的供电电源,取废旧插线板里的插座单元,作为输出插座,如图6.11所示,并把它们安装在机壳的相应位置上。
图6.10 粘好的外壳
图6.11 电源和插座
(4)把电路板、开关等固定在插线板里,接好线,即完成了系统的制作,其接线图如图6.12所示,每次按触动开关,系统自动启动,并保持通电状态。当给饮水机断电时,系统电源也跟着断电,节省电能的同时,也防止系统长时间通电而影响其寿命。制作完成的作品如图6.13所示。
图6.12 电路连接示意图
图6.13 最终的成品图
使用方法
把本控制器电源线插头插到室内的插座上,饮水机的电源线插到本控制器上,按触动开关,即可开机使用。
1. 获取自然降温时间
初次使用或者是换用其他饮水机之后,要把水烧开一次,并让其自然降温。通过按保存键,把自然降温的时间存在存储器里,供下次使用时参考。
2. 正常控制
在接通电源之后,按自动断开键进入自动断电状态,在这种情况下,如果两次烧开之后没有倒水,则关闭系统电源。当按饮水机上的一次烧水,则一次烧开之后断电。开机默认为自动断电状态,关闭饮水机时控制器本身将断电。
基于STC89C52的智能全自动洗衣机控制系统设计
张哲,李智,管四海
(西安电子科技大学 机电工程学院,陕西 西安 710071)
:为了降低全自动洗衣机的运行功耗、提高运行的稳定性、降低制造成本以及更方便的操作,设计了一种基于STC89C52单片机的全自动洗衣机控制系统。该控制系统由蓝牙部分、红外热释部分、LCD1602液晶部分和直流电机等组成。其中,采用蓝牙无线通信技术以实现在长距离移动终端上控制洗衣机运行的参数;通过红外热释电传感器控制,以便于取衣操作。最后,给出了该控制系统的硬件结构和软件流程,且通过Proteus仿真测试验证了该控制系统是简便有效的。
: STC89C52;蓝牙无线通讯;红外热释电;智能家居
:TP13文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.07.030
引用格式 :张哲,李智,管四海.基于STC89C52的智能全自动洗衣机控制系统设计[J].微型机与应用,2017,36(7):102-105.
0引言
*基金项目:国家自然科学基金(61673310)由于全自动洗衣机具有对洗涤物品的破坏性弱、一次可洗涤大量衣物、节省劳动力等优点,使它受到广泛的使用并走进了千家万户[1]。但随着智能家居概念的提出、传播和在生活中的初步使用,使得人们对全自动洗衣机在价格低廉的基础上又提出了性能可靠、洗衣功耗低、操作简单、工作效率高以及便于维修等要求。然而目前的全自动洗衣机仅具有洗涤、甩干和暂停等几大简单洗涤功能,不足以满足人们对于智能化控制的需求。此外,传统洗衣机的运行状态显示常采用数码管,这就导致运行状态不清晰,错误代码不明确,缺乏人性化,进而对洗衣机的操作和维护带来极大的不便。
为了有效解决以上问题,本文利用HC05蓝牙模块、矩阵式键盘、LCD1602液晶显示屏和红外热释电传感器,基于STC89C52设计了一种智能控制系统。其中,利用HC-05蓝牙模块以及矩阵式键盘分别实现无线移动终端控制洗衣操作以及近距离人机操作;利用LCD1602液晶显示屏以清晰的英文标识显示当前的工作状态并配有高亮度的背光,结合红外热释传感器为洗衣机的操作提供极大的便利。
1控制系统的总体设计
此控制系统由STC89C52、蓝牙串口电路、电机驱动电路、矩阵键盘电路、LCD1602液晶显示模块、红外热释电模块和报警电路组成,系统框图如图1。
图1系统框图在图1中,STC89C52作为微控制器,用于实现控制算法;蓝牙传输模块用于实现无线远距离设定洗衣机的洗衣模式、洗衣时间等;LCD1602用于显示当前工作状态(比如洗涤、脱水和洗涤模式)以及工作时间;由于STC89C52驱动能力有限,只能输出10 mA左右的电流,所以利用电机驱动电路为电机进行电流放大从而驱动电机运行;红外热释模块主要驱动照明设备为工作人员在黑暗条件下操作洗衣机提供方便;报警电路主要用于电机损坏和意外断电等突发情况以及洗涤结束后的提醒。
2主要硬件设计
2.1STC89C52单片机系统
STC89C52系统主要由微控制器(MCU)、时钟电路和复位电路组成。STC89C52完全兼容8051单片机的特点,其主要参数为:时钟频率最高可达80 MHz;内置有5个中断源,分为两个优先级,每个中断源的优先级是可以编程的,4个8位输入/输出口(P0,P1,P2,P3);有一个全双工的串行口,其有4种工作方式,可通过设置SMOD寄存器进行配置;有3个16位的定时器/计数器[2]。由于STC89C52单片机除P0口外内部均嵌有上拉电阻,因此对于P0口在其外部必须接上拉电阻以保证电平的可靠性。其次,其复位电路采用上电给电容充电进而自动复位的方式。此外其串口(P3.1, P3.2)连接蓝牙模块的串口(TXD, RXD),P2口接洗衣机的功能键盘,P0口作为液晶的数据总线,P1.7口作为其报警电路的蜂鸣器控制端。
2.2蓝牙串口电路
蓝牙通信的原理类似于单片机和计算机之间的串口通信,二者之间的通信需要借助串口,其通信示意图如图2[3]。
图2中GND表示单片机和HC-05系统的参考地,TXD是串行发送引脚,RXD是串行接收引脚。HC05和单片机之间通信,为保证电源基准相同,故将单片机的GND与HC-05的GND连接起来。其次为构建通信通道,将单片机的接收引脚与HC05的发送引脚连接起来,作为单片机的接收通道;将图2蓝牙接线示意图单片机的发送引脚和HC-05的接收引脚连接起来,作为单片机的发送通道。HC05蓝牙串口电路原理图如图3。
2.3红外热释模块
红外热释传感器的原理[4]是通过其内部传感器感知人体发射的红外光谱从而产生高电平信号,当人离开传感器的感应区则自动关闭高电平,输出低电平。此外,红外热释传感器微功耗,静态电流只有65 mA。其VCC接电源正极,GND接电源负极,OUT1接1 kΩ的限流电阻后接LED小灯。
2.4电机驱动电路
STC89C52输出的高电压为5 V,低电压为0 V,电流为10~20 mA。然而直流电机的启动电流为200~400 mA,不足以驱动电机运行,故选取L298电机驱动模块以放大电流。直流电机PWM控制系统的主要功能包括:通过控制两个输入引脚的电平信号控制直流电机的正转、反转和急停,且可通过调整电压大小调整电机的转速,能方便地实现电机的智能控制[5],其控制功能见表1。
L298中的 ENA、ENB为使能端口,ENA用来控制左边的电机,ENB用来控制右边的电机;IN1、IN2、IN3、IN4为控制引脚,用来设置三极管的开关状态。通过H桥来控制电机的运行,当使能端为高电平时控制有效;使能端为低电平时,输入端对电机的控制失效[6]。输入端的一个引脚接PWM信号,另一个输入端接低电平时电机正转;当该引脚输入低电平另一个引脚输入PWM信号时,电机朝另一个方向运行。当两个输入端的电平信号相同时, 电机快速停止。引脚以及功能如表2所示。
3软件设计
3.1软件整体结构设计
系统程序分为主程序、定时器中断程序、延时程序、LCD1602液晶显示程序和电机驱动程序等几部分。定时中断0用来控制洗衣进程的时间和电机正反转,通过外部中断0进行相应功能的倒计时,在此期间,如果停止键按下,则终止进程,返回初始界面。延时程序用于LCD1602液晶显示屏的写操作的等待。电机驱动程序用来控制相应控制引脚的高低电平。控制系统流程图如图4。
3.2蓝牙串口程序
在UART通信过程中,采用LSB方式即先发送数据的低位再发送数据的高位,再使TXD为低电平并持续一段时间,直到将8位二进制数字全部发送完毕,与此同时对TI和RI置1。其次,为了手机(上位机)与洗衣机能够正常通信必须设置两者为相同的波特率,因此就需要使用单片机的定时器1,利用公式:波图5蓝牙串口流程图
特率=(2SMOD/32)×(T1的溢出率)[2],设置本系统波特率为9 600 b/s;在使用串口时,当接收到或者发送完数据后,会对标志位进行置1,但是串口中断不会像定时器中断自动地对标志位进行清0,需要软件对标志位进行清0。蓝牙串口接收数据的具体流程如图5所示。
3.3矩阵键盘子程序
矩阵键盘由16个按键组成,由于单片机的引脚有限,故将其设置成4行4列,进行行扫描或列扫描以减少对 IO口的使用。此外,为避免按键按下时出现抖动,因此需要去抖处理。按键扫描如图6所示,按键去抖流程图如图7所示。
3.4LCD1602液晶显示
LCD1602液晶[5]内部带有80 B的显示RAM,用来发送数据,它的结构如图8。
第一行地址是0X00~0X27,第二行是0X40~0X67H,其中第一行0X00H~0X0F是与液晶上第一行16个字符显示位置相对应的,第二行0X40H~0X4F是与第二行16个字符显示位置相对应的。而每行多出来的一部分是为了显示移动字幕[7]。
基本操作时序:
读状态:
输入:RS=L,R/W=H,E=H;
输出:D0~D7 状态字;
读数据:
输入:RS=H,R/W=H,E=H;
输出:无;
写指令:
输入:RS=L,R/W=L,E=H,D0~D7=指令码;
输出:D0~D7数据;
写数据:
输入:RS=H,R/W=L,E=H,D0~D7=数据;
输出:无。
操作1602液晶显示的流程如下:
(1)通过RS信号确定是向LCD写数据还是写命令;
(2)读写模式设置(R/W)为写模式,即将R/W设置为低电平;
(3)将数据或者命令送达数据总线上;
(4)给使能信号端EN一个高电平信号,将数据送入LCD的RAM,完成写操作。
4实验结果与分析
为了进一步验证本文设计的控制系统简便有效,利用Keil编写程序并进行Proteus仿真,仿真结果显示洗衣机运行正常、液晶显示信息正确。根据原理图以及仿真图制作硬件模拟实物,通过Ecilpse编写蓝牙串口Android版软件,在非开阔的环境下对不同距离的通信情况进行测试,通过手机蓝牙串口软件控制全自动洗衣机的运行,观察能够操作洗衣机的极限距离。
调试结果表明,HC-05蓝牙模块的有效通信距离为0~25 m,在此范围内手机与洗衣机通信正常。实验结果如表3所示。该系统能够实现远距离控制洗衣机的运行状态,功耗低,控制时间准确,操作简便,人性化,全自动洗衣机工作状态清晰可见,适合不同年龄层次的用户使用。Proteus仿真结果如图9所示。图9进水模式Proteus仿真结果在Proteus仿真中通过设置串口或者矩阵式键盘来设置洗衣机的工作参数,相比传统洗衣机的独立式按键更加简便、快捷,只需要针对所需要设置的功能设置按键即可。
图9是全自动洗衣机进水状态下的仿真结果。对应的LED显示当前正在进行的状态, 通过带有背光的LCD液晶显示屏显示工作状态以及剩余时间,相比传统的数码管显示更加准确清晰。通过仿真可看出电机的转动状况。红外热释在黑暗的条件下感知到人经过时就会点亮以辅助人的取衣操作。通过Proteus软件仿真以及实际的硬件测试验证得出,本控制系统相比传统全自动洗衣机控制系统,不仅能实现远程控制运行、人体感应取衣操作、操作简单快捷、更加人性化、智能化,而且使用STC89C52作为控制芯片大大降低了运行功耗和加工成本。另外,经过硬件测试,在电机异常的状态下洗衣机能够发出相应的警报并且将存在的问题通过LCD液晶显示出来,极大地降低了维护的难度。
参考文献
[1] 刘晓彤. 基于Proteus的全自动洗衣机控制系统设计[J]. 微计算机信息, 2012: 28(9):146-148.
[2] 温宗周. 孟建华. 单片机原理与接口技术[M].北京:中国电力出版社, 2009.
[3] 赵勇. 嵌入式系统蓝牙模块设计[D]. 北京:北京交通大学,2007.
[4] 徐青山, 李正云. 红外热释电人体感应饮水机智能控制开关:中国,CN201830232[P].2010-10-29.
[5] 刘树中, 孙书膺, 王春平.单片机和液晶显示驱动器串行接口的实现[J]. 微计算机信息, 2007,23(2):49-53.
[6] 彭鸿才.电机原理及拖动[M]. 北京:机械工业出版社, 2007.
[7] NXP. NXP Semiconductors “TJA10 42 Rev. 7-8”[S]. 2012.
相关问答
饮水机的 分类?饮水机的种类繁多,不同的分类各有不同的特点,下面完美就来简单了解一下,以更方便地明确自己应该选择哪种饮水机。1.按外形分类可分为台式和立式(或称落地式...
渠道共享直 饮水机 哪家好,共享直 饮水机 做得最好的有哪几家??[回答]详细伴随着共享经济的快速发展,各种共享项目出现在了人们的身边。什么是共享饮水机据悉,共享饮水机又名为智能饮水机,是区别于桶装水和传统式饮水设...
麻烦在座的大侠有没有人能告诉我:信赖的绿篱机收费低,绿篱...[回答]在IO口上弄个图腾柱输出驱动就可以了,单片机怎么能直接驱动舵机呢,小心烧IO口啊。。对这种饮水机的电路我不太熟悉,如果能拍张背后的电路图发图片...
宿舍功率限制 电热锅不可以用一用就会跳闸,但经过功率变换器...[回答]是用一只双向可控硅来调速,如同可调光的台灯一样。特点是成本低、体积小,很轻。缺点是利用可控硅的导通角来调节电压,输出的不是正弦波电流,会产生...
温控模块工作原理?1.机械式的采用两层热膨胀系数不同金属压在一起,温度改变时,他的弯曲度会发生改变,当弯曲到某个程度时,接通(或断开)回路,使得制冷(或加热)设备工作。...1...
电表跑得快是怎么回事?般我们夏天都是离不开空调的,虽然我们不是时时刻刻都在使用空调,但是一般很多人也都会忘记在不使用空调的时候将空天的插头拔下,如果空调的插头一直插着的话...2...
有谁能回答一下吗:重庆点火器使用方法,点火器适合新手吗??[回答]点火器内部构造损坏,更换点火器;调整点火电至正当距离,并清洁电极。【功能】:速分解饮水机各种垢质,达到迅速溶解各种水垢的目的。【使用方法】:关...
开关报警电路 参考方案:报警电路可由555定时器构成蜂鸣器,或...还是用单片机做吧,单片机做的话这个很简单,与非门在习惯了单片机以后就跟少用了,