实训 模板.docx
《实训 模板.docx》由会员分享,可在线阅读,更多相关《实训 模板.docx(11页珍藏版)》请在冰豆网上搜索。
实训模板
综合实训报告
基于单片机的光敏窗帘设计与实现
专业:
信息工程
班级:
信息101
姓名:
徐超
学号:
1004020225
指导教师:
杨伟杰
2013年12月
一、课题简介及背景意义
这个课题的主要目的是设计一个自动光控窗帘系统,先由窗帘的太阳能光敏感应器,感知太阳光线的强弱条件,决定窗帘的开与关。
随着生活的提高,时代的进步,人们对居住空间、周围环境有了更高的要求。
单片机控制的自动窗帘系统,既能解决每天手拉开和关上窗帘的不便,又显示出了生活的便捷和档次,对室内设计而言,窗帘不仅具有遮光作用,更有美化功能,它不仅可以协调居室的色彩搭配,而且能够柔化空间造型的线条,营造温馨惬意的环境,随着高新技术及电子器件的发展,光控、温控及遥控窗帘应运而生,给人们的生活带来了很多方便。
同时,也为人们的生活环境以及智能家居的实现提供了依据,为此,研究与设计智能窗帘控制系统具有深远的现实意义,,因此该产品具有广阔的市场前景。
本文讲述了用单片机结合软件来采集光强并控制步进电机转动从而控制窗帘开、闭。
2、系统设计
1、设计思路
采用单片机AT89C52作为系统的核心控制器件,通过光电传感器采集数据(数字信号),经单片机根据接收到的信号来控制步进电机的转动方向及步数,并根据光线变化自动调整窗帘的开度。
考虑到自动窗帘的成本和巨大的市场空间,提出一种方案,应用光控原理工作,光亮在一定亮度窗帘自动打开,光线变暗窗帘自动关闭,实现光控电动自动窗帘的设计,成本低,环保且方便使用。
设计框图如下:
图1光控窗帘设计框图
2、硬件方案
图2硬件框图
(1)光检测模块
选用集成光电传感器ULN3330,当器件顶部受到大于50Lx的光照时就输出高电平,负载上没有电流;当光照不足45Lx时,器件就输出低电平,负载上有电流通过。
(2)单片机模块
选用MCS-51单片机系列,AT89C52单片机。
(3)步进电机的驱动模块
选用步进电机专用驱动芯片L298,采用L298,通过单片机的I/O输入改变芯片控制端的电平,即可以对电机进行正、反转、停止的操作。
(4)步进电机选用
步进电机的步距角选用1.8度/步(四相电机)。
(5)器件选择
●光电传感器ULN3330
ULN3330是美国摩托罗拉公司生产的集成光电传感器。
它是一种新颖的光电开关,将光敏二极管、低电平放大器、电平探测器、输出功率驱动器和稳压电路等五部分都集成在了一块1×1.8(mm×mm)的硅片上,形成一种具有驱动能力的光敏功率器件。
该器件可用于众多使用光敏器件的场合,使光敏器件的应用变得更简单、可靠。
ULN3330接上电源与负载后,不需要其他元件就能工作。
当器件顶部受到大于50Lx的光照时,就输出高电平,负载上没有电流;当光照不足45Lx时,器件就输出低电平,负载上有电流通过。
●MCS-51单片机
✧1个8位CPU。
✧1个片内振荡器及时钟电路。
✧4KBROM程序存储器。
✧128BRAM数据存储器。
✧可寻址64KB外部数据存储器和64KB外部程序存储器的控制电路。
✧32条可编程的I/O线(4个8位并行I/O接口)。
✧2个16位的定时/计数器。
✧1个可编程全双工串行接口。
✧5个中断源、2个优先级嵌套中断结构。
●L298芯片
L298为意大利SGS半导体公司生产的双全桥步进电机专用驱动芯片。
OUT1、OUT2和OUT3、OUT4之间接步进电机;input1~input4输入控制电位来控制电机的正反转;Enable则控制电机停转。
图3L289内部结构图
L298功能引脚模块
ENA
IN1
IN2
运转状态
0
×
×
停止
1
1
0
正转
1
0
1
反转
1
1
1
刹停
1
0
0
停止
表1L298功能引脚
步进电机正转或反转的位置的末端分别安装行程开关,当窗帘运动到末端位置时会碰到行程开关,使开关的常开触头闭合,一旦常开触头闭合,电机就停止正转或反转。
当天亮或天暗时,步进电机会反方向运动,开关的障碍物去除,常开触头恢复,由此实现步进电机的末端停止控制,没有碰到常开触头,电机会一直运转,这样也可使窗帘拉到极限位置,很好的保证了室内私密性的性能。
●步进电机用42BYG(250)系列混合式步进电动机
表2步进电机规格
驱动方式
恒流斩波驱动
励磁方式
2相励磁(四相四拍运行).可正反向旋转
转向
按AB-BC-CD-DA顺序通电
额定电流(单相)
0.4ADC
额定电压
12V
步距角
1.8°,四拍运行时步距角为θ=360度/(50*4)=1.8度
绝缘等级
B级绝缘
(6)电路连接
L298的输入引脚与单片机的P1.0~P1.3口分别相连,IN1~IN4引脚从单片机输入控制电平,控制步进电机的正反转,OUT1~OUT4分别接步进电机的四个相线,ENA、ENB接控制使能端控制步进电机的转、停。
当ENA、ENB同时接高电平时L298芯片是工作的,即使能端有效,控制IN1~IN4引脚电平的频率即可控制步进电机的转速。
芯片的输出引脚分别接2个续流二极管,起到保护电路作用。
芯片的VCC和VSS引脚与地必须连接100nF电容器,图中0.1μF和100μF电容并联即为100nf。
对本自动系统的设计还必须满足用户想要窗帘停的某一位置停下来的需求,为此设计了步进电机停止开关,为简化程序,更加利用L298芯片本身的功能,本文采用了一个单刀双掷开关SW1,开关一端接使能端ENA、ENB,另两端一段接+5V的电源,为芯片使能端提供高电平,另外一端接地,限制使能端的使用,当开关接到地时,两个使能端接地,L298芯片不再起作用,电机停止运动,由此达到停止的目的。
电机控制窗帘的两个极限位置------窗帘的两端,要能使电机停下来,这一问题的解决有两种方案,一种是计算步进电机在窗帘开合长度中所要转的圈数,根据步进电机本身的步长计算电机转数,写入程序里进行控制,还有一种是利用行程开关进行控制,当窗帘走到极限位置时会碰到行程开关,使行程开关闭合,这里的行程开关是接地和使能端的,开关闭合就是关闭使能端,电机停止转动,考虑到实际的应用情况,选择第二种方案,既方便又准确。
行程开关控制步进电机极限位置停止:
天亮时,光敏传感器接受到高电平,依程序所设步进电机正转,顺时针转动,窗帘以某一速度被慢慢拉开,走到极限位置时,窗帘碰到右端的行程开关SW3,开关闭合使能端关闭,电机停止转动。
当天暗时,光敏传感器输出低电平,电机要逆时针转动了,窗帘打开,障碍物去除,开关断开,使能端打开,电机反转,同样电机反转碰到左边的行程开关SW4时,开关闭合,使能端关闭,电机停止转动。
图4。
。
。
。
。
3、软件方案
图5主程序流程图
(1)程序代码
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeffw[]={0xfc,0xf6,0xf3,0xf9};//2相励磁正转表
ucharcoderev[]={0xf9,0xf3,0xf6,0xfc};//2相励磁反转表
sbitk1=P3^0;//定义K1开关
uintm=1;
voiddelay(uintx)//延时函数
{
uchari;
while(x--)//i=x即延时约x毫秒
for(i=0;i<60;i++);
}
/********以下是步进电机正转函数********/
voidsetp_motor_ffw(ucharn)
{
uchari,j;
for(i=0;i<5*n;i++)//转n圈
{
for(j=0;j<4;j++)
{
P1=ffw[j];//取正转数据
delay(250);//转一个角度停留的时间,可调节转速
}
}
}
/********以下是步进电机反转函数********/
voidsetp_motor_rev(ucharn)
{
uchari,j;
for(i=0;i<5*n;i++)//转n圈
{
for(j=0;j<4;j++)
{
//if(k2==0)break;
P1=rev[j];//取反转数据
delay(250);//转一个角度停留的时间,可调节转速
}
}
}
/*主程序*/
voidmain()
{
while(m--)//电机转m圈
{
if(k1==1)//K1送入高电平
{delay(10);
if(k1==1)
{
setp_motor_ffw(3);//调用电机正转函数
}
}
else//K1送入低电平
{
delay(10);
setp_motor_rev(3);//调用电机反转函数
}
}
}
3、心得体会
此次报告的准备时间较短,我翻阅了一些类似的课题资料,经过阅读比较,综合自身能力,确定下这个方案。
通过这次准备,巩固了我的单片机知识,希望在完成毕业设计的时候,按照此方案可以顺利完成。