韩改宁,李永锋,任康
(1.咸阳师范学院计算机学院,咸阳712000;2.西北机电研究所,咸阳712000)
电梯作为我们生活中出行的一部分,人们的出行已经离不开它,在这个科技迅速发展的时代,各种技术的不断创新,电梯的更新换代是一个必然趋势。所以在一定程度上,我们的关注点聚焦在电梯的安全性、舒适性和美观性,给人们提供更好的服务。绿色化、降低耗能、智能化是未来电梯发展的主旋律。传统的电梯控制系统采用继电器逻辑控制线路,具有接触点繁多,多功能性和灵活性差,接线复杂,这种线路容易出故障、维护不便、寿命短等缺点,给后期维修带来了很大的挑战[1]。
可编程逻辑控制器(Program Logic Control,PLC)和微机组成的电梯逻辑控制系统快速发展[2],PLC采取大量的抗干扰措施,不但易于使用而且易于扩展,但PLC的针对性强,从而导致PLC和设备都是一一对应的,从而导致价格比较昂贵,得不到广泛应用。由于单片机有功能强大,易于扩展,价格便宜等的优点,所以由单片机设计的控制系统可以随着设备的更新而不断完善,实现设备的升级会满足对控制系统的各种要求[3]。由于其在价格上面相比可编程逻辑控制器而言,具有很大的优势,将意味着电梯可以大量的应用于任何地方,为人们的生活带来很大的便利。
基于51单片机的电梯控制系统采用STC89C52单片机作为控制器,采用28BYJ-48永磁式步电机控制电梯的上下运行,8×8的点阵作为显示模块,采用按键组成键盘模块,采用Speak蜂鸣器与紧急按键组成报警模块,USB移动电源作为供电装置。总体构成框图如图1所示。
图1 系统功能框图
(1)控制器模块
单控制器选择STC89C52是一种带8K字节闪烁可编程可擦除只读存储器[4]。该单片机具有输入输出接口、定时中断器等资源,可以满足本设计的要求。
(2)显示模块
LED点阵显示屏由大量的半导体发光二极管为像素点排列组成。具有低功耗、超高密度、视角大、引脚少、可靠性强、耐湿、耐冷热、混色好、耐腐蚀、通透性高等特点。它按组成的发光二极管的个数可分为4×4、4×4、5×7、5×8、8×8、16×16、24×24、40×40 等,本设计显示模块选择了8×8的LED点阵显示,该显示器用来接收单片机发送的数据信息,根据相应的显示当前楼层和电梯运行方向等提示信息。
(3)电源模块
将室压220V的电压转化为开发板可用的5V电压,从而用来给所需的硬件设备供电力。
(4)电机控制模块
本设计采用步进电机来实现电梯的上升和下降控制。步进电动机用脉冲信号进行控制,以通过控制脉冲数来控制角位移量实现精确定位[5]。脉冲频率决定步距角和转速,不受其他因素的影响。
(5)键盘模块
本设计实现一个六层控制电梯,按键数量少,所以采用独立式键盘,即每个按键单独占用一根I/O口,I/O口反映的信号即对应按键的状态,独立优点就是编程简单,可以利用软件识别功能来处理各种键的请求。
基于MCU的多层电梯控制系统设计与开发,硬件部分主要包括控制器、显示电路、电机驱动电路、按键模块电路、应急报警模块电路等。
通过市场调研,考虑性价比的前提下,在本次设计中选择的元件型号为:
(1)主控模块:MCS-51。
STC89C52是MCS-51系列的一款。如图2所示,单片机主要由中央处理器、ROM、RAM、定时器/计数器I/O等部件组成[4]。其内部框图如图2所示。
图2 STC89C52原理图
(2)显示模块
本设计采用8×8的点阵显示,因为它的功耗低,性能稳定,使用起来非常方便。内部结构如图3所示,图3中所示晶格中的每个LED都放置在行和列线的交点处。当相应的列被设置为一个级别并且一行被设置为0时,对应的二极管被点亮。外观如图3(b)所示,引脚如图 3(c)所示。
图3 8×8LED点阵图
本设计中,LED点阵与STC89C52单片机的引脚连接参考文献[6]。8×8点阵引脚点阵的背面引脚图3(c)所示,共两排各8个引脚,数字0-7代表着点阵的行线,0表示第一行的8个发个二极管;A-H代表着点阵的列线,A表示第一列的8个发光二极管。STC89C52单片机P0口与LED点阵的行连接,P2口与51单片机的列连接。
(3)电机控制模块:28BYJ-48永磁步进电机。
STC89C52不能直接驱动步进电机,因此需要由功率电路来扩展输出电流以满足被控元件的电流、电压。ULN2003达林顿晶体管属于可控大功率器件。它是一个7路反向器电路,即当输入端为高电平时,ULN2003输出端为低电平,当输入端为低电平时ULN2003输出端为高电平。本设计通过P3.0、P3.3控制每个线圈的开启和关闭,打开时P3.0和P3.3均为高电平,将P3.0和P3.2(或P3.1和P3.3反转)可切换至低电平,以达到驱动步进电机运行。电梯上行电机正转,电梯下行电机反转,电机每转一圈电梯移动一层。本系统电机控制电路如图4所示。
图4 电机控制电路图
(4)按键模块电路
本设计采用独立式键盘,6个楼层设计6个独立按键,分别连接到P1口的P1.2-P1.7的6个引脚上。工作原理:未按下,对应端口为高电平;按下键,对应端口为低电平。
表1 按键表
只有(P1)≠0FFH,则有按键按下,或者将(P1)的值取反(CPL),则只有(P1)≠00H,则有按键按下。JZ rel或者JNZ rel指令即可实现判断。
(5)应急报警模块电路
本设计采用蜂鸣器作为报警系统,方便又简单。如果电梯在运行过程中遇到紧急情况,用户可以按下按键进行报警[6]。同时电梯还会停在最近的楼层,并禁止用户对电梯按键操作上下楼,以免电梯再次出现意外。等救援人员到达,并修复故障后,按下复位按键,电梯恢复正常运行。蜂鸣器连接着三极管的发射极,三极管能以基极电流微小的变化量来控制集电极电流较大的变化量,从未体现了三极管具有放大电流的功能。集电极接电源,排母接插口和电源,三极管的基极接一个1K的电阻过去再接单片机的P3.6。电路如图5所示。
图5 应急报警图
采用MCS-51系列STC89C52单片机作为控制器,步进电机用于电梯控制,8×8 LED点阵作为显示模块,在Protues下设计各个模块之间的原理图如图6所示。
硬件整体连接将STC89C52单片机、28BYJ-48永磁式步电机、8×8 LED点阵显示屏模块、SPEAK蜂鸣器等组合到一块,焊接实物如图7所示。
图6 STC89C52单片机电梯控制电路原理图
图7 硬件整体连接
本系统的控制,以C语言实现的控制程序,按模块储存在STC89C52单片机的内部存储器中,无需单片机扩展存储器接口,简化了系统硬件结构,减低了成本,同时又提高了系统的稳定性。
基于多层电梯控制系统,包括键盘输入模块、LED点阵显示模块、电机控制模块和应急报警模块。电梯控制过程分为两部分,电梯外的面板控制和电梯厢内的面板控制。电梯内外控制原理及流程相同,在实际进行电梯控制是两个控制是嵌套融合的。本设计模拟电梯控制,由于按键数量有限,分别单独对内外面板进行控制设计。控制过程:系统初始状态或者复位后,电梯设置在1楼(LED点阵显示“1”)。当按下楼层按键,如果目标楼层高于当前楼层时,控制器判断处于上楼状态,控制LED点阵显示“↑”,同时LED点阵显示电梯所处楼层数;如果目标楼层低于当前楼层时,控制器判断处于下楼状态,控制LED点阵显示“↓”,同时LED点阵显示电梯所处楼层数。通过控制步进电机的正反转来控制电梯的上下运行,电梯正转一圈,电梯上一层,否则,电梯下一层楼。如果有紧急情况则可启动紧急按键进行报警进行应急,无论电梯处于何种状态,紧急按键优先级最高,实现应急报警。电梯内、外的软件流程图如图8所示。
图8 软件流程图
整个系统运行过程设计为:当启动电梯后,判断是否呼梯,如果有,判断是否梯外按键,如果不是,再判断是否梯内按键,如果有按键,直接计算目标楼层与当前楼层,如果目标楼层与当前楼层相同,打开电梯门,如果目标楼层高于当前楼层,电梯上升,如果目标楼层低于当前楼层,线条下降,电梯再运行过程中,不断判断进行楼层检查,直到到达目标楼层,电梯停止,打开电梯门,最后判断电梯是否运行,如果运行继续返回检查按键,如果不运行就结束。流程如图9所示。
图9 电梯总体控制流程
应急报警模块设计流程,该模块采用外部中断控制,外部中断优先级高,当有按键请求,立即中断响应,蜂鸣器发声,报警指示灯亮,电梯无论上升还是下降,选择最近楼层停止运行。控制流程如图10所示。
图10 电梯应急报警控制流程
仿真测试中,电路通过Proteus设计,控制程序通过Keil C设计,整个仿真测试结果如图11所示。
图11 仿真运行效果图
将Keil C下编写好的控制程序编译生成.hex文件,然后根据前面选型的芯片及元器件,按照原图了进行焊接,再将各个模块连接好,最后将.hex文件烧写到STC89C52单片机中。运行效果如图12所示。
图12 实物电路测试图
本设计的电梯控制系统只单独针对电梯外的控制或者电梯内的控制,后续将其电路及控制系统扩展为多功能的室内外电梯控制系统。
针对多层和高层上下楼问题,利用STC89C52单片机设计的电梯控制系统,采用步进电机控制电梯上升和下降,LED点阵显示技术、键盘及应急报警控制等,实现了从输入到控制和显示的过程,该系统成本低、操作简单方便。电梯的安全性是电梯控制系统至关重要的,利用单片机控制,电路原理简单,后期维护与故障检测容易,降低人力成本;同时该系统可以应用于其他需要电机控制的电梯厢场所。