智能窗帘控制器设计.docx
- 文档编号:11888850
- 上传时间:2023-04-08
- 格式:DOCX
- 页数:41
- 大小:949.98KB
智能窗帘控制器设计.docx
《智能窗帘控制器设计.docx》由会员分享,可在线阅读,更多相关《智能窗帘控制器设计.docx(41页珍藏版)》请在冰豆网上搜索。
智能窗帘控制器设计
摘要
窗帘是人类自定居开始就存在的家居用具,用以保护人的隐私及改变屋内光线。
随着时代的发展,传统的窗帘已不能满足人们需求,为此提出一个多功能智能窗帘控制器的研究。
多功能智能窗帘控制器使用STC12系列单片机作为核心,通过利用光敏电阻在光照下变化的电阻经过分压电路及模数转换后,将转换数据送往单片机,单片机控制液晶显示器显示光照强度,并根据光照强度大小自动判断当前光照是否强烈,从而控制电机转动带动窗帘,实现自动调光功能;同时,运用红外遥控技术,实现无线遥控功能。
电机电路由L298N外加续流二极管的电路提供驱动。
所完成的控制器能实现开闭、自动、定时多模式的选择功能。
文中介绍了系统总体的设计方案,及系统工作原理,详细阐述系统硬件的设计和软件程序的设计流程。
文章提供有关数据,并作出相应分析,总结系统所实现的功能,分析不足,为此提出展望。
关键字:
STC单片机、红外遥控、自动调光、光敏电阻
Abstract
Curtainiswhichtheexistenceofahouseappliancesincethebeginningofthehumansettlement,itwasusedtoprotectpeople'sprivacyandtochangethehouselight.Withthedevelopmentofthetimes,thetraditionalcurtaincannotsatisfypeople'sneeds,foraproposedstudyofmulti-applicationsmartcurtaincontroller.
MultifunctionalsmartcurtaincontrollerusesSTC12SeriesMCUasthecore,throughtheuseoflight-sensitiveresistorschangeresistorinthelight.Thenthevoltagewhichischangedbythelight-sensitiveresistorssendtothevoltagedividercircuitandanalog-digitalconversion,andthentheconvertedofdatasenttothemicrocontroller.TheMCUwillcontroltheLCDtodisplaythelightintensity,andinaccordancewiththelightintensityautomaticallydeterminethecurrentsizeofthelightintensityoflightisstrongorweak,alsodrivenbyrotationofthemotortocontrolthecurtainstomakeoutautomaticdimmingfunction;Atthesametime,theuseofinfraredremotecontroltechnologycanworkoutthewirelessremotecontrolfunction.ThemotorcircuitisdrivenbythechipwhichthemodelnumberisL298Nandaddexternalfreewheelingdiodecircuit.Thecontrollercanselectmultiplemodes,suchasopening,closing,automatic,andtiming.
Thispaperdescribestheoverallsystemdesign,andthesystemhowtowork.Itelaboratesthesystemhardwaredesignandsoftwaredesignprocesses.Thisarticlesprovidetherelevantdata,andmaketheappropriateanalysis,thensummarizedthesystemfunctionswhicharerealizedandinadequateanalysis.Finallyweproposedtheprospect.
Keywords:
STCsinglechipmicrocomputer,Infraredremotecontrol,automaticchange-lightfunction,photoresistors
引言
窗帘作为现代家居用品中的必需品,具有遮阳隔热和调节室内光线的功能,是与外界隔绝,保持居室私密性的家居用品。
冬季,拉上幔帐式的窗帘将室内外分隔成两个世界,给屋里增加了温馨的暖意[1]。
随着单片机的使用越来越广泛,其制作成本不断下降,而性能却不断提高科技创造便捷生活,我们使用最简单的材料和程序,利用红外线实现了短距离无线通讯,可以控制各种负载的工作,应用到生活和农业生产中,只用一个遥控器就可以控制微波炉、窗帘和电灯等等[2]。
基于测控仪器的方便使用与快速处理,智能家居首当其冲,智能家居作为一个新生产业,处于一个导入期与成长期的临界点,市场消费观念还未形成,但随着智能家居市场推广普及的进一步落实,培育起消费者的使用习惯,智能家居市场的消费潜力必然是巨大的,产业前景光明。
正因为如此,国内优秀的智能家居用品生产企业愈来愈重视对行业市场的研究,特别是对企业发展环境和客户需求趋势变化的深入研究,一大批国内优秀的智能家居品牌迅速崛起,逐渐成为智能家居产业中的翘楚!
在产品调查中发现,现阶段的智能窗帘所实现的功能为可手动及电动一体控制。
其中,窗帘并不具有什么智能性,外配的遥控器只可以实现窗帘的打开和关闭的遥控功能,相对于智能来说,这些相去甚远。
另外此类电动窗帘,仅仅具有上下控制模式,并无很好的人机交互功能。
针对这个状况,在以此现状的窗帘的基础上增加额外的技术,在此提出一个较低成本的研究设计。
利用STC12系列单片机与外围红外发射、接收电路,光照强度采集电路,电机驱动控制电路,以及人机交互界面所构建的一个系统,其自动调光功能是根据人眼的舒适度进行调节的。
此系统不仅所低成本,而且实用,适合大多数家庭的日常使用。
1系统方案设计
1.1设计要求
要求设计一个具有自动调光功能的红外遥控窗帘。
系统包括主控电路、遥控电路、光控电路、键盘等部分。
设计检测电路,实现根据环境亮度控制窗帘开度;设计红外遥控器,实现特殊要求下遥控器控制;设计键盘电路,实现定时控制,以达到控制房间亮度的目的。
本课题内容的具体要求及主要技术指标如下:
1、实时显示当前光照强度;
2、支持多种控制模式:
光强自动控制、红外遥控控制、定时控制调节窗帘开度;
3、设计闭环系统,方便检测系统是否正常工作;
1.2系统框图
系统的构成如图1.1所示,系统所用的微控制器为STC12C5A60S2,提供各种信息的处理及采集。
红外遥控器采用通用型遥控器(市场上大多数遥控器都为此类型,兼容性高),采集按键直接通过编码电路,进而与38Khz的脉冲波进行调制,抗干扰性高,可在光照充足的条件下使用。
光控模块,使用光敏电阻进行采集,光敏电阻具有随光照强度大小变化,其电阻值随之变化的特点。
利用这个,可从光强,到电阻,继而至电压变化,从而对相应电压电阻进行数模转化为数字量,方便微控制器的处理。
外加的显示模块,能更好的进行人机交互。
(具体说明请浏览方案设计章节)如图1.1。
图1.1系统框图
1.3系统方案设计
单片机的选择:
从时代看,传统的单片机已无法满足科技日益发展的今天。
就Atmel公司的AT89S51型单片机而言,32个准双向口的IO口,4KB的Flash大小,以及128字节的运行存储器RAM,已无法满足由于多功能所带来的对IO口的占用数量,以及更大的程序的装载空间。
因此,我在这里选择使用由宏晶公司所提供的STC12C5A60S2型单片机。
该单片机为新一代增强型单片机,不仅可使用像经典的32个IO口,必要时还可以扩展P4口;而且增加PWM、PCA的定时器,同时可对其编程直接输出;另外新型的内部振荡器,双UART模块,以及8路A/D转换器。
这些外围设备都集成于单片机一体,从工艺看,就已极大的缩小了成本。
值得一提的是,此单片机的flash高达60K,可满足各种程序所需空间大小的需要,同时1280字节的RAM也为该单片机增色不少。
从日常家居角度来看,该单片机已是最佳选择。
图1.2STC12C5A60S2内部设备
显示器的选择:
第一种选择是数码管,显然显示内容有限,在人机交互方面,已大大不能满足人们对界面的要求;
第二种选择是例如LCD12864集成字符生成器一体的显示器,显示内容丰富,不仅可显示字符,而且可已显示汉字及二进制的图像,但成本过高,同时占用IO口数过多。
若使用串行通信方式,速度较慢;
第三种选择,使用由诺基亚公司所提供的LCD5110,该LCD由84x48的点阵组成,采用串行界面与处理器进行通信,支持多种串行通信协议(诸如SPI、UART、I2C等),相比LCD23864的串行传输速度而言,其高达4Mbps的串行传输速度更是遥遥领先,可全速写入显示数据,无需等待时间。
同时体积更小、成本更低,显示内容同样丰富。
如图1.3为Nokia5110封装及管脚功能图。
图1.3Nokia5110
光强采集电路方案:
第一种方案,使用光敏二极管,其实光敏二极管可相当于一个光敏电阻。
但由于半导体的单相导通特性在采集方面并不合适,因此不予考虑。
第二种方案,使用光敏电阻,由于光敏电阻有随光照强度变化而其电阻变化的特点,在输入点处的变化是连续的,同时其光照-伏安特性可在一定范围内线性,因此对于光敏电阻予以使用。
图1.4光敏电阻
电机的选择:
相对于驱动的选择,我们应先从电机的选择开始,电机的类型可分为直流电机和步进电机,两者都各有特点。
直流电机有拥噪音小,成本低,驱动简单等特点;而步进电机具有可控制转角角度功能,可以精确的控制所需转过的角度或者圈数,同时扭力较大,但成本较高。
因此选择更贴阖家居生活的直流电机,原因是噪音小,成本低。
另外直流电机又分为有刷电机与无刷电机,从性能比较上,无刷电机故障率低,维护简单,动态性能优良。
而有刷电机优点在于控制简单。
通过比较,无刷电机虽然性能优越,但无法与有刷电机一样具有良好的机械性能易于控制,因此选用有刷电机作为电机的选择。
电机驱动电路的选择:
第一种方案,直接接口引入,特点简单方便,缺点驱动电流不足,线圈反向电流会引入电路造成干扰或者损害,因此不予考虑。
第二种方案,使用由MOSFET所搭建的H桥驱动电路,此电路属于可逆性电路,可控制电机的正转和反转,同时所加信号若为脉冲信号,通过调制脉冲的占空比,可对电机进行调速。
以上,应选择第二种方案。
图1.5H桥电路原理图
2硬件设计
2.1最小系统设计
单片机的最小系统可使单片机作为一个能正常工作,处理各种信息的单元。
如今的最小系统可简化为单片机、复位电路、振荡电路三个部分。
在上一个章节已说明单片机使用STC12C5A60S2型单片机。
如图2.1为所使用单片机的最小系统。
图2.1STC12C5A60S2型的最小系统
其中,旁路的LED灯为系统工作的指示灯,电阻R1为限流电阻,以防浪涌电流将LED烧坏,增长其寿命。
复位电路:
单片机在每个机器周期的S5P2采样一次,并且在RST引脚保持至少两个机器周期的高电平,才能使单片机完成复位。
另外,使用按键复位电路可方便在调试时,对复位的需要,因此使用按键复位形式的电路。
如图2.2为复位电路的原理图。
图2.2按键复位电路原理图
当按键被按下,在RESET处出现一个高电平。
当按键被放开时,电容C4会通过R5放电,继续保持放点时间的高电平。
R4作用是缓冲。
电容放电时间:
(2-1)
其中,v1为充电饱和电压(5V),v2为初始电压(0V),v0为t时刻电容上的电压(3V)。
则所计算时间为0.04s,符合要求。
振荡电路:
由于内置R/C时钟发生器,外部振荡电路只需增加起振晶体和电容即可。
如图2.3为振荡电路原理图。
图2.3振荡电路原理图
其中,Y2为11.0592M晶振,C3、C5提供起振条件。
2.2红外信号接收设计
电视遥控器使用的是专用集成发射芯片来实现遥控码的发射,如东芝、飞利浦、NEC等,相互之间采用的遥控编码格式互不兼容,所以各机型的遥控器通常只能针对各自的遥控对象而无法通用。
为了使信号能更好的被传输,发送端将基带二进制信号调制为脉冲串信号,通过红外发射管发射。
常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方式。
不同的遥控器有着不同的编码标准,在这里我选择的标准是主流平台上的一种——NEC标准来进行编码,其中使用的调制方式为PPM方式。
另外调制更进一步增强抗干扰能力,可以增加遥控距离。
(详细编码形式在软件设计章节说明)
在发射处,选择常规的红外发光二极管,为进一步增强发射能力,使用5mm的封装。
同时,在接受处使用的是VS1838B型集成红外接收器。
之所以选择这个接收器,是由于它拥有以下特性:
体积小,内置专用IC,易于系统的小型化;宽角度及长距离接收(可达到±35°),有效的增大了接收面积范围;抗干扰能力强,能抵挡环境干挠光线;低电压工作,可有效降低系统的功耗。
图2.5为红外接收电路原理图,其中VS1838B的OUT的输出脚处连接至单片机的外部中断接口INT1处。
图2.4红外接收器连接原理图
2.3显示模块设计
由于所选用LCD5110连线界面少,电路简单。
所以无需任何外加电路,若是需要提高数据传输的正确率可在每个IO口处添加上拉电阻。
在这里不加上拉电阻的原因是考虑到居室不是一个恶劣的环境,因此无需上拉电阻可能有很高的数据正确性。
如图2.6为显示模块原理图。
图2.5显示模块原理图
2.4光采集模块设计
此模块由光敏电阻、A/D转换器和限流电阻组成。
由于A/D转换器已集成于微控制器内,因此无需额外增加。
光敏电阻在选用时,应考虑其光谱峰值以及电阻值在光照与黑暗情况下的差值。
根据表2.1可知,由于光谱峰值相差不大,从而在此无需过多考虑。
在亮电阻与暗电阻差值比较中,我们找到PGM5506及PGM5516两种型号的光敏电阻特性较为适合,原因是所使用的分压限流电阻为100KΩ,不宜使用亮电阻较大的光敏电阻。
同时由于PGM5516的亮暗电阻差值较大,因此选择PGM5516型光敏电阻。
表2.15mmPGM5系列光敏电阻特性表
型号
最大电压(VDC)
最大功率(mW)
环境温度
(℃)
光谱峰值
(nm)
亮电阻(10lx)(kΩ)
暗电阻
(MΩ)
PGM5506
100
90
-30~+70
540
2~6
0.15
PGM5516
100
90
-30~+70
540
5~10
0.2
PGM5526
150
100
-30~+70
540
8~20
1.0
PGM5537
150
100
-30~+70
540
16~50
2.0
PGM5539
150
100
-30~+70
540
30~90
5.0
PGM5549
150
100
-30~+70
540
45~140
10.0
PGM5616D
150
100
-30~+70
560
5~10
1.0
PGM5626D
150
100
-30~+70
560
8~20
2.0
PGM5637D
150
100
-30~+70
560
16~50
5.0
如图2.7所示硬件电路原理图。
至ADC1
至ADC2
图2.6光采集电路原理图
利用两路光强采集,可更加贴近的测量该时刻的光强,可减小由于干扰所带来的误差。
由分压的效果可见,当光敏电阻处于黑暗时,阻值为200K,有
(2-2)
此时UO=2.5V。
当光敏电阻处于光照情况下,此时UO=0.23~0.045V。
相差较大,能更容易的从中处理光强→电阻→电压→光强的关系。
2.5电机驱动模块设计
该模块核心芯片的选择在于芯片的输出驱动电流、输入电压范围、功耗等。
选用L298N型专用集成驱动芯片作为电机的驱动芯片正是基于以上考虑。
L298N是ST公司生产的一种高电压、大电流电机驱动芯片。
该芯片采用15脚封装。
主要特点是:
工作电压高,供电电压范围宽,最高工作电压可达46V,无论是选择由锂电池或者简易的供电器都同样适用;更重要的是,内含两个H桥的高电压大电流全桥式驱动器,可以用来控制直流电机、步进电机、继电器线圈等感性负载,同时输出电流大,瞬间电流可达3A,持续工作电流为2A,额定功率为25W可满足一般电机的驱动要求;另外,该芯片采用标准逻辑电平信号(即TTL电平)控制,具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作,因此该芯片可有效降低由于闲置MOSFET所带来的多余的功耗。
使用该芯片可以控制一台两相步进电机或四相步进电机,更可以控制2台直流电机。
如图2.8所示电机驱动硬件电路原理图。
图2.7电机驱动电路原理图
其中,运用8个二极管为每一路输出提供续流效果,以防电机线圈组的回流损害芯片。
两个电容缓冲回流确保电机的正常工作。
2.6窗帘结构设计
窗帘由帘体、支架、配件三大部分组成。
帘体是窗帘的遮掩部分,为窗帘的主体,一般是各种类型的布制物料。
支架是窗帘的支撑及活动的部分,也是窗帘的重要部分,一般为左右互拉式的导轨。
配件是帘体与支架间的连接、固定部分。
考虑到方案所体现的低成本,设计结构支架如图2.9所示,此结构只用一个电机便可实现窗帘的开闭,同时,可以实现两种控制的窗帘的开闭方式:
上下升降的卷帘式,左右卷动开合。
卷帘式结构简单,对空间的占用小,类似百叶窗悬挂方法,折叠升高,可根据光线的强弱而上下升降。
但考虑到人类的生活习惯及习性,在这我选择类似左右卷动形式,常用于有窗盒的窗户,可配帘眉,不显露轨道。
所以该类型结构在美观方面增色不少。
图2.8窗帘结构示意图
由结构图可看出,在结构上与升降帘相差无几,一样的简单而方便。
3软件设计
3.1主程序设计
软件是系统的灵魂。
一个系统如果仅有硬件,那么就象是一个植物人,不能实现系统的智能。
那么对软件的编写就是告诉系统该做什么,怎么做。
C语言不仅特点全,而运用上特别之灵活多变,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
而这正是我所选择C语言的原因。
但C语言不是真正的机器语言,系统不可能直接执行C语言,因此我们需要一个编译器,而编程环境是集编译器,调试,仿真器等于一体的开发工具。
在众多开发编程环境中,keil4是一个不错的选择。
Keil4是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
若使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令研究事半功倍。
主程序所现实的是对所需硬件功能初始化以及对各子程序的调用。
在这里,程序对界面及功能初始化后,通过等待红外信号的中断,回应中断,进入中断服务程序中进行红外信号的译码处理,中断返回。
对获得的译码与各功能码进行比对,匹配相同将进入相应的子程序。
如图3.1所示主程序流程图。
图3.1主程序流程图
程序在系统初始化后,进行采集光敏电阻所提供的电压并等待红外信号的接收中断。
在接收到红外信号时,进入中断服务程序进行解码,解码完成后返回主程序。
其中,解析编码为40H是打开窗帘指令;解析编码为44H是关闭窗帘指令;解析编码为09H是自动调节窗帘指令;解析编码为46H是定时管理窗帘指令;如若解析编码与上诉不符,继续等待。
3.2红外信号接收子程序设计
如若要编写接收的子程序,首先要明白发射端的编码设计方式。
根据NEC标准,所使用红外信号的调制方式为PPM(脉冲时间调制方式)。
NEC标准:
遥控载波的频率为38KHz(占空比为1:
3);当某个按键按下时,系统首先发射一个完整的全码,然后经延时再发射一系列简码,直到按键松开即停止发射。
简码重复延时108ms,每两个引导脉冲上升沿之间的间隔都是108ms。
其中,引导码高电平9ms,低电平4.5ms;地址码16位,数据码16位,共32位;数据“0”用“高电平0.56ms+低电平0.565ms”表示,数据“1”用“高电平0.56ms+低电平1.6875ms”表示,一个简码=引导码+地址码位0的反码+结束位(0.5625ms)高电平。
各部分码的作用:
引导码用来通知接收器其后为遥控数据。
地址码用来区分是哪一机型的数据,接收端依此来判断后续的数据是否为须执行的指令。
数据码用来区分是哪一个键被按下,接收端根据数据码做出应该执行什么动作的判断。
简码是在持续按键时发送的码。
它告知接收端,某键是在被连续地按着。
遥控数据传输系统的关键是数据传输的可靠性。
为了提高编码的可靠性,NEC标准规定地址码、数据码后分别接着传送一个同样的码或者反码,供误码校验用。
1、载波波形:
信号被调制在37.91KHZ,占空比是1/3。
图3.2载波波形
2、数据格式:
数据格式包括引导码、用户码、数据码和数据反码,编码总占32位。
数据反码是数据码反相后的编码,编码时可用于对数据的纠错。
注意:
第二个用户码也可以在遥控应用电路中被设置成第一个用户码的反码。
图3.3编码格式
如图3.5所示各段代码所占用的时间。
图3.4编码对应时间
3、位定义:
用户码和数据码中的每一个位可以是位“1”,也可以是位“0”。
区分0、1是利用脉冲的时间间隔来区分,这种编码方式称为脉冲位置调制方式(ppm)。
图3.5“1”和“0”所对应的时间
图3.6红外信号接收程序流程图
如上图3.6所示,使用中断方式进行接收红外信号。
在收到中断信号时,进入中断服务程序。
首先关闭外部中断1的中断,以防不会因为后来的下降沿对程序的干扰,进而判断信号送来的引导时序,当引导时序正确后对所发过来的32位“地址码+数据码”进行解析。
当解析完成后,对16位的数据码分为高低8位,若互为反码,说明数据正确并保存高位的正码数据,否则视为数据传输错误返回主函数。
3.3光采集A/D子程序设计
光采集程序就是启动A/D转换器对电路电压进行采集的程序,然后将转换的值进行滤波,求平均值以减少干扰和误差,最后处理为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 窗帘 控制器 设计