APP下载

基于单片机智能窗帘控制系统设计

2018-01-04解启松聂志刚

电脑知识与技术 2018年30期
关键词:窗帘自动控制单片机

解启松 聂志刚

摘要:该文阐述了自动光控起闭窗帘的整个设计流程,具体描述了在整个制作过程中硬件电路的设计以及它们实现的功能和软件语言的驱动。这套系统可分为电子自动控制和机械传动两部分,前者使用STC89C52单片机为核CPU,集多种传感器于一体从而实现监测控制;后者计划设计在窗户上安装步进电机,从而实现窗帘在不同光照条件下的打开和关闭,包括在某些特殊情况下通过手动或遥控使得窗帘开启或关闭。

关键词:自动控制;光控;单片机;窗帘

中图分类号:TP273.5 文献标识码:A 文章编号:1009-3044(2018)30-0190-03

Abstract: This paper describes the whole design process of automatic light control curtain, and describes the design of hardware circuit and the function and the driving of software language. The system is divided into two parts: the electronic automatic control part and the mechanical drive part. The electronic control part USES STC89C52 microcontroller as the core CPU, and integrates various sensors to realize monitoring and control. The mechanical drive part is designed to install a stepping motor on the Windows to precisely control the opening of Windows and curtains.

Through this design, the curtain is opened and closed under different light, as well as manual or remote control of the curtain in special circumstances.

Key words: automatic control; optically controlled; single chip microcomputer; the curtain

1 背景

进入二十一世纪后,随着各类科技的不断发展,理论知识与生活实际的结合越来越密切,人们的生活水平不断提高,与此同时,应用越来越广泛的科技智能化也使得人们的隐私安全受到了很大的侵犯,所以人们对自身隐私的安全与否也愈加重视,而作为家庭住所中必备的窗帘,它对保护居民隐私与遮挡外部光线十分有用。现在市面上大部分的傳统窗帘都需要手动开关,这样不仅吃力,而且还有可能错过最佳光照时间,所以窗帘的智能控制就显得十分重要且有效了。

2 设计方案和内容

该设计主要是实现光控窗帘系统,其中包括光控、定时和手动三种功能。因此需用借助各种接口和MCU连接这些控制元。应用AT89C52系列单片机设计系统,安装ADC0832芯片、VS1838b、ULN2003芯片等,控制窗帘在不同光照下的打开或是关闭。按键扫描模块、红外遥控模块、光敏电阻、步进电机、AT89C52共同构成此次的设计系统。应用光敏电阻采集模拟信号通过模数转换A/D电路将其转换成数字信息,并以此来操控步进电机顺时针旋转或是逆时针旋转来模拟窗帘的起闭。

自动光控起闭窗帘运用的是光控的原理来完成的,当外部的光线强度到达系统内部预设值上限时,窗帘被打开;当外部的光线强度到达系统内部预设值下限时,窗帘被关闭。基于以上工作原理,设计系统的实现不仅成本低,而且还方便快捷,实现的结原理图如图1:

除此之外,窗帘的自动起闭还可以通过时间来预先设置或是直接通过按键来启动关闭窗帘。该系统优点较多,结构较单一,系统稳定,不易受外部环境的干扰。

3 系统硬件部分设计

3.1 主程序模块

该系统采用AT89C52单片机晶振电路,所谓的石英晶体振荡器即是单片机电路中的晶振。晶振通常是一个电容和电阻并联之后再串联上一个电容,存在两个谐振点,谐振串联在一起是低频率的;谐振并联在一起是高频率的。晶体振荡器可以给单片机提供脉冲信号,也即单片机的工作速度。晶体振荡器会和单片机引脚中的X1、X2引脚相连接,此时这个电路会引生谐波,而谐波的存在会使得振荡器的稳定性受到影响。为了解决这个问题,我们在晶振引脚处接入瓷片电容,这个电容一般选择在10到50 pF,需要接地。此次设计使用的晶振是12MHz的石英晶体。

3.2 按键模块

该次设计中按键模块的功能是在自动光照窗帘之外,能够通过按键来定时使窗帘关闭或是直接用按键来控制窗帘的打开或是关闭。此次设计需要用到5个独立按键。它们分别实现的功能有设定键(设定自动光控窗帘的启闭时间);数字值加键;数字值减键;启动窗帘按键(按下此键后窗帘被打开);关闭窗帘键(按下此键后窗帘被关闭)。

如上图3所示,该模块中,S1键与P2.7 口相连,是主功能键;S2键与P2.6 口相连,按下此键后时间值或是光照预设值加一;S3键与P2.5 口相连,按下此键后时间值或是光照预设值减1;S4键与P2.4 口相连,按下此键后窗帘打开。S5键与P2.3 口相连,按下此键后窗帘关闭。

3.3 光敏和AD转换模块

自动光控起闭窗帘系统是根据外部光照的情况变化来及时地打开或是关闭窗帘,光敏电阻负责完成此部分所需要的功能。光敏电阻能够对外部光照强度值感应十分敏感,对电阻值的改变与否有着直接作用。电阻值与光照强度呈负相关,强度增加电阻值减少,反之则电阻增大。

ADC0832是8位逐次逼近模数转换器。与TLC0832可以代换,它有两个可多路选择的输入通道。串行输出可配置为和标准移位寄存器或微处理器接口,其多路器可用软件配置为单端或差分输入,差分的模拟电压输入可以抑制共模电压,但输入基准电压不可以调整大小,在内部已经连到Vcc[1]。ADC0832芯片有四条数据连接线,它们分别与单片机相连接,分别是CS片选端;CLK芯片时钟输入端;DI数据信号输入端;DO数据信号输出端。在单片机进行通信时,DI与DO端都是与单片机双向连接的且它们不能同时生效工作,所以在电路中将此两端并联起来到一根数据线上。整体设计如下图4所示,CS引脚是处于高电平时,芯片不工作,CLK端口的电平能够随便设定,DO和DI的电平也是如此。若想要整个模数转换电路开始工作必须要先把片选使能端设置成低电平的状态,而且在整个转换过程中此状态要一直保持。在整个进程中,CLK芯片时钟输入端要接收时钟脉冲并向数据信号输入端输入信号。此端口用作输入通道的选择。DI端一直保持高电平。

两端数据分别显示为1、0时,CH0引脚端实现单通道转换。CH1引脚端进行单通道转换在2位数据为1、1的情况下。CH1引脚端和CH0引脚端在数据显示为0、0时分别用作反输入端IN-和正输入端IN+。两位数据显示为0、1时,CH1和CH0的正负输入端极性发生变化。若第三个脉冲下沉,DI端在第三个脉冲来之前就会失去输入功用[2]。采用DO/DI端输出数据来输出DO。用DO端来输出转换数据的DATA7当第四个脉冲下沉时。 DO端在D0端输送出最低位数据DATA0之前会一直输入数据,输出数据是在每个脉冲下沉之前。接收到DATA0数据之后这一字节数据就输出结束了。之后再输出相反字节数据。将CS片选使能引脚端置为高电平,此时芯片不能使用。

AD转换芯片的输入电压均为0到5V,此电压仅适用于它被作为单通道的模拟信号时。它的电压的精度在八位分辨率时是19.53mV,当用作正负输入端时,应该预定较大的范畴值的电压值,并用次来提升转换时的精度。

3.4 步进电机设计模块

步进电机是一种开环的节制器件,角位移就是在其电脉冲的转换下得来的,脉冲信号的频率和数目会影响到电机的转动。例如当一个脉冲信号输送到步进电机的驱动器时,其可以使得此电机按照我们先前假设的正方向或是反方向转动一个一定的角度,我们称此角为步距角[3]。

步进电机可以快速地开启和停止。步进电机由于转速和步进角的关系多被用在精度较高的电路中,而这些只与脉冲的频率相关联。

ULN2003的七个引脚与單片机P1.0~P1.7连接。在ULN2003芯片旁边安装插线排针,也就是电机的五线接口,用于连接步进电机。5V电源直接连接J4的第一引脚端口。与电机相连接,直接驱动电机正反转从而来模拟控制窗帘的起闭。

步进电机是包括单相电机和多相电机两类,这两类都是同步步进电机。单路电脉冲可以驱使单相电机运作,单相电机由于其本身的低输出功率一般用作驱使微小电路。步进电机很适合应用于微处理器控制主要是因为能直接接收数字量。

3.5 显示部分模块

该次设计中用来显示实时时间、开关窗帘定时时间、光照强度值的是LCD1602,在1602上显示的时间可以通过按键调整,通过按键设定起闭窗帘的时间,在1602上实时显示;也可以通过1602显示我们采集到的光照数字值。

P0在此用作数据口的连接,在1602处与7到14引脚相连接,在连接线路上来传输写数据或是写指令。而且在线路的连接中必须加入上拉电阻。LCD1602的4引脚是RS寄存器选择端,可以用来选择数据还是命令; LCD1602的5脚是R/W读写控制端,它能决定读数据还是写数据,与单片机芯片的P2.0端口贯串; LCD1602的六引脚是E使能信号端,可以控制器件是否工作,与单片机芯片P2.2端口相衔接[4]。在此次设计中采用旋转电位器来调节1602的背光亮度。

4 系统软件部分设计

此系统的主程序需要完成的功能有:单片机各个模块的初始化操作,定时器初值设置以及开启电机运转,显示时间光照数字量等。通过主函数void main()来调用各个模块子函数以此来实现整个系统的功能。软件流程图如图7。

5 结束语

该系统设计采用AT89S52单片机的最小系统设计,通过控制一个可逆、直流电动机来控制窗帘的打开和关闭,使用遥控、光控方式使得窗帘系统变得智能化,这正符合现在智能家居的发展方向,能够让智能生活理念得到更好的推广。

参考文献:

[1] 郑国君. 8位串行A/D转换器ADC0832[J]. 电子世界, 2002(9).

[2] 梁明亮, 王新强. 单片机与ADC0832的接口技术[J]. 河南科技, 2006(8):48-49.

[3] 郭天祥. 新概念51单片机C语言编程[M]. 北京: 电子工业出版社, 2009.

[4] 于志赣, 刘国平, 张旭斌. 液显LCD1602模块的应用[J]. 机电技术, 2009 ,32(3):21-23.

【通联编辑:谢媛媛】

猜你喜欢

窗帘自动控制单片机
简易热水器自动控制设计
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
基于DCS自动控制循环水液面的改造
巧做窗帘
编组站停车器自动控制开通方案
Microchip推出两个全新PIC单片机系列
感恩的窗帘
窗帘