基于单片机控制的智能遥控窗帘的设计与实现

2018-11-22 00:47何颖林智慧张星阳
微型电脑应用 2018年11期
关键词:子程序流程图窗帘

何颖, 林智慧, 张星阳

(1.西安思源学院 电子信息工程学院,西安 710038; 2.陕西高速交通工贸有限公司,西安 710003)

0 引言

随着科学技术的发展,人们在满足基本生活的同时,在生活质量家用电器上越来越有更高的目标要求。单片机具有结构简单,功能强大,并且简单、易用,利用单片机来做控制单元可以大幅度提高各模块的协调性,进而提高系统的资源利用性,降低资源浪费,节约成本[1,2]。设计一种基于AT89C51单片机的智能遥控窗帘系统,利用单片机AT89C51的各项功能,不仅简单、方便,还成功地完成了人们所需的众多功能。

1 系统总体结构

系统设计主要运用电动机通过不同方向的电流时会实现不同的转向,从而实现窗帘的开与关,该遥控窗帘系统可以实现对窗帘进行有效的升降,以及加减速升降,而且具备停止功能。窗帘的加减速升降和停止功能需要动力进行控制,采用步进电机提供动力,通过单片机产生的不同频率脉冲对步进电机进行控制,从而对窗帘进行有效的控制。该设计有一个总开关,主要用来防止因为误碰而引起的不必要麻烦,按下电源按钮按,可实现相应的转向。 智能遥控窗帘的总体结构框图,如图1所示。

图1 智能遥控窗帘的总体结构框图

2 系统硬件设计

整个电路主要包含了电源电路、晶振电路、升降可变速电路、开关触发电路以及步进电机电路等电路组成。电源电路为整个电路提供能源,保证电路可以运行;晶振电路主要提供所需的震荡频率;变速电路主要控制步进电机的转速;开关触发电路主要控制步进电机的转与停;步进电机的转动来带动窗帘的升降。

AT89C51是一款低电压,高性能CMOS 8位微处理器,具有4K字节闪烁可编程只读存储器(FPEROM-Falsh可编程和可擦除只读存储器),通常称为微控制器[3]。

电源采用直流5V电池供电,通过USB转接口进行供电,充电宝也可为其供电,目的是为了防止断电时无法升降。

晶振电路主要使用石英晶体振荡器,石英晶体振荡器拥有很好的频率稳定性,石英晶体振荡器的外部干扰被用于产生参考频率[4],在电路中的频率的精度由参考频率来控制,与此同时它还可以发出震荡电流,由时钟信号传到微控制器[5]。

复位电路。初始化功能,89C51的RST引脚(复位引脚)提供超过24个时钟震荡周期的高电平就可令其复位。复位程序执行完以后其初始化地址变为0000H,就从0000H这个地址开始运行[6,7]。

升降可变速电路。设计的变速划分为6个等级,单位步时间设置为25 ms,其中有0.25转每秒、0.5转每秒、1转每秒、1.25转每秒、2.5转每秒、5转每秒这6个速度等级,可根据自己的需求选择相应的升降速度;控制升降是通过改变电平的高低来控制的,低电平是正向转,高电平是反向转。

开关触发电路。当选择好升降和速度后,就可以通过这个开关来触发升降的进行,先把需要调节的方式选择好,然后再通电去执行相应的操作,可以有效的避免因一直通电而突然改变方向或者速度而影响电路的稳定性,同时也可以避免因为接触不良而造成的电路损伤[8]。

通过步进电机的转动来带动窗帘的升降,实现智能化的家居,使用 ULN2003步进电机每次步进的角度为1.2°,遥控窗帘升降所需的距离通过角速度转动精度为1.2度,通过单片机输出不同频率,不同数量的脉冲来控制步进电机的速度和转动圈数,从而得到升降窗帘的效果。当系统上电以后首先开始复位,通过左边的按钮设置来对步进电机进行调节,正转与反转,同时对应10个不同的速度等级,由数码管将其显示出来。系统总体电路图,如图2所示。

图2 系统总体电路图

3 系统软件设计

3.1 主程序设计

主程序首先通过“while(1) { }”语句来构成无限循环,主要完成单片机初始化,关中断,相应接口置高或者低电平,进入循环以后进行调速,正反转等程序的运行,让电机按照所需要的要求运行。主程序的流程图,如图3所示。

3.2 步进电机子程序

通过对用户所需要的转向进行判断,即对窗帘的升降进行判断,按照所需要的功能传送相对应的脉冲到控制器,来控制电机的运转,当所需要的功能指令传送完毕以后,结束本周期运行指令,复位等待下一次指令。步进电机的运转流程图,如图4所示。

3.3 步进电机的显示子程序

当显示子程序开始执行以后,初始地址60H被发送到 R0,作为显示代码的01H则被发送到R2,然后将位代码发送给处理器的A口。单片机获取到显示数据以后根据查表转换成显示代码以后再发送给处理器的B口,同时往后推迟2 ms,指针R0加1,用来确认在屏显上是否成功显示了6。如果这些指令都成功的操作完了那就执行返回操作,反之则将位代码R2往左移动一个位,直到6位显示通过完成再返回。显示子程序流程图,如图5所示。

图3 主程序流程图

图4 步进电机工作流程

图5 显示子程序流程图

3.4 步进电机的键盘子程序

开关按压下去的过程会产生相应的抖动,这个过程一般持续时间为5-10 ms,抖动的过程中会有一个稳定的闭合状态,过程结束后会恢复到断开状态,从而达到控制电路的开与断。软件消除抖动是采用了延时程序来解决的,当第一次检测到开关闭合后,立刻执行延时程序,通过延时10 ms判断该按键是否仍然闭合,如果检测到闭合,则确定这次为真正的闭合,对电路会产生影响,这样,就解决了因为按键抖动对电路造成的影响。

4 智能遥控窗帘的综合调试

当系统的软件和硬件设计完成后,将设计好的软件刻录进单片机中,检测软硬件是否兼容,是否能够按照预期的目的进行运行,检测系统的稳定性和效率。通过改善程序的结构以及排查相应的bug就可以测试运行了,可以成功的实现电机的加减速、停止等功能,从而可以对窗帘进行有效地升降控制。实物效果图,如图6所示。

5 总结

系统基于AT89C51单片机作为基本的控制单元,利用I/O口的特殊性质,采用时序方波经过ULN2003来驱动步进电机,从而智能的控制窗帘的升降。硬件设计主要包括单片机最小系统、键盘控制模块、步进电机驱动模块、数码显示模块等,软件设计主要通过编写程序代码,实现对整个系统的控制。在系统上电复位后程序自动运行,通过接受外部的键盘操作修改系统参数值,控制步进电机的启停,以及转速的增减和转动方向的改变,定时器根据系统参数控制步进电机的转动,实现步进电机转动速度的动态显示。通过对步进电机的控制来实现窗帘的升降,通过实验验证,该系统稳定性高,操作简单,方便实用。

图6 实物效果图

猜你喜欢
子程序流程图窗帘
赶路人
巧做窗帘
相思湖
浅谈子程序在数控车编程中的应用
窗帘
子程序在数控车加工槽中的应用探索
宁海县村级权力清单36条
西门子840D系统JOG模式下PLC调用并执行NC程序
《天津医药》稿件处理流程图
《天津医药》稿件处理流程图