基于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.
基于STC89C52微控制器的非接触测量装置
摘 要 :柔性物体易于变形,当采用传统的游标卡尺、千分尺测量其外形尺寸时,不仅效率低,而且重复性和稳定性差。基于激光位移检测与光电传感技术,提出了一种用于柔性物体的非接触测量方法。以STC89C52微控制器为核心并利用激光传感器和精密丝杆导轨系统设计了测量装置,根据被测物体遮挡光跳变间隔内丝杆移动的距离确定物体的宽度或外径。一系列柔性物体的测量实验结果表明,实际测量精度可达0.1 mm。这种方法也可用于高温物体的外形尺寸测量。
0 引言
现代工业产品的生产效率越来越高,测量技术也要求高效、准确和无损伤。对于柔性物体的外形尺寸测量,由于其易变形的特性,使得利用游标卡尺、千分尺等传统的测量方式不仅效率低,而且一致性和稳定性差,还有可能对物体表面造成损伤,因此,非接触测量得到了广泛应用,如测量线径[1]、物体厚度[2]、位移[3]以及限界检测[4]等。目前非接触测量仪大多采用电荷耦合器件(Charged Couple Device,CCD)技术,通过对物体各个方向的成像,构建出物体轮廓,由计算机计算出外形尺寸[5-8]。这种方法的图像数据处理过程较复杂,对计算机性能要求较高,数据量大,价格偏高。
激光具有亮度高、单色性和方向性好的特性,激光测距装置常常被用于光电跟踪系统[9]。本文基于非接触测量方法,利用激光传感器和精密丝杆导轨系统,设计了一种测量柔性物体尺寸的装置,具有结构简单、便于加工制作、适合现场操作、测量数据便捷、显示信息直观、价格低廉等优点。这种方法同样适合高温物体外形尺寸的测量,并可以推广到柔性物体产品生产线的在线测量。
1 测量装置的结构
如图1所示,非接触测量装置由激光传感器、精密丝杆导轨系统、测控系统组成。
精密丝杆导轨系统包括一根螺距为4 mm的精密丝杆和一个移动滑台。导轨的一侧固定载物台,由透明玻璃作为放置被测物体的平台。激光传感器固定在移动滑台上,随丝杆旋转前后运动,通过放置在载物台上的物体。该激光传感器具有灵敏度可调功能,从而适应不同通透性物体。在被测柔性物体的边沿处,激光传感器输出信号发生跳变,根据信号电平两次跳变之间丝杆运动的距离,便可确定被测物体的实际外径或宽度。
2 测量装置的测控系统
非接触测量装置测控系统如图2所示,由单片机最小系统、电源系统、开关、USB接口电路、LED数码管显示器等组成。测控系统的核心是STC公司的STC89C52微控制器,具有8 KB Flash存储器,256 B RAM,32位 I/O口线。
电源系统为单片机最小系统提供5 V直流电压,并为激光传感器、伺服电机和伺服电机驱动器提供24 V直流电压。微控制器通过USB接口与PC相连,用于将程序烧录到单片机中。测量值由4位LED数码管显示,其段选和位选信号分别由单片机的P0口和P2口产生,采用动态扫描显示方式。
丝杆通过杰美康57J1880EC-1000-50系列直流混合式伺服电机带动,步距角为1.8°,额定电流为4.0 A。伺服电机由杰美康2HSS57-10000混合式步进伺服驱动器(闭环)控制,驱动器使能信号ENA-和方向信号DIR-分别与单片机P1.0和P1.1相连,PLS-与单片机P1.2端口相连,接受来自STC89C52单片机的脉冲指令。ENA+、DIR+、PLS+引脚接5 V电源。该驱动器具有8种细分模式,工作电流为0~6 A,工作电压为24~80 V,具有全闭环、低发热、平滑精确的特点。
3 软件设计思路
单片机通过定时器0中断输出脉冲信号,控制伺服电机转动。每输出800个脉冲(定时器中断1 600次)电机转一圈,通过记录定时器中断次数便可计算出转动前进的距离。定时器1用于定时扫描数码管显示。外部中断INT0和INT1接光电开关信号。按下按键K,单片机开始输出脉冲,当光电开关被挡住时,INT0触发,开始记录脉冲的个数。当物体移出光电开关时(没有遮挡),INT1触发。记录从INT0触发到INT1触发之间定时器0中断的次数N,则电机转动的距离为L=(N/1 600)×4 mm。
丝杆运动的快慢由控制电路中开关K1或K2决定,开关K1控制的速度是K2的两倍,可以观察和比较不同丝杆速度对测量结果的影响。
4 测量实验
选取不同柔性物体分别进行测量实验,在此仅给出部分结果。先用游标卡尺对每种物体进行10次测量,取其平均值作为1次的测量值,可看作是一个“标称值”,然后在不同丝杆运动速度下,用测量装置分别测量10次,得到物体的测量尺寸。
餐巾纸宽度测量的实验数据如图3所示。由于受外力产生形变,游标卡尺测量的尺寸波动较大,从图中可以看出,数值波动大于0.5 mm。而测量装置测量的尺寸波动明显减小,其中丝杆低速运动(K2按下)时测量数据集中于28.7~28.8 mm之间,重复性明显优于用游标卡尺和丝杆高速运动(K1按下)时测量的值。
测量铅笔盒宽度的实验数据如图4所示。由于坚硬物体测量时的受力变形几乎可以忽略不计,此时可以认为游标卡尺测量的结果非常准确,而此时测量装置的测量精度不如手工测量,丝杆低速运动(K2按下)时的测量误差为±0.1 mm,丝杆高速运动(K1按下)时测量效果略差一些。
为了提高测量精度,调整激光传感器输出灵敏度和传感器输出电路比较门限,再次测量两种不同物体的外形尺寸,测量结果如图5所示。其中,纸片宽度的标称值为10.00 mm,游标卡尺的测量值为10.12 mm,用测量装置测量的数值在9.98~10.10 mm之间,测量最大偏差为±0.1 mm,误差为1.0%。U盘宽度的标称值为17.30 mm,用游标卡尺测量的值为17.27 mm,用测量装置测量的数值在17.26~17.32 mm之间波动,测量最大偏差为±0.04 mm,误差为2.3‰。可以看出,上述测量结果较稳定,且多次测量值与“标称值”非常接近。
5 测量误差分析
5.1 丝杆误差
滚珠丝杆副与滚珠之间的间隙会带来测量误差,使得单片机根据两次中断之间的间隔和丝杆的螺距计算出的距离并不等于丝杆移动的实际距离,影响多次测量时的一致性。丝杆导轨系统的位置控制误差的理论值为±0.02 mm,这也是导致数据波动的主要原因之一。为了减小误差,可以选择更高精度的丝杆导轨系统。
5.2 测量响应误差
从激光传感器输出信号跳变到单片机中断响应的延迟带来的误差,导致计数器启动和停止滞后[10],表现为电机转速越快,测量数据的误差越大。为了减小误差,应优化中断服务程序的代码,缩短中断响应时间,同时电机转动不能太快。
5.3 传感器感应误差
受聚焦性能的影响,任何激光线束都有一定的宽度,当物体的边缘部分遮挡或露出光线时,激光传感器输出信号就可能发生跳变,特别是物体边缘不平整时,这取决于传感器输出灵敏度和信号比较电路的门限设置。不同通透性的物体,传感器感光灵敏度不同,因此,需要进行匹配与标定[11-12],在硬件和软件两方面进行修正。为了避免现场干扰引起的丢光现象,可以采用断光续接补偿措施[13],消除测量中断问题。
6 结论
本文基于伺服电机测距原理设计了柔性物体非接触测量装置,利用激光传感器、伺服电机与精密丝杆导轨系统,研制了基于STC89C52单片机的测控系统。通过对不同物体进行多次测量实验,证明了该方法的可行性。
(1)利用激光传感器将被检测物体边缘转化成高低电平信号,由单片机的外部中断模块捕捉柔性物体边缘信号,测量柔性物体外形尺寸,重复精度可达0.1 mm。
(2)利用单片机的实时中断产生伺服电机的控制脉冲,实现伺服电机转速和位置的精确控制,理论控制精度可达±0.02 mm。
(3)对于不同通透性的物体,测量灵敏度需要进行匹配与标定。选用更高精度的丝杆导轨系统,减小激光传感器接收器的透光缝隙,优化中断服务程序的代码,测量精度有望进一步提高。
与现有的游标卡尺人工测量相比,本文设计的非接触测量装置结构简便、使用方便、价格低廉,可满足常规的柔性物体外形尺寸的测量,该原理可进一步推广至高温物体的外形尺寸测量。
参考文献
[1] 李慧鹏,王军,张军,等.一种新型非接触式线径测量系统[J].仪器仪表学报(增刊),2004,25(4):209-211.
[2] 刘江,汪涛,唐清清,等.激光三角法厚度测量仪的设计与研究[J].微型机与应用,2014,33(10):16-19.
[3] 周剑,赵宏,田丰,等.测量刚体位移的非接触式光电系统[J].光电工程,1997,24(6):60-66.
[4] 何帅,高晓蓉,王黎,等.激光限界检测系统的设计与实现[J].微型机与应用,2010,29(2):89-92.
[5] 张爱雪,孟樱.基于ARM和FPGA的线阵CCD测径系统的设计[J].电子技术应用,2011,37(2):82-84,87.
[6] 钱思明.动态线材直径测量仪[J].仪表技术与传感器,2007(9):17-19.
[7] 苗世迪,乔佩利.基于线阵CCD的精确测量方法研究[J].哈尔滨理工大学学报,2006,11(2):103-105.
[8] 陈重,滕勤.基于CIS图像传感器的数字式求积仪设计[J].微型机与应用,2014,33(4):41-44.
[9] RAVI G. Novel back-illuminated CCD enhances low-light-level detection[J]. Laser Focus World, 2010,46(4):63-66.
[10] 耿春萍,程度,张治.激光脉冲测距的测距精度及误差分析[J].光电技术应用,2007,22(2):28-31.
[11] 卢科青,王文,陈子辰.点激光测头激光束方向标定[J].光学精密工程,2010,18(4):880-886.
[12] 周会成,曾理湛,陈吉红,等.点光源测头光束方向的标定[J].仪器仪表学报,2004,25(3):388-391.
[13] 章文娟,王中宇,周维虎,等.基于DSP的激光跟踪仪数据通信及处理模块设计[J].微型机与应用,2011,30(17):54-56.
相关问答
单片机 是 stc89c52 ,现在想通过串口(TXD、RXD、GND)来烧录程序...用max232如图,软件就用STC-ISP。max232芯片104的电容一个9针串口(母头的)即可具体电路可参考stc89c52的pdf文件CH340T芯片不会烧的,因为它与单片机并不直接....
52单片机 能驱动伺服电机吗?可以。52单片机(指的是STC89C52单片机)本身并不具备直接驱动伺服电机的能力。伺服电机通常需要使用PWM(脉宽调制)信号来控制其位置和速度。而STC89C52单片机...
选择 STC89C52单片机的 原因?以下是选择STC89C52单片机的原因:高性价比。STC89C52的价格相对较低,适合于对成本要求较高的应用。高可靠性。STC89C52采用CMOS工艺,使得在工作中不易产生电...
想让 STC89C52 RC 单片机 运行都需要哪些辅助电路?任何51系列的单片机,要运行起来需要注意以下几点:1、晶振电路:包括晶振及相应电容2、EA管脚接法:对STC89C52RC而言,EA脚应接高,这样才能访问其内部的程序...
什么是 52单片机 ?52单片机是一种基于Intel8051架构的单片机,也称为STC单片机。它是由中国的STC公司生产的一种低成本、高性能、易于学习和使用的单片机。52单片机具有较高的性...
stc89c52单片机 ,在keil里头建立工程时选择厂商名字是什么?我...用AT89S52就行如果用C语言那头文件就加载reg52.h对于STC新增加的一些特殊功能寄存器在使用时可以自己定义一楼二楼的都可以使用也可以使用wind公司的单片...
stc89c52单片机 api函数?stc89c52是一款常用的8051系列单片机,具有广泛的应用领域。下面按照步骤逐一介绍相关api函数:1.i/o口控制函数:stc89c52具有多个i/o口,可以通过设置相应的...
STC89C52单片机 如何在线调试,初次接触,不太理解?如果单片机与外部的联络通信也要用单片机的串口,就不能将串口与STC-ISP固定连接了,只能下载一次程序,再重新接线实验一次效果了,否则,如果单片机的串口端能...
STC89C52单片机 xdata存储数据使用问题?不要一上电就马上写eeprom,延时一会在写(读)看看。stc单片机在电压低的时候写进去的数据是不对的。进入主程序之前先延时几百毫秒。不要一上电就马上写eeprom...
单片机STC89C52 各个字母数字代表什么意思?STC:厂家型号简称,代表深圳宏晶科技的单片机。89C52:基于CMOS工艺89系列的51单片机。其中5代表类51内核,2代表片内8kB(0x2000)的Flash。STC:厂家型号简称,代...