2015届课程论文《基于单片机的智能光控窗帘设计》题目基于单片机的智能光控窗帘设计学生姓名学号所属学院信息工程学院专业通信工程班级通信15-1授课教师教师职称副教授目录1 引言 (1)研究目的和意义 (1)2课题的研究内容 (1)2.1技术方案的选择 (2)3 系统结构与工作原理 (2)3.1系统结构 (2)3.2工作原理 (3)4 系统硬件设计 (3)4.1整体设计模块 (3)4.1.1单片机的复位、时钟电路 (3)4.1.2光信号的模拟与判断 (4)4.1.3 开关控制电路 (5)4.1.4 指示灯电路 (6)4.1.5 控制电动机正反转电路 (6)4.2系统整体电路 (6)5 软件设计 (7)5.2程序流程图 (7)6 系统的不足和改进 (11)6.1系统的不足 (11)6.2系统的改进 (11)7.心得体会 (11)参考文献 (12)附录 (13)基于单片机的智能光控开关设计摘要随着社会的不断进步,人们在智能化控制上的逐步认识和接受,并从多方面开始关注,尤其在生活方面做出了很多的努力。
光照对人民生活是很重要的,人们可以根据光照的强弱选择对窗帘的开关。
它不仅适用于人们生活的住宅区,而且适用于工厂、办公室、教学楼等公共场所。
因此智能开关,在现代化的生活中,将起到重要的作用。
为了能根据室外环境亮度实现窗帘自动拉合的设计需求,一种简单的通过光照强度来控制窗帘的开关的开闭合,从而达到开关的自动断开、闭合功能,其具有很强的适用性。
提出了一种基于单片机控制的光控窗帘设计方案,并完成系统的软、硬件设计。
该系统的硬件部分主要利用光敏传感器产生的信号作为单片机输入信号,软件部分采用C 语言进行编程,能够完成智能光控窗帘的自动拉合。
同时,考虑到用户习惯和天气原因,本方案还设置了选择开关,用户在使用窗帘时可任意选择自动或手动控制方式。
实际应用表明,该系统具有设计成本低、可靠性高的特点,达到了设计要求。
关键词:单片机光敏传感器直流电动机C语言智能光控窗帘1 引言随着生活水平的不断提高,人们对家庭生活舒适度的要求也越来越高,具有装饰、遮光并能进行自动开合的智能光控窗帘成为了现代家居生活的新宠。
为了能根据室外环境亮度实现窗帘自动拉合的设计需求,本文提出了一种基于单片机控制的光控窗帘设计方案。
研究目的和意义研究目的:通过这次的课题研究希望使自己在理清它的发展脉络上进一步了解它的发明原理,将平时所学习的理论知识和技能运用到实际生活当中,这对提高自己的动手能力、创新意识,以及锻炼我们的思维活动是一个很大的帮助。
同时,通过这次的研究希望提高自己对社会普通科学知识的了解;增强自身的只是见解和设计论文的方法。
研究意义:用光控制开关代替一般的开关,只有在光照达到一定强度时,才能使直流发动机开始工作,使得电路导通,而且发动机延迟一段时间就会自动断开,因此节电效率很高,全自动智能控制,接线简单,安装方便,是公共场所照明开关的理想选择。
2课题的研究内容运用单片机可以设计出智能型的光控开关,电路设计好后,运用软件编程来实现其功能,灵活方便,修改简单,在使用过程中更加的安全节电,智能环保。
2.1技术方案的选择目前的声控开关大多都是应用模拟电子技术进行设计,分立元件多,不可靠,而且许多声控开关的平均使用寿命不长,主要是因为电路作频繁的开关,启动电流非常大,导致功率元件可控硅由于过载而损坏。
如果在设计中采用开关电压过零保护技术,可消除白炽灯开启瞬间的大电流冲击,有效地防止可控硅元件启动时的电流过载,大大地延长了开关的使用寿命,并且可以起到保护灯泡的作用。
如今单片机技术已经相当成熟,未来的发展方向趋向于运用单片机可以设计出智能型的声控开关,电路设计好后,运用软件编程来实现其功能,灵活方便,修改简单。
在使用过程中更加的安全节电,智能环保。
首先单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
单片机的特点:(1)种类多,型号全;(2)提高性能,扩大容量,性能价格比高;(3)增加控制功能,向真正意义上的“单片”机发展;(4)低消耗;(5) C语言开发环境,友好的人机互交环境。
单片机的优点:(1)使用寿命长;(2)运行速度越来越快;(3)低噪声和高可靠性技术;(4) OTP与掩膜。
综上所述,单片机的特点和优点符合制作智能声光控开关的条件,并且具有准确性和节能性。
3 系统结构与工作原理3.1 系统结构本设计由单片机、传感器和直流电动机组成,以AT89C51单片机[芯片为核心,运用光敏传感器技术,将室外环境亮度作为单片机的控制信号,实现窗帘的自动拉合。
同时,考虑到用户习惯和天气原因,本方案还设置了选择开关,用户在使用窗帘时可任意选择自动或手动控制方式。
当选择自动控制模式时,单片机将室外环境光线亮度作为输入信号,单片机控制程序根据光敏传感器所产生的电流信号的强弱自动调节直流电机的正反转,从而实现窗帘的自动拉合;当选择手动控制模式时,单片机将手动控制开关作为输入信号,单片机控制程序根据开关信号控制电机的正反转,从而实现窗帘的手动拉合。
3.2 工作原理模拟光信号的采集,可以通过软件来调节对光照的强度。
单片机软件实施对光度的判断,决定窗帘的打开和闭合;由于个人或是其他原因用户可以选择手动开关窗帘。
4 系统硬件设计本系统硬件系统主要由传感器、单片机、直流电动机三大部分组成,如图1所示。
图1 系统工作原理图4.1整体设计模块4.1.1单片机的复位、时钟电路(1)单片机再开机时需要复位,以便使CPU及其他功能部件处于一个确定的初始状态,并从这个状态开始工作,单片机应用程序必须以此作为设计的前提。
(2)单片机执行指令的过程可分为取指令、分析指令和执行指令三个步骤,每个步骤又由许多微操作,这些微操作必须在一个统一的时钟控制下才能按照正确的顺序执行。
如图2:图24.1.2光信号的模拟与判断当光敏电阻收到光照的时候,电阻减小,运放同向输入端为低电平,端口1输出为低电平;当光照较弱时,电阻增加,运放同向输入端为高电平,端口1输出为高电平。
光控电路的输出信号经过电压跟随器后,将比较微弱的电流信号放大到单片机能够识别的电流,然后由运放输出端传输放大后的信号。
然后经过一个非门,形成相反的电压,分别传输给P2.2与P2.3口。
图34.1.3 开关控制电路如果k7断开,系统将执行光控控制,k3、4是控制光信号的输入;k5、k6分别是对正转、反转的反向控制。
当k7闭合卖系统执行手动控制,,k1、k2是对窗帘拉开、闭合的控制。
图44.1.4 指示灯电路当电动机正传时,led1灯亮,当电动机反转时,led2灯亮。
图54.1.5 控制电动机正反转电路由电动机与PNP和NPN三极管控制,当p1.0口低电平,控制电动机正传,当p1.1低电平,电动机反转。
图64.2系统整体电路图75 软件设计5.1 系统软件设计系统软件主要实现智能光控、手动控制两大功能,采用C语言进行编程,可实现用户在使用窗帘时任意选择自动或手动控制方式[4-5]。
5.2程序流程图光控窗帘程序流程图如图3所示。
图85.3 程序设计(1)光控程序当天亮时,有阳光射进屋内,传感器感应到光信号,此时电机正转,窗帘开始打开,当碰到开限位开关时,电机停止转动;当天黑时,传感器接收到信号,电机反转,窗帘闭合,当碰到关限位开关时,电机停止转动。
具体程序如下:#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit K3=P2.2;//光控正转或反转,此处接光敏传感器sbit K5=P2.4; //开限位sbit K6=P2.5; //关限位sbit LED1=P0.0; //正转指示灯sbit LED2=P0.1; //反转指示灯sbit MA=P1.0;sbit MB=P1.1;void main(void){LED1=1;LED2=1;while(1){if(K7==0)sd();if (K3==0&&K4==1) //光控正转{ while (K3==0&&K5==1&&K4==1){LED1=0;LED2=1;MA=0;MB=1;}LED1=1;LED2=1;MA=1;MB=1;}if (K4==0&&K3==1) //光控反转{ while (K4==0&&K6==1&&K3==1){ LED1=1;LED2=0;MA=1;MB=0; }LED1=1;LED2=1;MA=1;MB=1;}}}(2)手动程序当阴天或者晚上用户要打开窗帘时,只需将控制方式选择按钮P2.6按下,就可以实现手动控制窗帘的开合。
程序如下:#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit K1=P2.0; //手动正转sbit K2=P2.1; //手动反转sbit K7=P2.6; //控制方式选择按钮sbit LED1=P0.0; //正转指示灯sbit LED2=P0.1; //反转指示灯sbit MA=P1.0;sbit MB=P1.1;void delay(uint z);//声明子函数void delay(uint z) //延时子程序延时约z毫秒{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}int main(void){LED1=1;LED2=1;while(1){if(K7==0)sd();if (K3==0&&K4==1) //光控正转{ while (K3==0&&K5==1&&K4==1){LED1=0;LED2=1;MA=0;MB=1;while (K3==0&&K5==1&&K4==1){delay(10000);LED1=1;LED2=1;MA=1;MB=1;} }while (K3==0&&K5==0&&K4==1){LED1=1;LED2=0;MA=1;MB=0;while (K3==0&&K5==0&&K4==1){delay(10000);LED1=1;LED2=1;MA=1;MB=1;} } }if (K4==0&&K3==1) //光控反转{ while (K4==0&&K6==1&&K3==1){ LED1=1;LED2=0;MA=1;MB=0;while (K4==0&&K6==1&&K3==1){delay(10000);LED1=1;LED2=1;MA=1;MB=1; } }while (K4==0&&K6==0&&K3==1){LED1=0;LED2=1;MA=0;MB=1;while (K4==0&&K6==0&&K3==1){delay(10000);LED1=1;LED2=1;MA=1;MB=1; }}}}6 系统的不足和改进6.1系统的不足系统的灵敏度不是很高,在模式运行下,有一定的延迟。