APP下载

基于单片机的自动光控窗帘设计与实现

2018-07-03

关键词:手动窗帘端口

纪 萍

(河海大学文天学院电气信息工程系,安徽马鞍山243000)

随着高新技术及电子器件的发展,人们的生活环境得到极大改善,智能家居得以实现。智能窗帘是智能家居的一部分,目前关于智能窗帘的研究有基于视觉手势,有基于红外遥控等多种设计[1-2],好多研究仅停留在方案设计,或者设计繁琐成本高,或者缺乏人性化考虑等。本文提出一种基于单片机控制的自动窗帘系统,既能解决每天手拉窗帘的不便,又显示出了生活的便捷和档次,还可以根据光线的明暗来自动控制窗帘的开关以调节室内光线。本设计为一款基于AT89C52单片机控制的光控窗帘,该系统的硬件部分主要利用光敏传感器产生的信号作为单片机输入信号来控制电机;软件部分采用C语言进行编程。考虑到用户习惯和天气原因,本方案还设置了选择开关,用户在使用窗帘时可任意选择自动或手动控制方式。该系统具有设计人性化、经济实用、可靠性高的特点。

1 总体设计方案

本设计实现如框图1所示,AT89C52单片机是核心控制器件。采用光敏电阻作为光线采集器,光敏电阻采集到光电信号后经传感器PCF8591转换为数字信号,单片机读入数字信号送至电机驱动芯片ULN2003,驱动28BYJ48型步进电机进行正反转,从而实现光控功能[3-6]。28BYJ48型步进电机是四相八拍电机,电压为DC5 V~DC12 V,当对步进电机按一定顺序施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号使得步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度。当通电状态的改变完成一个循环时,转子转过一个齿距。

图1 设计实现框图

本论文运用光控原理,当光照强度大于130 lx时窗帘将自动打开;当光照强度小于50 lx时,窗帘将自动关闭;当光照强度在50 lx到130 lx之间,窗帘状态保持不变。

2 主要硬件设计

2.1 单片机系统

AT89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8 k在系统可编程Flash存储器。AT89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供了高灵活、超有效的解决方案。最小系统带有时钟电路、单片机、复位电路、输入/输出设备等[7-9]。单片机系统结构如图2所示。

图2 AT89C52结构框图

2.2 光电传感器信号采集模块

光电传感器用于采集光信号,芯片采用PCF8591,它是集成了光敏电阻的一种芯片,光敏电阻采集到光强信号后,PCF8591进行A/D转换输出数字信号。模块芯片采用PCF8591集成模块,它带电源指示灯,对模块供电后指示灯会亮,这样在调试时便于观看短路情况。模块带DA输出指示灯,当模块DA输出接口电压达到一定值,会点亮面板。光电传感器信号采集模块电路如图3中的“光电采集模块”所示。

图3 整体电路设计

2.3 电机驱动电路

ULN2003是高压、大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。ULN2003体积小,直接焊接在单片机40引脚附近,和单片机的电源连在一起,减少了电源线的连接。在硬件设计时,驱动芯片的in1与单片机的p0.0端口连接,in2与p0.1连接,in3与p0.2连接,in4与p0.3连接。同样根据电机的位置,直接插导连接出来,放置开关。电机部分直接用一个直插座和驱动来接就可以了,设计电路如图3中的“电机驱动电路”所示。

天亮时,光敏传感器接收到高电平,依程序所设步进电机正转,顺时针转动,窗帘以某一速度被慢慢拉开,走到极限位置时,窗帘碰到右端的行程开关SW3,开关闭合使能端关闭,电机停止转动。反之,光敏传感器采到的AD值,触发输出低电平,电机逆时针转动,窗帘打开。

2.4 时钟电路设计

时钟电路由两个陶瓷电容C2、C3和石英晶振组成,C1和C2大小为30 pF,石英晶振选用12 M晶振。两个电容C1和C2并联,然后与石英晶振进行串联,时钟电路的两个端口X1,X2分别和单片机的XTAL1,XTAL2引脚相连,内部振荡器便能产生自激振荡。另外检测晶振是否起到振荡效果,可以使用示波器看到XTAL2输出的正弦波,也可以使用万用表测量,要把档位调到直流档,在测量的时候就会发现,不稳定的电压在2 V左右。电路如图3中的“时钟电路”所示。

2.5 手动复位按钮电路连接

当人用手按下按钮时,电源的+5 V电平就会直接接送到RST端。由于人动手能力比较缓慢会使按钮保持接通长达数十毫秒,人眼具有视觉暂留效应,所以,复位电路完全可以使用手动复位,满足复位所需要的时间要求。复位电路如图3中“手动复位按键电路”所示。复位电路的S1口与单片机的RST端口相连,RST端口具有复位功能,当单片机上电后,在该引脚上就会出现两个机器周期(24个震荡周期)宽度以上的高电平,使单片机复位。因此复位电路与单片机的RST端口相连。

2.6 正反转按钮电路设计

由于外界天气以及平时开闭窗帘的需要,本设计增加了两个手动按钮来控制窗帘的正反转,这样设计达到了人性化的要求。当白天需要关闭窗帘时,只需按下反转按钮,窗帘就会自动关闭;反之窗帘就会自动打开。按钮的p2.0与p2.1分别与单片机的特殊接口p3.2和p3.3相连接,这两个I/O口的第二功能分别为单片机的外部中断INT0端口和外部中断INT1端口,这样就可以实现手动功能。按钮的电路如图3“正反转按键电路”所示。

3 软件设计

单片机编程语言主要为汇编和C语言。C语言编程软件带有比较完善的库函数,具有速度快、效率高、可移植、直接对硬件控制等诸多优点,因此,本设计采用C语言来实现。软件由主程序、显示子程序、延时子程序、按键扫描程序组成,如图4所示。初始化部分包括1602显示屏的初始化和控制步进电机I/O口的初始化;采集与显示部分实现在1602显示屏上要显示采集到的光敏电阻的电压值并转换为亮度显示;中断部分主要体现在按键功能的实现,按键部分用到了中断机制以确保按键的实时性。用到了两个按键,一个手动控制窗帘拉开,另一个手动控制窗帘关上;电机控制部分,根据环境的亮度智能控制窗帘开关。

图4 程序主函数流程图

4 实物展示与结果

经过前面对各个模块的设计,已经完成了每个模块的连接,经过调试基本实现了智能光控的功能,下面进行电路板的焊接,如图5所示。

图5 实物图

总之,自动光控窗帘实现了根据外面光线的强弱自动开关的功能。考虑到个人生活习惯不一样,进行了人性化设计,加上了手动开关,在实现自动开关的同时,保留了原始窗帘的功能。该设计整体结构简单,元器件价格低廉,降低了产品的设计成本,经济可靠,控制灵活,具有一定的市场应用前景。

[1]孙利新,王阿川,张亨.基于视觉手势识别技术的智能窗帘研究[J].微型机与应用,2012(20):48-53.

[2]庄渊昭.实用智能窗帘机的设计[J].现代电子技术,2008(267):181-183.

[3]谭浩强.C程序设计[M].4版.北京:清华大学出版社,2010.

[4]林涛,林著.模拟电子技术基础[M].北京:高等教育出版社,2014.

[5]王兆安,刘进军.电力电子技术[M].北京:机械工业出版社,2009.

[6]周杏鹏.传感器与检测技术[M].北京:清华大学出版社,2010.

[7]朱云芳,江桦,翟旭.PROTEL99SE电路设计与制板[M].北京:机械工业出版社,2007.

[8]刘建清.轻松玩转51单片机C语言[M].北京:北京航空航天大学出版社,2011.

[9]赵全利.单片机原理及应用教程[M].北京:北京器械出版社,2013.

猜你喜欢

手动窗帘端口
风儿撩起了窗帘
一种有源二端口网络参数计算方法
一种端口故障的解决方案
多按键情况下,单片机端口不足的解决方法
赶路人
现有网络架构及迁移方案
7招教你手动设置参数
相思湖
风行S5001.6L手动尊享型
宝骏5601.8L手动豪华型