基于单片机的自动门控制系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的自动门控制系统
毕业设计课题“基于单片机的自动门控制系统”由黄胜麟、赵耀二人共同完成,其中本人黄胜麟主要负责硬件设计、器件规格选取、产品功能的设计、个别软件模块设计。
1.系统设计说明
本毕业设计旨在开发基于单片机的自动门控制系统,本次毕业设计系统以单片机STC89C52RC作为主要控制元件,使用红外热释电人体感应模块来实现对人体发射的红外线进行感知,利用外界按键来实现对自动门的开门和关门,本系统预留又蓝牙接口方便本系统进行升级,方便通过手机来对自动门实现开门和关门,通过本次自动门系统设计,实现了人们对自动门系统的控制与管理,从而实现了对自动门系统的实用、安全、可靠等等目的。
1.1 系统设计说明
本次毕业设计系统旨在开发自动门控制系统,本次设计系统核心元件是以STC89C52RC单片机作为系统的主控芯片,本系统利用了红外热释电人体感应器实现自动门感知控制,用uln2003a作为5线4相电机的驱动程序,这样可以更好的掌握开关门的进程,方便调节。
在红外感应模块的感应范围内,如果检测到人的时候会让感应器输入一个高电平,让主控制系统进行处理之后发出相应的指令让驱动系统驱动电机运转,带动齿轮让门打开,同时运行的还有指示灯模块,会随着门开的范围,灯依次点亮,在延时期间内没有检测到人,就让门自动关闭,此时指示灯也会随着闷得关闭状态依次关闭。如果在门关闭期间内检测到人主程序中的延时就会重新计算并且自动门立即反向开门,随后自动门则会再次进入延时状态,在此循环,直到没有检测到人则关门,在开门和关门的时候,会伴随着相应的声音来提示行人注意安全。本次毕业设计自动门控制系统预留有蓝牙接口,可以通过蓝牙远程控制自动门的开门和关门,方便自动门升级。通过本次自动门系统设计,实现人们对自动门的控制与管理,从而实现通过红外感应器来控制自动门的开门和关门,让整个系统运行起来比较便捷、实用、可靠、安全、节能等作用。
1.2 系统设计的思路及功能说明
整个毕业设计自动门控制系统由STC89C52RC单片机为核心,以外部按键作为人机交互界面,红外热释电人体感应器、步进电机接口、电源接口等作为外围接口。本次设计中使用小灯的点亮和熄灭来显示自动门运行的状态。
系统框图如1-1所示。
各个模块实现的功能具体如下:
(1)门状态检测:本次毕业设计自动门控制系统的状态,我们设置了三种状态;分别是:关门状态、开门状态、延时状态。
(2)红外热释放电人体感应器:利用红外热释电人体感应模块探知
人体的存在,并输出相应的高电平给控制系统,让控制系统输出相应的指令。
(3)按键控制功能:本次毕业设计作品中,我们分别设置四个按键;分别实现:自动模式按键、手动模式按键、手动开门按键、手动关门按键。
(4)单片机STC89C52RC:本次毕业设计的控制单元,我们将编写好的程序导入单片机STC89C52RC,然后单片机STC89C52RC采集输入的信号,并且根据相应的输入信号来控制着自动门的开门和关门。
(5)提示灯:本次设计显示单元;用来显示自动门的运行状态。
(6)电机驱动ULN2003A:本次毕业设计的单片机不能够为自动门的电机提供足够的电流,所以我们必须要用专门的电机驱动来驱动电机。
(7)电机:本次毕业设计的动力装置,为自动门提供动力,使自动门开门和关门。
(8)语言播放器:本次毕业设计的语言播放单元,用来提示行人自动门的运行状态。
2. 自动门控制系统---软件模块设计
2.1 单片机核心元件的选取
PLC与单片机系统的选用的不同:
1、对于哪些重复极少的项目:使用PLC方案相对来说比较合理,而且生成速度快,可靠性好,成功率也很高,但就是成本较高。
2、对于哪些重复多而且量又大的项目,使用单片机方案比较合理,而且效率相对较高、成本也很低;但缺点就是:系统不稳定、可靠性不好;解决它的缺点需要有相当丰富的行业经验才可以。最好的策略就是在单片机系统中嵌入PLC系统的一些个别功能,这样有助于提高单片机的稳定性。
故此,考虑到本次设计参照的是工业自动门的方案来执行,考虑到工作量相对比较小,工程也没有那么大,和毕业设计资金上等等因素。经综合考虑后;本次毕业设计决定选择使用单片机作为本次设计控制系统的核心元件。
单片机的核心控制器件有:STC89C52和AT89C51;单片机AT89C51具有完整的计算器所需的基本组成模块,并且指令的系统功能很强大,而且执行速度也很快;STC89C52、AT89C51的存储不一样,AT89C51存储空间是4k,STC89C52存储空间是8k,STC89C52比AT89C51多了一个定时器;在本次毕业设计中使用到相关引脚、使用到的相关功能基本和AT89C51是一样,而且STC89C52与单片机开发板配套上又能够节约了不少成本;综合考虑:本次毕业设计首选STC89C52作为核心控制器件,STC89C52的实物图下图如2-1所示。
2.1.1 STC89C52引脚具体方案
* XTAL1和XTAL2接外部晶振,作为计时器。
* RST为复位按钮。
* P1.0~P1.6接口:连接的是步进电机驱动模块。
* P0.1~P0.7接口:分别接的8个发光二极管作为自动门的指示信号灯。
* P2.0接口:自动模式显示灯
* P2.1接口:手动模式显示灯
* P2.2接口:手动模式下手动开门指示灯
* P2.
3接口:手动模式下手动关门指示灯
* P2.4接口:模拟门前有人经过
* P2.5接口:模拟门后有人经过
* P2.6接口:连接语言播放器1
* P2.7接口:连接语言播放器2
具体的引脚如图2-2所示:
2.2 步进电机
2.2.1 驱动电机的选择
本次毕业设计中最重要的一个环节就是驱动单元电机部分,在选择电机的时候需要考虑到控制电机在运作自动门的时,必须要求电机做到:运行保持平稳、直线运动、高效性、安全性等等。综合考虑后;本次毕业设计在动力装置方面选择使用的是步进电机。
步进电机其特点:(1)转动固定角度的执行机构;(2)控制系统可选择采用过控制信号频率来控制步进电机的转速;也可以选择采用控制脉冲数量来控制旋转角度,這样精确的定位也能够达到控制电机转速的目的;(3)步进电机没有积累误差等特点。
小型步进电机如图2-3所示。
2.2.2 驱动控制系统组成
五线四相步进电机的控制由环形脉冲、信号分配、功率放大器等组成,其流程图如图2-4所示:
数字化控制步进电动机,其控制信号由单片机STC89C52产生的。步进电机基本控制作用如下:
(1) 反应式五线四相步进电动机控制换相顺序
五线四相步进电机通电换相的过程称为:脉冲分配;其通电换相的顺序是一个非常严格的过程,其中有4拍驱动和8拍驱动,之间的差别是转动的角度大小,本设计采用了8拍驱动驱动表格如下:正转表格如下:unsigned char code zheng[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; 反转表格如下:
unsigned char code fan[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};通常五线四相电机的通电换相正序为A-AB-B-BC-C-CA;其反序为A-CA-C-BC-B-AB;五线四相步进电机一共有八个通电状态分别接P1接口输出控制信号,0代表的是绕子通电,1代表的是绕子断电,所以可以选用六个字来代表六个通电的状态。
这六个字的代表如表2-5所示:
(2)通电状态 P1.2(C) P1.1(B) P1.0(A) 控制
(3) 控制电路如图2-6所示:
2.2.3 步进电机运行方案
步进电机开门和关门的过程总的分为8个步骤,每一个步骤正向或者反向转360度,每完成一个步骤后都会由单片机检测红外模块信号,然后在继续控制电机正转和反转的每一步,从而达到安全开门或者关门的目的。
2.3 感应器
2.3.1 感应器的选取
本次毕业设计选用的传感器:红外热释电人体感应器。
红外热释电人体感应器的优点是:(1)反应灵敏,在它的检测范围内,都能检测到;(2)其检测范围可以调整:在高级的酒店或者办公楼等地方,可选用一些敏度高的感应器;在人行道边上的餐厅或者商城等地方,或者经常有行人的地方都可选用灵敏度窄区域的感应器。
本次毕业设
计的感应器为了增加其的探测距离,在感应器前增加一个菲涅尔透镜;在有人进入感应器检测的范围内的时候,由于人体的稳定与环境辐射温度是不同的,从而就会一个产生温度差,这样感应器就会输出一个信号给控制系统;当人进入检测区域内而没有移动时,周边的环境温度就不会发生变化,感应器就没有发出相应的信号给控制系统,所以感器能够在检测范围内检测到人体或者动物的活动并反馈给控制系统。
红外热释电人体感应器内部电路结构如下图2-7所示。
红外热释电人体感应器内部结构如下图2-8所示。
红外热释电人体感应器实物图如2-9所示。
感应器组成模块有:外壳、PZT、FET、滤光片等等模块。感应器的滤光片会对阳光、荧光灯的发射的光实现滤光;短波长的范围在5mm以下才能够有效。感应器的电元件PZT能够将波长在8mm-12mm红外信号的微弱化转成一个电信号;感应器的电元件PZT辐射照面会覆盖有比较特别的非热释电红外探头;其具有以下优点:价格低、功耗小、隐蔽性强、自身不发生辐射等等。综合考虑:在本次毕业设计在功能的完整下,考虑到制作成本等问题,故选用热释电红外传感器作为本次毕业设计的传感器。
2.3.2 红外模块调整方案
1、自动控制模块HC-SR501的特点:红外模块检测的灵敏度高,可以将灵敏度感应范围调整为感0-3米。
2、红外模块元件本身是有一个不可重复的触发方式,现在将其修改为可以重复触发的方式:在红外模块感应器在其感应范围内如果检测到人的发射的红外线就会输出高电平,在延时期间,如果在红外模块感应范围内还检测到人的信号,则输出高电平持续不变,直到在红外模块感应范围内检测不到人的信号的时候才延时将高电平转变成低电平。
3、延迟时间设置为:2s,为了保证在延时时间期内单片机每次接收红外模块信号都是正确,保证控制系统可靠的处理每一次信号。
2.4 软件系统设计
2.4.1 程序框架设计思路
在本程序中,主要分模式,延时程序和电机状态三大模块。程序开始时,应该先扫描键盘,看是否有输入,如果有,则选择相对应的程序模块,执行与之相对应电机操作,正传或者反转,每种模式之间的操作要相互牵制不能出现混乱,否则会影响程序的执行,导致系统事故。由于本设计没有使用外部中断,所以在程序执行中延时需要用程序的循环次数来大概计算当前的系统时间,作为延时。电机状态时通过循环在P1.0-P1.7之间执行正传表格和反转表格,这样提供给电机相应的脉冲,然后在电机驱动模块下,电机开始工作,正传或者反转。各模块牵制,比如在自动模式下,不能使用手动
开门或者时手动关门,在手动模式下,不能检测传感器信号,或者时检测到,但是对程序无影响,在开门关门的状态上加上指示灯模块的输出指示灯。让整个程序显得更加通顺,完整。
2.4.2 软件设计方案
目前,随着半导体技术和大规模集成电路的快速发展,很多的硬件工作都是由程序来完成,如在信号处理、数字滤波等等方面。为了设计出一套完整的智能化的自动门控制系统,除了必要的硬件支持外,还需要有软件的辅助。为了本次设计的自动门控制系统能够正常稳定的运行,我们必须要有实际系统的硬件和软件部分组合。
在智能控制方面,市场上广泛的应用c语言来编写,其主要原因是c语言具有较好的可读性,并且便于各个系统之间移植。还有c语言的标准比较明确,这能让系统上的c语言程序完整的应用到另一个系统上,这可降低系统的开发成本。
2.4.3 程序运行流程图
2.4.4 主程序分析
void main()
{
uchar value=0;uchar x;uchar y; //设置初始值
key_can1 = 1;key_can2 = 0;
hw1=0;hw2=0;
while(1)
{
key(); //按键扫描
if(key_can1 == 1||key_can2 == 1)
{
if(key_can1 == 1) //自动模式
{
flag_z_f = 0;
led3 = 0; //指示灯
led4 = 1;led1 = 1;led2 = 1;
}
if(key_can2 == 1) //手动模式
{
flag_z_f = 0;
led4 = 0; //指示灯
led3 = 1;
}
if(key_can2==1&&key_can == 3&&key_can3==0) //手动开门
{
flag_z_f = 1; //电机顺时针转
led1 = 0; //指示灯
led2 = 1;
}
if(key_can2==1&&key_can == 4&&key_can3==0) //手动关门
{
flag_z_f = 2; //电机逆时针转
led2 = 0; //指示灯
led1 = 1;
}
if(key_can1==1&& y==1)
{
flag_z_f = 2;
}
}
if(key_can1==1) //自动模式
{
if((hw1 == 1)||(hw2 == 1)) //红外信号检测是否有人
{
flag_z_f = 1; //顺时针 开门
flag_zt=0;
y=0;
flag_sj =10; //回复初始值
}
if(flag_zt==1&&y==0)
{
for(value=flag_sj;value>=1;value--) //延时 开门后的等待时间
{
delay(50);
for(x=0;x<8;x++) //指示灯闪烁
{
delay(100);
P0=deng[x];
}
}
y=1;
delay(10);
}
}
bujindj(); //电机执行程序
}
}
2.5 模型展示设计
2.5.1 模型元件
为了更好的展示自动门,在本次设计中我们组做出一个自动门模型,制造模型的元件有:人体红外感应模块、五线四相步进电机、若干条彩色杜邦彩排线、LED显示灯、小喇叭、彩色图片若干。
2.5.2 自动门模型的选择
现实生活中自动门的形式分为很多种:
按照其启动的形式来分:推拉自动门,平开自动门,旋转自动门,弧形自动门等等。
(1)推拉门:分为单开推拉自动门、双开推拉自动门、重叠双开推拉自动门等等。
(2)平