一种自动门设计 |
|||||||
申请号 | CN201710125316.7 | 申请日 | 2017-03-04 | 公开(公告)号 | CN106948709A | 公开(公告)日 | 2017-07-14 |
申请人 | 长沙开雅电子科技有限公司; | 发明人 | 不公告发明人; | ||||
摘要 | 本 发明 涉及 单片机 技术领域,具体涉及一种自动 门 设计。本发明的 硬件 组成如图1所示,本发明主要由AT89C51单片机及其外围 电路 、红外检测电路,门行程检测电路、步进 电机 控制电路、故障检测电路、故障显示电路、控制方式切换电路等七部分组成。单片机循环检测红外检测电路和门行程检测电路输出 信号 ,据此产生步进电机 控制信号 , 电动机 带动门运行,当系统检测到控制方式发生改变时,系统进入相应的控制方式。感应探测器探测到有人进入时,将脉冲信号传给主控器,主控器判断后通知 马 达运行,同时监控马达转数,以便通知马达在一定时候加 力 和进入慢行运行。 | ||||||
权利要求 | 1.本发明主要由AT89C51单片机及其外围电路、红外检测电路,门行程检测电路、步进电机控制电路、故障检测电路、故障显示电路、控制方式切换电路等七部分组成;单片机循环检测红外检测电路和门行程检测电路输出信号,据此产生步进电机控制信号,电动机带动门运行,当系统检测到控制方式发生改变时,系统进入相应的控制方式;感应探测器探测到有人进入时,将脉冲信号传给主控器,主控器判断后通知马达运行,同时监控马达转数,以便通知马达在一定时候加力和进入慢行运行。 |
||||||
说明书全文 | 一种自动门设计技术领域背景技术[0002] 社会的进步、科技的前进将人们的生活投入了一个急剧发展的数字化的21世纪。人们生活水平也随之逐渐升高,让人们对美好生活环境追求的欲望也愈来愈强烈,因而各类方便于生活的单片机自动控制系统开始进入了人们的生活。以单片机为核心的自动门系统就是其中之一。因自动门之中使用的芯片和传感器技术的日渐先进,使它的实用性变的更好,功能也愈来愈多,从而让它的应用范围也越来越广泛。使用自动门会给人们带来人员出入方便、节约能源、减少噪音等好处,也令人们的建筑更加的现代化。 发明内容[0003] 本发明涉及单片机技术领域,具体涉及一种自动门设计。本发明的硬件组成如图1所示,本发明主要由AT89C51单片机及其外围电路、红外检测电路,门行程检测电路、步进电机控制电路、故障检测电路、故障显示电路、控制方式切换电路等七部分组成。单片机循环检测红外检测电路和门行程检测电路输出信号,据此产生步进电机控制信号,电动机带动门运行,当系统检测到控制方式发生改变时,系统进入相应的控制方式。感应探测器探测到有人进入时,将脉冲信号传给主控器,主控器判断后通知马达运行,同时监控马达转数,以便通知马达在一定时候加力和进入慢行运行。附图说明 [0004] 图1:设计总结构图。 [0005] 图2:红外线自动门控制系统硬件框图。 [0006] 图3:自动车库门的原理图。 [0007] 图4:自动车库门的仿真图。 具体实施方式[0008] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施仅仅用以解释本发明,并不用于限定本发明。 [0009] 本发明的硬件系统总体设计如图1所示,红外自动门控制系统的硬件组成如图2所示,自动车库门的原理如图3所示,自动车库门的仿真图如图4所示。本系统主要由AT89C51单片机及其外围电路、红外检测电路,门行程检测电路、步进电机控制电路、故障检测电路、故障显示电路、控制方式切换电路等七部分组成。单片机循环检测红外检测电路和门行程检测电路输出信号,据此产生步进电机控制信号,电动机带动门运行,当系统检测到控制方式发生改变时,系统进入相应的控制方式。如门在关门过程中遇到人或其他障碍物时门无条件朝相反方向打开,当系统出现故障,进入故障处理程序。感应探测器探测到有人进入时,将脉冲信号传给主控器,主控器判断后通知马达运行,同时监控马达转数,以便通知马达在一定时候加力和进入慢行运行。马达得到一定运行电流后做正向运行,将动力传给同步带,再由同步带将动力传给吊具系统使门扇开启;门扇开启后由控制器做出判断,如需关门,通知马达作反向运动,关闭门扇。感应自动门的种类很多,在此,仅以平移型感应自动门机作为设计的重点。平移式自动门机组由以下部件组成:(1)主控制器:它是自动门的指挥中心,通过内部编有指令程序的大规模集成块,发出相应指令,指挥马达或电锁类系统工作;同时人们通过主控器调节门扇开启速度、开启幅度等参数; (2)感应探测器:负责采集外部信号,如同人们的眼睛,当有移动的物体进入它的工作范围时,它就给主控制器一个脉冲信号; (3)动力马达:提供开门与关门的主动力,控制门扇加速与减速运行; (4)门扇行进轨道:就像火车的铁轨,约束门扇的吊具走轮系统,使其按特定方向行进; (5)门扇吊具走轮系统:用于吊挂活动门扇,同时在动力牵引下带动门扇运行; (6)下部导向系统:是门扇下部的导向与定位装置,防止门扇在运行时出现前后门体摆动; (7)当门扇要完成一次开门与关门。 [0010] 进一步的,本发明软件主要由主程序、开门子程序、关门子程序、T0中断服务程序、T1中断服务程序、外部中断服务子程序组成。主程序主要是完成系统进行初始化、中断设置等功能。程序设计中设置了一个外部中断0,它保证红外自动门能够在无人操控情况下自动运行,主要功能是当检测到有人出入门时,启动电机,从而实现自动开关门的目的。 [0011] 进一步的,在开门过程中首先进行门状态检测,根据所检测到的信号判断自动门上次停机所处位置。根据检测结果确定门此刻应运行方式,如检测出门是半开状态,门直接转入加速开门的过程。如检测出门是全开状态,门转入延时开门过程。如检测出门是全关状态,那么在检测到有人出人时,门会缓慢打开,之后加速运行,接着减速运行,最后电机停止运转,门由于惯性缓慢关闭。自动门开门后暂停一段时间,然后关门。关门是开门的一个反过程,它经过慢速运行、加速运行、减速运行、惯性运动直至停止这几个过程。在自动门关闭过程中当系统接收到由红外线传感器电路发出的有人出入的信号时,门会重新打开。与开门情况不同的是当在关门过程中检测到故障信号时门会朝反方向运动,将门打开,这样可以排除因自动门遇到障碍物或人身体而产生故障信号使整个系统停止工作的可能。为了运行过程可靠,在以不同速度运行过程中,对运行时间做了安全设置,当在开门状态下检测到运行时间超过安全时问或系统出现故障时,程序转人故障处理程序。 [0012] 进一步的,本发明的功能说明:(1)有人来时(进门或出门)开门。当人走到离门不远的时候时,安装在门上侧的热释红外线传感器信号检测装置检测到有人时,将启动电动机带动传动链开门; (2)无人时关门延迟,当热释收发装置没有检测到有人在离门1m的范围内,将延迟1秒启动电动机带动传动链关门; (3)关门中途来人,立即开门。当启动电动机带动传动链关门时,感应探头突然检测到在离门1m的范围内有人,则立即停止电动机关门,启动电动机带动传动链开门。 [0013] 进一步的,本发明的主程序代码如下:#include #include #define uchar unsigned char #define uint unsigned int sbit P20=P2^0; //实验 sbit KK=P2^3; sbit en=P2^4; sbit rw=P2^5; sbit rs=P2^6; //正反控制 uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //反转uchar code FFZ[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}; //正转uchar code open[]=" Open The Door" ; uchar code close[]="Close The Door" ; void init(); // delay(); void motor_start(); void wcom(uchar com); void wdat(uchar dat) ; void lcd1602_init() ; void delay(uint z) { uint x,y; for(x=z;x>0;x--) { for(y=0;y<10;y++) { nop_; nop_; nop_; nop_; nop_; nop_; nop_; nop_; nop_; nop_; nop_; nop_; } } } void motor_start() { uchar i,xx; uint j; for (j=0; j<12; j++) //转1*n圈 { for (i=0; i<8; i++) //一个周期转30度 { if(KK==1) P0 = FFW[i]&0x1f; //取数据 if(KK==0) P0 = FFZ[i]&0x1f; delay(1000); //调节转速 } } } void main() { uchar temp0,temp1; rw=0; P20=0; init(); lcd1602_init() ; wcom(0x80); delay(10); if(KK==1) { wcom(0x80); for(temp0=16;temp0>0;temp0--) { wdat(open[temp1]); temp1++; } } else if(KK==0) { wcom(0x80); for(temp0=16;temp0>0;temp0--) { wdat(close[temp1]); temp1++; } } motor_start(); } void init() //中断初始化 { IP=0x01; TMOD=0x11; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; EX0=1; IT0=1; ET0=1; ET1=1; TR0=1; TR1=1; } void wcom(uchar com) { rs=0; P1=com; delay(1); //写命令延时可以为1 en=1; delay(1); //写命令延时可以为1 en=0; } void wdat(uchar dat) { rs=1; P1=dat; delay(1); //此处写数据延时可以为1 en=1; delay(4); //此处写数据延时至少为4 en=0; } void lcd1602_init() { en=0; wcom(0x38); wcom(0x0c); wcom(0x06); wcom(0x01); } void exter() interrupt 0 { P20=1; delay(10000); } void timer0() interrupt 1 { } void timer1() interrupt 3 { } 以上所述仅为本发明专利的较佳实施例而已,并不用以限制本发明专利,凡在本发明专利的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明专利的保护范围之内。 |