基于单片机遥控窗帘设计.docx
《基于单片机遥控窗帘设计.docx》由会员分享,可在线阅读,更多相关《基于单片机遥控窗帘设计.docx(27页珍藏版)》请在冰点文库上搜索。
基于单片机遥控窗帘设计
摘要
随着人民生活水平你的不断提高,人们对家庭生活舒适性的要求越来越高,窗帘作为每个家庭的家居必需品,自然也需要满足人们更舒适性的需求,由于有些居住的环境中窗帘比较重,而且长,需要很大的力量才能打开窗帘,很不方便,于是遥控窗帘在最近几年得到发展。
本设计是基于单片机的遥控窗帘,采用8位的AT89S51单片机做控制器,程序采用C语言编程。
利用直流电机正反转,采用无线遥控控制方式,利用无线发射模块把信号发送给单片机,从而实现控制窗帘的开关。
关键字:
单片机;直流电动机;无线遥控;无线发射模块;
1、概述
1.1选题目的和意义
随着社会经济的发展和人们生活水平的改变,宽大窗户的办公和生活建筑越来越多。
这种建筑结构美观,采光良好。
但是,窗户的高度或者宽度超过4米以后手拉窗帘却比较困难。
而现在的放地产商几乎却都没有为用户考虑这个问题,使一些高档住宅反而带来了生活上的不便,解决这个问题的方法是使用窗帘机。
窗帘机是专门为高大的窗户设计的窗帘控制装置,根据功能不同可以分为电动、遥控、自动和智能等多种规格。
电动窗帘机是通过窗帘机上的控制按键操作窗帘开合的一种最简单的窗帘机,仅仅解决了手动窗帘的问题,可还需要人来近距离操作,电动窗帘使一些超高、超宽窗帘的操作变得比较容易。
但是因为这种窗帘技术含量低,基本没有厂家作大规模工业化生产;遥控窗帘机可以远距离操作窗帘的开合,使用更为方便,自动窗帘机具有自动控制功能,可以满足用户各种情况下的使用要求。
1.2选题的要求
(1)进一步熟悉和掌握单片机的内部结构和工作原理。
(2)掌握单片机仿真软件Proteus的使用方法;
(3)掌握键盘和显示器在的单片机控制系统中的应用。
(4)掌握撰写课程设计报告的方法。
2、系统总体方案及硬件设计
2.1遥控窗帘的基本设计原理
基于单片机的遥控窗帘的设计要求如下:
1)控制窗帘的开关、利用直流电机正反转实现。
2)防过卷功能。
3)具有无线遥控和手动按键控制两种功能。
4)能够指示运行状态。
针对设计要求作如下设计,本装置设计以单片机为核心,通过单片机发送相应的信号,利用光耦的隔离作用,保证信号的稳定,利用L298N控制直流电机正反转和停止,来控制窗帘的上升、停止、下降等动作,采用霍尔传感器的磁效应实现最高点、最低点电机自动停止来防止窗帘的过卷,窗帘的操作可通过键盘手动和无线遥控两种方法完成。
使用不同颜色的发光二极管对窗帘的运动方向进行显示,使窗帘这种常用的家居用品更具人性化。
2.2原理框图
图2.2系统原理框图
2.3各功能模块介绍
2.3.1无线遥控控制
利用315M遥控器发出正转、反转和停止信号,与窗帘相连接的控制电路接收到控制信号后,根据遥控命令来控制电机的运行状态,从而达到远距离对控制窗帘的打开、闭合和停止。
对于遥控窗帘来说,遥控器的按键需要一个打开按键和一个闭合按键来控制窗帘的打开和闭合。
遥控器的按键还应加一个停止按键,这样我们就不会为使电机运行而一直按着按键不放。
这样有两个好处:
一是方便用户控制用户在打开或关闭窗帘时不用一直按着按键;二是最大可能地降低遥控器和接收器功耗,这是因为遥控器在按下一次后发送一串数据后就可以立即进入睡眠,对于主机也不用时时检测信号这样就可以更好的降低功耗。
2.3.2手动控制
手动控制是系统的必要补充,当遥控器失灵或者接收控制部分的程序紊乱时,可通过手动控制面板上的控制按键控制窗帘的打开和闭合。
所以需要设计一个打开按键、一个闭合按键和一个停止键。
通过与单片机管脚连接的独立键盘,每次每当按下一个独立键盘,都会向单片机的管脚输送一个低电平。
单片机接收到这样一个信号后,通过已有程序的逻辑判断,向下面的执行部分发出相应的控制信号。
2.3.3输出部分
对于输出部分,本系统由TLP521-4光耦隔离,L298N电机控制芯片以及模拟窗帘部分组成,对于电机模块,本装置采用的是用L298N控制电机的运转。
由于单片机输出电流太小,不能有效作为电机的直接控制,电机的驱动电路,驱动芯片采用L298N,该芯片的输出引脚OUT1、OUT2与步进电机相连接,通过给单片机输出脉冲来间接控制电机各线圈的接通与切断。
2.3.4防过卷模块
这个窗帘是通过电机带动从上往下打开,所以这里需要设计两个霍尔传感器,一个设计在窗帘导轨的正上方,用于检测窗帘是否已完全关闭;另一个设计在窗帘槽的最下方,用于检测窗帘是否已完全打开,从而防止由于电机长时间通电而损坏。
本装置用到的霍尔传感器的介绍:
漫反射光电开关 E18-D80NK 可以检测前方0-80CM(可以调节)障碍物,是机器人避障,很好用的光电传感器。
三线NPN输出型。
这是一种集发射与接收于一体的光电传感器。
检测距离可以根据要求进行调节。
该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多场合。
3、硬件电路的实现
3.1AT89C51单片机简介
单片微型计算机(Single-ChipMicrocomputer),简称单片机。
就是将微处理器(CPU)、存储器(ROM和RAM)、总线、中断系统、定时器/计数器、输入/输出接口(I/O口)和其他多种功能器件集成在一块芯片上的微型计算机。
由于单片机的重要应用领域为智能化电子产品,一般需要嵌入仪器设备内,故又称嵌入式微控制器(EmbeddedMicrocontroller)。
单片机的主要特点如下:
(1)可靠性高
(2)便于扩展
(3)控制功能更强
(4)低电压、低功耗
(5)片内存储容量较小
单片机的出现是近代计算机技术发展史上的一个重要里程碑,单片机的诞生标志着计算机正式形成了计算机系统和嵌入式计算机系统两大分支。
单片机作为最经典的嵌入式系统,它的成功应用推动了嵌入式系统的发展。
3.2315M遥控器简介
数据发射模块的工作频率为315M,采用声表谐振器SAW稳频,频率稳定度极高,当环境温度在-25~+85度之间变化时,频飘仅为3ppm/度。
特别适合多发一收无线遥控及数据传输系统。
声表谐振器的频率稳定度仅次于晶体,而一般的LC振荡器频率稳定度及一致性较差,即使采用高品质微调电容,温差变化及振动也很难保证已调好的频点不会发生偏移。
发射模块未设编码集成电路,而增加了一只数据调制三极管Q1,这种结构使得它可以方便地和其它固定编码电路、滚动码电路及单片机接口,而不必考虑编码电路的工作电压和输出幅度信号值的大小。
比如用PT2262或者SM5262等编码集成电路配接时,直接将它们的数据输出端第17脚接至数据模块的输入端即可。
数据模块具有较宽的工作电压范围3~12V,当电压变化时发射频率基本不变,和发射模块配套的接收模块无需任何调整就能稳定地接收。
当发射电压为3V时,空旷地传输距离约20~50米,发射功率较小,当电压5V时约100~200米,当电压9V时约300~500米,当发射电压为12V时,为最佳工作电压,具有较好的发射效果,发射电流约60毫安,空旷地传输距离700~800米,发射功率约500毫瓦。
当电压大于l2V时功耗增大,有效发射功率不再明显提高。
这套模块的特点是发射功率比较大,传输距离比较远,比较适合恶劣条件下进行通讯。
天线最好选用25厘米长的导线,远距离传输时最好能够竖立起来,因为无线电信号传输时收很多因素的影响,所以一般实用距离只有标称距离的一半甚至更少,这点需要开发时注意。
数据模块采用ASK方式调制,以降低功耗,当数据信号停止时发射电流降为零,数据信号与发射模块输入端可以用电阻或者直接连接而不能用电容耦合,否则发射模块将不能正常工作。
数据电平应接近数据模块的实际工作电压,以获得较高的调制效果。
发射发射模块最好能垂直安装在主板的边缘,应离开周围器件5mm以上,以免受分布参数影晌。
模块的传输距离与调制信号频率及幅度,发射电压及电池容量,发射天线,接收机的灵敏度,收发环境有关。
一般在开阔区最大发射距离约800米,在有障碍的情况下,距离会缩短,由于无线电信号传输过程中的折射和反射会形成一些死区及不稳定区域,不同的收发环境会有不同的收发距离。
3.3电机驱动模块设计
电机是通过L298N来驱动的。
电机的正反转都由L298N的不同输出来控制。
L298N的介绍:
L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。
可以方便的驱动两个直流电机,或一个两相步进电机。
L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。
L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。
4脚VS接电源电压,VS电压范围VIH为+2.5~46V。
输出电流可达2.5A,可驱动电感性负载。
1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。
L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。
10,12脚接输入控制电平,控制电机的正反转。
EnA接控制使能端,控制电机的停转。
图4是L298N功能逻辑图。
In3,In4的逻辑图与图4相同。
由表1可知EnA为低电平时,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。
同为低电平电机停止,同为高电平电机刹停。
ENA(B)
IN1(IN3)
IN2(IN4)
电机运行状况
H
H
L
正转
H
L
H
反转
H
同IN2(IN4)
同IN1(IN3)
快速停止
L
X
X
停止
图3.3L298N逻辑功能表
下图是其引脚图:
图3.3L298N
4、Proteus软件仿真
4.1按键或者遥控控制电机正转、反转、停止
用一下程序实现电机的真反转,并计数
while
(1)//等待中断
{
delay
(2);
if((AK==1)&&(P10==0))//遥控或者按键正转
{
TR0=1;
EX1=0;//关外部中断1
ENABLEA=1;
while(!
CK)
{
P26=1;
P25=0;
}
P26=1;
P25=1;
TR0=0;
EX1=1;//开外部中断1
ENABLEA=0;
}
if((P0==0xf2)&&(P10==0))//遥控或者按键反转
{
EX0=0;//关外部中断0
TR0=1;
ENABLEA=1;
fanzhuanjishuH=TH0;
fanzhuanjishuL=TL0;
while(!
CK)
{
P26=0;
P25=1;
}
P26=1;
P25=1;
TH0=fanzhuanjishuH-TH0;
TL0=fanzhuanjishuL-TL0;//重新设定计数初值
TR0=0;
EX0=1;//开外部中断0
ENABLEA=0;
}
}
}
voidzhengzhuan()interrupt0//按键正转(外部中断0)
{
EX1=0;//关外部中断1
TR0=1;
ENABLEA=1;
while((!
CK)||(P10==0))
{
P26=1;
P25=0;
delay
(2);
}
P26=1;
P25=1;
EX1=1;//开外部中断1
TR0=0;
delay
(2);
}
voidfanzhuan()interrupt2//按键反转(外部中断1)
{
EX0=0;//关外部中断0
TR0=1;
ENABLEA=1;
fanzhuanjishuH=TH0;
fanzhuanjishuL=TL0;
while((!
CK)||(P10==0))
{
P26=0;
P25=1;
delay
(2);
}
P26=1;
P25=1;
TH0=fanzhuanjishuH-TH0;
TL0=fanzhuanjishuL-TL0;//重新设定计数初值
EX0=1;//开外部中断0
TR0=0;
delay
(2);
}
利用一下程序模块来实现防过卷功能
voidfangguojuan()interrupt1//定时器0中断
{
EA=0;
P26=1;
P25=1;
TH0=COUNTTH0;
TL0=COUNTTL0;
TF0=0;
EA=1;
}
利用以下程序来使系统能嵌入不同的窗户上使用
if((P0==0xf8)&&(P10==0))//firstuse
{
EA=0;
TR0=1;
ENABLEA=1;
delay
(2);
while((!
CK)||(P10==0))//窗户关闭后按遥控发送C键或者固定停止键
{
P26=1;
P25=0;
}
P26=1;
P25=1;
COUNTTH0=0xff-TH0;//计算计数初值高8位
COUNTTL0=0xff-TL0;//计算计数初值低8位
TH0=COUNTTH0;
TL0=COUNTTL0;
ENABLEA=0;
EA=1;
}
4.2驱动模块的仿真
仿真程序:
#include
unsignedcharflag=1;
sbitP10=P1^0;//按键停止
sbitENABLEA=P2^7;//选择第一组IN1、IN2
sbitP26=P2^6;//正转IN1
sbitP25=P2^5;//反转IN2
voiddelay(intn)//10ms延时
{
inti=0,j;
while(n--)
{
for(i=0;i<10;i++)
{
for(j=0;j<125;j++);
}
}
}
voidmain(void)
{
EA=1;//开总中断
IT0=1;//边沿触发
IT1=1;
EX0=1;//开外部中断0
EX1=1;//开外部中断1
delay
(2);
if(P0==0xf8&&P10==0)//firstuse
{
ENABLEA=1;
delay(100);
while(P10)
{
P26=0;
P25=1;
}
ENABLEA=0;
}
while
(1)//等待中断
{
delay
(2);
if(flag&&P10==1)
{
ENABLEA=1;
while(flag)
{
P26=1;
P25=0;
delay
(2);
if(P10==0)
{
break;
}
}
ENABLEA=0;
}
flag=1;
delay
(2);
if(flag&&P10==1)
{
ENABLEA=1;
while(flag)
{
P26=0;
P25=1;
delay
(2);
if(P10==0)
{
break;
}
}
ENABLEA=0;
}
flag=1;
}
}
voidzhengzhuan()interrupt0//按键正转(外部中断0)
{
EA=0;
ENABLEA=1;
while
(1)
{
P26=1;
P25=0;
delay
(2);
if(P10==0|)
{
break;
}
}
EA=1;
flag=0;
}
voidfangzhuan()interrupt2//按键反转(外部中断1)
{
EA=0;
ENABLEA=1;
while
(1)
{
P26=0;
P25=1;
delay
(2);
if(P10==0)
{
break;
}
}
EA=1;
flag=0;
}
仿真电路图:
图4.2反转程序流程图
4.3仿真结果
按键K2,电机正转,按键K3,电机反转,按键K1,电机停止。
4.4仿真实验结果分析
将所编写的程序,生成可执行的文件并加载到Protues仿真软件的单片机中,执行软件程序,在执行过程中能顺利的完成所需执行的任务,正常正传、反转、停止,对应不同的运行方式,不同颜色的的灯光显示,绿色对应正转,红色停止,黄色对应反转。
软件仿真时遇到了电机转速过快的问题,窗帘作为家用,一般情况下是低转速生气和降落的,为了解决这个问题,对程序进行了小部分修改,对于L298N芯片,要是驱动的电机慢速启动,只需要对其进行PWM波送信号,送信号的时候,改变电机停转的占空比即可,在程序上做一定的修改后,仿真软件电机便可慢速启动,达到所需要的要求。
在仿真软件上的仿真结果达到要求。
4.5硬件测试
按照设计的电路将硬件电路焊接完毕后,对硬件电路进行了一系列的测试,各种功能都能实现,可通过遥控器或者手动键盘来使电机达到正反转的效果。
为了防止窗帘过卷所添加的霍尔传感器,未在软件仿真中使用,但在硬件测试中,能很好的工作,在测试时遇到的问题是无线遥控的一个控制键不灵敏,需要靠近接收装置才能进行控制。
总体来说,硬件电路和程序都没有问题,能实现设计要求。
结束语
经过两个多月的努力,论文终于完成在整个设计过程中,出现过很多的难题,但都在老师和同学的帮助下顺利解决了,在不断的学习过程中我体会到:
写论文是一个不断学习的过程,从最初刚写论文时对遥控窗帘的问题的模糊认识到最后能够对该问题有深刻的认识,我体会到实践对于学习的重要性,以前只是明白理论,没有经过实践考察,对知识的理解不够明确,通过这次的做,真正做到林论时间相结合。
总之,通过毕业设计,我深刻体会到要做好一个完整的事情,需要有系统的思维方式和方法,对待要解决的问题,要耐心、要善于运用已有的资源来充实自己。
同时我也深刻的认识到,在对待一个新事物时,一定要从整体考虑,完成一步之后再作下一步,这样才能更加有效。
致谢
本论文在仲老师的悉心指导下完成的。
导师渊博的专业知识、严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严于律己、宽以待人的崇高风范,朴实无法、平易近人的人格魅力对本人影响深远。
不仅使本人树立了远大的学习目标、掌握了基本的研究方法,还使本人明白了许多为人处事的道理。
本次论文从选题到完成,每一步都是在导师的悉心指导下完成的,倾注了导师大量的心血。
在此,谨向导师表示崇高的敬意和衷心的感谢!
在写论文的过程中,遇到了很多的问题,在老师的耐心指导下,问题都得以解决。
所以在此,再次对老师道一声:
老师,谢谢您!
时光匆匆如流水,转眼便是大学毕业时节,春梦秋云,聚散真容易。
离校日期已日趋渐进,毕业论文的完成也随之进入了尾声。
从开始进入课题到论文的顺利完成,一直都离不开老师、同学、朋友给我热情的帮助,在这里请接受我诚挚的谢意!
在此我向安徽工商学校学校电子信息专业的所有老师表示衷心的感谢,谢谢你们三年的辛勤栽培,谢谢你们在教学的同时更多的是传授我们做人的道理,谢谢三年里面你们孜孜不倦的教诲!
三年寒窗,所收获的不仅仅是愈加丰厚的知识,更重要的是在阅读、实践中所培养的思维方式、表达能力和广阔视野。
很庆幸这三年来我遇到了如此多的良师益友,无论在学习上、生活上,还是工作上,都给予了我无私的帮助和热心的照顾,让我在一个充满温馨的环境中度过三年的大学生活。
感恩之情难以用言语量度,谨以最朴实的话语致以最崇高的敬意。
最后要感谢的是我的父母,他们不仅培养了我对中国传统文化的浓厚的兴趣,让我在漫长的人生旅途中使心灵有了虔敬的归依,而且也为我能够顺利的完成毕业论文提供了巨大的支持与帮助。
在未来的日子里,我会更加努力的学习和工作,不辜负父母对我的殷殷期望!
我一定会好好孝敬他们,报答他们!
爸妈,我爱你们!
“长风破浪会有时,直挂云帆济沧海。
”这是我少年时最喜欢的诗句。
就用这话作为这篇论文的一个结尾,也是一段生活的结束。
希望自己能够继续少年时的梦想,永不放弃。
参考文献:
[1]谭浩强.C程序设计(第三版).北京:
清华大学出版社,2005
[2]谭浩强.C程序设计解题与上机指导(第二版).北京:
清华大学出版社,1999
[3]余发山.王福忠.单片机原理与应用技术(第一版).北京:
中国矿业大学出版社.2008
[4]单片机原理与应用技术。
中国矿业大学出版社作者:
余发山王福忠
[5]21IC电子网。
[6]单片机----PIC学习网。
[7]XX。
附件
程序遥控窗帘程序清单:
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitP27=P2^7;
sbitP14=P1^4;//
sbitP15=P1^5;
sbitP16=P1^6;
sbitP17=P1^7;//
sbitP33=P3^3;//
sbitP10=P1^0;
sbitP11=P1^1;
sbitP12=P1^2;
sbitP13=P1^3;
sbitguang1=P0^0;
sbitguang2=P0^1;
sbitanjian=P2^0;
sbita=P2^7;
sbitb=P2^6;
sbitc=P2^5;
sbitd=P2^4;
voiddelay(intz)
{
intx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidjiansuz()
{
P10=0;
P11=1;
delay(3);
P10=0;
P11=0;
delay(5);
}
voidjiansuf()
{
P10=1;
P11=0;
delay(3);
P10=0;
P11=0;
delay(5);
}
voidzhongsuz()
{
P10=0;
P11=1;
delay(5);
P10=0;
P11=0;
delay(5);
}
voidzhongsuf()
{
P10=1;