家居智能照明控制器设计论文_第1页
家居智能照明控制器设计论文_第2页
家居智能照明控制器设计论文_第3页
家居智能照明控制器设计论文_第4页
家居智能照明控制器设计论文_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 智能家居照明控制器 设计论文 班级: 电子102 组长: 组员: 指导老师: 2013电子大赛实训 基于单片机的居家智能照明控制器的设计(E题)一、任务设计制作一个基于单片机的居家智能照明控制器。二、要求内容:1. 功能一:所设计的控制器能实时根据房间照度,改变窗帘的开度;房间照度目标值可预置,预置范围尽可能宽;控制精度10%。2. 功能二:可控制照明系统,补充房间照度。3. 能捕捉居家信息,必要时关闭功能二和功能二。4. 系统应充分考虑节能、安全、舒适、环保。目标:1. 参阅有关文献资料,设计电路;2. 仿真调试、系统演示;3. 完成实训论文。1背景11.1智能家居的概念11.2智能家居控

2、制系统功能12总体设计22.1整体设计22.2系统设计方案22.3功能设计22.3.1红外控制22.3.2光敏控制32.2.3A/D转换42.2.4步进电机52.2.5PWM62.2.6数码管显示63硬件设计73.1红外模块73.2光敏模块83.3A/D模块83.4数码显示模块93.5步进电机模块93.6 PWM模块104软件系统114.1 keil与proteus软件114.1.1 keil114.1.2 proteus11功能特点。这些功能是:114.1.3 keil与proteus的联调124.2流程图设计134.3代码分析144.3.1 main.c:144.3.2 AD转值程序154

3、.3.3 I2C总线164.3.4 PWM程序174.3.5 步进电机程序195环境实例搭建205.1各个功能模块分解图205.2整体实物图215.3proteus仿真图226总结227.参考文献221背景1.1智能家居的概念智能家居(Smart Home)是以家为平台,兼备建筑、自动化,智能化于一体的高效、舒适、安全、便利的家居环境。家居智能化技术起源于美国,最具代表性的是X-10技术,通过X-10通信协议,网络系统中的各个设备便可实现资源的共享。因其布线简单、功能灵活,扩展容易而被人们广泛接受和应用。至今,X-10技术产品的销售已超过两亿个,仅在美国一个国家,便有超过600万个家庭在使用。

4、自动化的智能家居不再是一幢被动的建筑,相反,成了帮助主人尽量利用时间的工具,使家庭更为舒适、安全、高效和节能。智能家居是现代社会最热门的话题之一,它的目标是通过网络等信息通信技术手段实现对家居电器等的智能控制,使其能够按照人们的设定工作运行,而不论距离的远近。智能化与远程控制是智能家居的两大特点。目前,已经有越来越多的机构和个人开始了对智能家居的研究 随着网络技术的发展,特别是无线网络的发展,网络化智能家居系统可提供遥控、家电(空调,热水器等)控制、照明控制、室内外遥控、窗帘自控、防盗报警、 远程控制、可编程定时控制及计算机控制等多种功能和手段,使生活更加舒适、便利和安全。 1.2智能家居控制

5、系统功能智能家庭控制系统的主要功能包括家庭设备自动控制、家庭安全防范二个方面。其中家庭设备自动监控包括电器设备的集中、遥控、远距离异地(通过 或Internet)的监视、控制及数据采集。(1)家用电器的监视和控制,按照预先所设定程序的要求对热水器、微波炉、视像音响等家用电器进行监视和控制。(2) 热能表、燃气表、水表、电度表的数据采集、计量和传送根据小区物业管理的要求所设置数据采集程序,通过传感器对热能表、燃气表、水表、电度表的用量进行自动数据采集、计量,并将采集结果远程传送给小区物业管理系统。(3)空调机的监视、调节和控制,按照预先所设定的程序,根据时间、温度、湿度等参数对空调机进行监视、调

6、节和控制。(4)照明设备的监视、调节和控制按照预先设定的时间程序,分别对各个房间照明设备的开、关进行控制,并可自动调节各个房间的照度。(5)窗帘的控制,按照预先设定的时间程序,对窗帘的开启/关闭进行控制。2总体设计2.1整体设计本次居家智能照明系统是以51单片机为中心,红外、光敏传感器为环境信息采集源,从而智能控制环境中的光照强度的智能监控系统。该系统除了可以调节LED灯的片高度,还可以调节室内窗帘开度,环保又节能。另外还有一个数码显示器,方便使用者了解当前亮度。数值从0-255,分别表示从亮到暗的程度。2.2系统设计方案根据设计要求,系统提供了包括了核心控制模块,红外模块,光敏模块,A/D模

7、块,步进电机模块,LED模块,数码显示模块等等。系统的整体框图如图1所示。红外模块核心控制模块(51单片机)数码显示模块步进电机模块LED模块A/D模块光敏模块图1.系统的整体框图2.3功能设计2.3.1红外控制运用红外模块,判断环境中是否有人,从而判断是否需要打开该智能系统。具体过程如下:红外模块通电后有一分钟左右的初始化时间,在此期间模块会间隔地输出0-3次,一分钟后进入待机状态。当人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平,输出低电平。注意事项:1.其采用双元探头,探头的窗口为长方形,双元(A元B元)位于较长方向的两端,当人体从左到右或从右到左走过时,红外光谱到达双

8、元的时间、距离有差值,差值越大,感应越灵敏,当人体从正面走向探头或从上到下或从下到上方向走过时,双元检测不到红外光谱距离的变化,无差值,因此感应不灵敏或不工作;所以安装感应器时应使探头双元的方向与人体活动最多的方向尽量相平行,保证人体经过时先后被探头双元所感应。为了增加感应角度范围,本模块采用圆形透镜,也使得探头四面都感应,但左右两侧仍然比上下两个方向感应范围大、灵敏度强,安装时仍须尽量按以上要求。2.应尽量避免灯光等干扰源近距离直射模块表面的透镜,以免引进干扰信号产生误动作;使用环境尽量避免流动的风,风也会对感应器造成干扰。3.触发方式选择:H可重复触发本系统采用的也是红外传感的一种应用,如

9、图2所示,介绍下现今的红外传感器。图2.红外传感器 2.3.2光敏控制运用光敏模块检测周围环境的亮度与光强,将光源信号转换成电子信号,以模拟量电压的形式输出。该模块的特点是灵敏度可调(图3中蓝色数字电位器可调节),采用LM393芯片作为比较器比较,工作较稳定。模拟量输出AO可以和AD模块相连,通过AD转换,可以获得环境光强更精准的数值。关键元件:光敏电阻又称光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,

10、从而使光敏电阻器的阻值迅速下降。如图3所示 图3.光敏电阻及其结构2.2.3A/D转换从光敏模块得到模拟量输出AO和A/D模块的ANT0相连,将模拟信号传入A/D模块,通过AD转换,将信息转换为数字量,获得环境光强精准的数值,传送到单片机内。本系统中AD与单片机的输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。功能参考图如图4。图4.A/D转换的功能示意图2.2.4步进电机图5.步进电机图6. 2相励磁2相励磁:每一瞬间都有两个线圈同时导电,特点是力矩大、震动较小,每次励磁转动角度是标称角度。2.2.5PWMPWM:脉宽调制。基本原理:控制方式就是对逆变电路开关器

11、件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。调整占空比的大小实现调整灯光的亮度。优点:PWM经济、节约空间、抗噪性能强。2.2.6数码管显示用0-255的数值表达当前光照强度,0表示最亮。使用单片机外设的三个七段数码管显示由A/D模块传送的数字量值。由于当前任意时刻都要显示3个数字,需要数码管进行动态扫描显示3位数。动态扫描实际上执行的是动态显示,由于动态速度很快,人眼分辨不出是动态显示,看上去是静态显示。优点是,在不影响显示效果的前提下,节省了IO端口。例如,如图6所示,8位数码管显示01234567图7.数码管显示3硬件设计3.1红外模块图8.

12、红外模块电路图3.2光敏模块图9.光敏模块电路图3.3A/D模块引脚功能: 图10.A/D模块中主要元件PCF85913.4数码显示模块图11.数码管显示电路图3.5步进电机模块图12.步进电机电路图3.6 PWM模块 图13.PWM4软件系统4.1 keil与proteus软件4.1.1 keilkeil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(u

13、Vision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。4.1.2 proteusproteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿

14、真单片机及外围器件的工具。功能特点。这些功能是:1原理布图2PCB自动或人工布线3SPICE电路仿真革命性的特点1互动的电路仿真:用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。2仿真处理器及其外围电路:可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型。上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。4.1.3 keil与proteus的联调步骤1. 1、将KeilC51(u2、u3均可)、Prot

15、eus6(94、95均可)都安装好;2、下载两个软件,一个是Proteus的Vdmagdi.exe,另一个是授权后的Prospice.dll(两个文件链接地址看下面)3、先运行Vdmagdi.exe安装Keil接口,然后将Prospice.dll覆盖在Proteus的安装文件夹下的Bin中如:D:Program FilesLabcenter ElectronicsProteus 6 ProfessionalBIN;4、打开Proteus,在【菜单】【Debug】下拉菜单中选【User Remote Debug Monitor】(在该项前打勾);5、打开KeilC51,点击【菜单】【工程】【为目

16、标XX设置选项】,在【调试】标签下选择右边的【使用U】单选,并在下拉框中选【Proteus VSM Simulator】仿真设备;6、在Proteus侧做好硬件连线,Keil侧写好软件,点击Keil【调试】【运行】。4.2流程图设计 开始红外模块判读有没有人光敏模块采集光照强度数码管显示数字量numAD模块转换为数字量numN 结束num150YY光照过强,步进电机模块反转关闭窗帘光强过低,步进电机模块正转拉开窗帘 光敏模块采集光照强度光敏模块采集光照强度AD模块转换为数字量numAD模块转换为数字量num num150光照仍然过强,PWM模块调暗LED光照仍然过低,PWM模块调亮LED4.3

17、代码分析4.3.1 main.c:#include#includedelay.h#includei2c.h#includedisplay.h#includeturn.h#includeAD.h#includePWM.hsbit LED=P17;unsigned char num;void main(void)Init_Timer0();while(1)if(LED=1)num=ReadADC(0); /调用ReadADC(),获取室内光照强度值TempData0=DuanManum/100; /使用7段数码管显示当前光照强度值 TempData1=DuanMa(num%100)/10; Tem

18、pData2=DuanMa(num%100)%10; if(num 150)/光照过低,电机正转,拉开窗帘zhengzhuan(); if(num 150)/光照仍然过低,调整占空比变大tiaoliang(); if(num 100) /光照仍然过强,调整占空比变小tiaoan();TR1=0;/关定时器1,避免其产生中断影响其他程序4.3.2 AD转值程序#includeAD.h/*- 读AD转值程序输入参数 Chl 表示需要转换的通道,范围从0-3返回值范围0-255-*/unsigned char ReadADC(unsigned char Chl) unsigned char Val;

19、 Start_I2c(); /启动总线 SendByte(AddWr); /发送器件地址 if(ack=0)return(0); SendByte(0x40|Chl); /发送器件子地址 if(ack=0)return(0); Start_I2c(); SendByte(AddWr+1); if(ack=0)return(0); Val=RcvByte(); NoAck_I2c(); /发送非应位 Stop_I2c(); /结束总线 return(Val); 4.3.3 I2C总线#include i2c.h#include delay.h#define _Nop() _nop_() /定义空

20、指令 bit ack; /应答标志位sbit SDA=P21;sbit SCL=P20;/*- 启动总线-*/void Start_I2c() SDA=1; /发送起始条件的数据信号 _Nop(); SCL=1; _Nop(); /起始条件建立时间大于4.7us,延时 _Nop(); _Nop(); _Nop(); _Nop(); SDA=0; /发送起始信号 _Nop(); /起始条件锁定时间大于4 _Nop(); _Nop(); _Nop(); _Nop(); SCL=0; /钳住I2C总线,准备发送或接收数据 _Nop(); _Nop();/*- 结束总线-*/void Stop_I2c

21、() SDA=0; /发送结束条件的数据信号 _Nop(); /发送结束条件的时钟信号 SCL=1; /结束条件建立时间大于4 _Nop(); _Nop(); _Nop(); _Nop(); _Nop(); SDA=1; /发送I2C总线结束信号 _Nop(); _Nop(); _Nop(); _Nop(); 4.3.4 PWM程序#includePWM.hunsigned char CYCLE=10;unsigned char PWM_ON;bit Flag;/*在调整窗帘后,光照强度仍然过低, 输出PWM,调整占空比变大,增强LED1的亮度*/void tiaoliang(void)Fla

22、g=0;PWM_ON=10;while(!Flag) delay1(20000); PWM_ON-; if(PWM_ON = 0) Flag=1; /*在调整窗帘后,光照强度仍然过强, 输出PWM,调整占空比变小,减弱LED1的亮度*/void tiaoan(void)Flag=1;PWM_ON=0; while(Flag) delay1(20000); PWM_ON+; if(PWM_ON = 10) Flag=0; /* 定时器1中断服务程序:用于改变占空比*/void tim(void) interrupt 3 static unsigned char count;TH1=(65536-

23、100)/256; TL1=(65536-100)%256;if (count=PWM_ON) /决定高电平的个数 LED1 = 1; count+;if(count = CYCLE) count=0; if(PWM_ON!=0) LED1 = 0; 4.3.5步进电机程序/2相励磁法,每一瞬间有两个线圈同时导通,特点是力矩大、震动较小,每次转动角度是标称角度void zhengzhuan() i=256; Coil_OFF while(i-) /正向 Coil_AB1 /遇到Coil_A1 用A1=1;B1=1;C1=0;D1=0;代替 DelayMs(Speed); /改变这个参数可以调整电机转速 , /数字越小,转速越大,力矩越小 Coil_BC1 DelayMs(Speed); Coil_CD1 DelayMs(Spe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论