自动窗帘控制系统设计
扫描二维码
随时随地手机看文章
1 系统总体设计与工作原理
本系统由单片机、红外接收、光敏测光、电机驱动、数码管显示以及鸣响提示模块组成。主要应用模块的选择包括电动机驱动模块的、PWM调速方式、PWM调脉宽方式、PWM软件实现方式的选择。其中,电机驱动模块的选择采用由达林顿管组成的H型PWM电路;PWM调速工作方式采用单极性工作制;PWM调脉宽方式选择采用定频调宽方式;PWM软件实现方式采用软件延时方式。智能窗帘设计所需的关键芯片及器件有:单片机AT89S52、直流电动机、三相稳压器78L05、储存芯片CAT24WC02以及光耦4N25。系统总体框图如图1所示。
该窗帘控制系统采用AT89S52单片机的最小系统设计,可以实现使用红外遥控器进行远程手动开、手动关和手动停控制,数码管显示窗帘的开、关,可以通过自行设定相应的数字表示;也可以按事先输入的开启时间和关闭时间进行时间控制,数码管显示当时的小时和分钟时间,但只能顺序显示,显示一遍后,略等片刻,再显示下一遍时间;还可以根据室外环境亮度实现光控,即窗帘的自动控制,由驱动数码管显示出当时的状态。红外窗帘遥控控制器通电默认当时时间是8点钟。在3种工作方式下,数码管均按时分法显示时间、工作方式和工作状态。每一组数据由5个数字组成,前4个数字顺序显示时十位、时个位、分十位、分个位,第5个数字包含工作方式和工作状态:显示“一”(1横)表示手动方式;“二”(2横)表示半手动方式;“三”(3横)表示光控方式;不显示横则表示时控方式。左上角的“竖”点亮表示电机工作时发出鸣响提示,不点亮表示电机工作无提示;右上角的“竖”点亮表示整点报时开启,不点亮表示无整点报时。左下角“竖”点亮表示窗帘正在打开,右下角“竖”点亮表示窗帘正在关闭。
2 硬件电路设计
该窗帘控制系统电路分为8个部分:电源、显示、光控电路测光、电机控制执行、红外接收、鸣响提示、数据存储、单片机主控器件。其中,电源部分通过外接插座输入交流12 V或者直流13 V~14 V电压供电,经过三端集成稳压器稳压后输出5 V电压,为鸣响电路、红外接收电路、显示电路提供电源。使用2节5号普通电池提供直流电源。
2.1 光采集电路设计
测光电路如图2所示,由GM1、C3、V3组成。GM1采用光敏二极管[1],C3和GM1组成RC充放电回路。当P3.4处于高电平时,P3.4的高电压通过GM1的正向电阻向C3充电;当P3.4被单片机拉低为低电平时,C3通过光敏元件放电。光敏二极管工作在反向电压状态下,此时环境亮度决定了光敏二极管的光阻值,光阻值大,C3放电速度慢,反之放电速度快。适当控制P3.4的拉低脉冲宽度,使得C3放电工作在线性比较好的工作段上。P3.5用来检测C3在P3.4拉成低电平期间的放电电压状态,当C3电压降到小于1/2VCC后,P3.5测得数据“0”,反之测得数据“1”。为了减小P3.5对C3充放电的影响,C3充放电电压通过三极管V3组成的射极输出器连接到P3.5上,射极输出器的高输入阻抗减小了P3.5对RC充放电电路的影响。
2.2 红外接收电路及数据存储部分设计
红外接收电路使用型号为HS3008的集成型红外接收器,静态时输出端输出高电平,当接收到红外信号后,按红外信号的数据波形输出负脉冲数据信号,红外信号输出到单片机的P3.2口,该口对应的第二功能是外部中断0(INT0),利用该功能,一旦红外信号到来,P3.2被拉成低电平,使单片机中止当前的工作并转到接收及处理红外信号。开启中断功能的目的是:既减轻了单片机的工作负担,又保证接收到的红外信号的完整性,同时在手动工作状态下,单片机进入睡眠后,利用外部中断功能完成对单片机的唤醒。单片机的P3.3和P3.7口作为I2C存储器的总线,本电路中使用AT24C02完成对设置状态和设置数据的储存。红外接收电路和数据存储电路[2]如图3所示。
2.3 窗帘框架构造设计
窗帘框架构造设计包括窗帘微动开关连接电路设计和窗帘架的制作与设计。本设计中的微动开关通过电容、电阻组成的复位电路与单片机的复位引脚相连,微动开关安装在窗帘滑杆上,当窗帘移动到预定位置时,触动微动开关,使单片机复位,此时电机停转,窗帘停到指定位置。窗帘架的制作方法如下:先加工两只滑轮作为主动轮和从动轮,轮子类似皮带轮,底径约为25 mm,槽宽和槽深约为4 mm;1根晒衣绳,直径约为4 mm;在主动轮的槽底用胶水粘一圈薄胶皮以增加摩擦力;将主动轮固定在电动机轴上,而将电动机固定在窗帘盒的一端,将从动轮固定在窗帘盒的另一端,固定时最好调节装置,用以绷紧拉绳。窗帘杆选用19 mm的不锈钢管,采用2根杆其目的在于左右窗帘能重合。拉绳的接头处与左右窗帘的第一环连接,并固定一铁片用来触动微动开关[3]。窗帘架的构成及窗帘的布置如图4所示。
3 系统软件设计
本系统中单片机微处理器的主要任务是完成对HS3008接收到的红外信号的控制与处理,从而完成对相应控制单元的控制。主程序首先完成初始化,然后启动HS3008等待接收控制指令,进行相应的输出操作[4]。系统流程图如图5所示。
单片机对接收到的红外信号控制指令通过P3.2口来完成,其对应第二功能时为外部中断0(INT0),通过接收到不同的红外信号脉冲实现相应的操作。程序中重要的子程序有:串口初始化、串口接收中断以及红外信号处理子程序等。当串口设置完毕、程序初始化后,程序对P3.2口进行实时检测,一旦检测到有低脉冲到来,则进行解码后,提取相应的子程序以实现对电机的控制。当接收到手动控制信号时,则直接对电机进行控制,实现窗帘的拉开、关闭或停止;当接收到半自动控制信号时,操作者只需按下拉开或关闭按钮来程序执行,从而实现窗帘拉开或关闭。对于电机如何停止的问题,本设计在窗帘滑杆上安装了微动开关,一旦窗帘拉动到指定位置就会触碰微动开关,从而送给单片机一个低脉冲,单片机在接收到低脉冲后,则认为窗帘已完全拉开或关闭,调用程序实现电机的停止转动;当接收到光控信号时,单片机调用相应的程序,驱动光敏二极管检测环境亮度,根据检测结果,实现窗帘的拉开或关闭。电机的停止也如同半自动控制,如此实现窗帘的自动控制。
电机的工作状态还可通过数码管显示出来,程序的编写很简单,通过不同的数字表示相应工作状态。与此同时,还可以通过鸣响提示电路提示电机正在工作,以避免多次按下按钮使单片机进行误操作,造成死机。
基于单片机的智能遥控窗帘的设计,在实时性要求较低的测控与采集系统的应用中具有很好的发展前景和应用价值。在国内外,自动调光窗帘成为人们家居生活的首选布置。本文介绍的自动调光窗帘利用红外遥控实现了其控制功能,在设计过程中遇到了一些典型的问题,但采取了相应的措施:
(1)电机驱动问题。电机的驱动电压为5 V,但是经过三极管的降压后,电机驱动能力明显下降,为了增大电机驱动能力,在控制部分与电机执行部分加了4N25光耦隔离,将两部分隔离开来,外接12 V电压,以增大电机的驱动能力。(2)电机停机问题。单独靠程序来实现电机的停机,对时间控制的要求非常高,且不易实现。如果通过继电器来实现停机也可以,但由于继电器响应时间慢、机械结构易损坏、寿命较短、可靠性不高,故采用了微动开关,通过送单片机低脉冲来实现电机停机,实时性也很好[5]。
参考文献
[1] 何希才,薛永毅.传感器及其应用实例[M].北京:机械工业出版社,2004.
[2] 瞿贵荣.电动窗帘红外遥控电路[J].家庭电子,2005(2):2-3.
[3] 郭成林.智能遥控窗帘系统设计[J].山西电子技术,2006(6):32-33.
[4] 胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,1996.
[5] 吴爱萍,黄振兴.基于AT89S52的智能窗帘群控系统[J].科技资讯,2007,25(2).