基于AT89C51的多层电梯控制系统

news/2025/2/1 23:54:03/

基于AT89C51的多层电梯控制系统

摘要:本文介绍一种基于AT89C51的多层电梯控制系统,组合了电机、键盘输入、数码管显示和报警等模块,可以有效实现楼层呼叫、梯内楼层选择、同向响应、上下运行和开关门等常用功能。本系统硬件设计合理可靠,并结合软件编程,不仅可以保障使用者的安全舒适,同时为管理者提供极大的便利。
关键词:电梯控制 单片机 仿真

0 前言

电梯是一种垂直方向的交通运输工具,在人民的日常生活中不可缺少。对于电梯呼叫、运行等常用功能已经很好地被人们掌握并使用,但对于电梯的控制方面的探索却在不断成为焦点。不少老旧住宅和仓库仍采用继电器逻辑控制电路,容易出现故障、维护不方便、使用寿命短等问题[1]。因此大部分的研究放在与继电器控制相比有巨大优势的PLC(Programmable Logic Controller,可编程逻辑控制器)控制上[2-4],并且有效提高了电梯运行平稳性与安全性。但PLC的针对性强,导致PLC和设备都是一一对应的,从而导致价格比较昂贵,得不到广泛应用。由于单片机有功能强大,易于扩展,价格便宜等的优点,因此单片机在不同电梯使用环境使用中都有较强的适用性。此外,FPGA器件[5]或者Arduino[6]作为主控制芯片的电梯控制系统也很常见。本文选择与五层电梯控制复杂程度相适应的AT89C51单片机作为主控部分,使用L296芯片驱动门系统和桥厢四相步进电机,并建立仿真以验证控制效果。

1 系统的组成与功能

系统采用AT89C51单片机作为主控电路部分,使用L296芯片驱动门系统和桥厢四相步进电机。图一中,AT89C51单片机配合其它模块,使得本系统除了实现楼层呼叫、梯内楼层选择、同向响应、上下运行和开关门等功能,也实现了数码管显示、上下行指示、紧急开关、紧急报警等增加实用性和安全性的功能。
在这里插入图片描述

图1 设计总体图
系统模拟了每层楼高度为4.5m、5层楼的电梯使用环境。为了合理利用IO口资源,系统采用4X4键盘,来完成楼层呼叫和梯内楼层选择及开关门等16个指令。可以高效地满足多个人在到达不同楼层的需要,另外电梯也采取先加速、再匀速、后减速的运行策略,可以将人安全舒适地送往不同楼层。

2 系统的设计分析

2.1 硬件设计
本系统采用Proteus 8 Professional进行硬件电路的仿真设计,在图2中,包括主控电路、按键电路、显示电路、指示电路、警报电路以及电机控制电路。
在这里插入图片描述

图2 设计仿真图
2.1.1主控电路
AT89C51一共4组32个IO口,可以在符合本系统要求的情况下,进行一些拓展工作的研究,使得芯片得到合理的利用[7]。表1是对于单片机IO口资源的具体分配情况,可以看出单片机很好地满足了设计的需要。
表1 单片机管脚资源分配
IO口 实现功能
P0 电机控制
P1 蜂鸣器、指示电路、使能和开关
P2 数码管显示电路
P3 4X4键盘

2.1.2显示电路与上下行指示
图3左侧,数码管显示当前楼层;图3右侧,发光二极管显示当前电梯运行状态,电梯静止则二极管不发光。
在这里插入图片描述

图3 显示电路与上下行指示电路
2.1.3键盘电路
在图4的4X4键盘中,Sn代表用户在n层呼叫电梯,表示用户需要上楼;Xn代表用户需要下楼,并在n层呼叫电梯;Nn、K、G、J设置在梯内,分别表示梯内用户需要到n层、开门、关门及警报等功能。
在这里插入图片描述

图4 键盘电路
为了达到实用美观,可将4X4个输入拆解拼装为图5的梯外按键设计和图6的梯内按键设计部分。

在这里插入图片描述

图5 梯外按键设计
在这里插入图片描述
图6 梯内按键设计
2.1.4电机模块
图7是电机模块,在本模块中电路用L298驱动门系统和桥厢四相步进电机,在硬件电路设计时L298输出端与单片机四相连接时上下分别连接了四个续流二极管。这样设计的目的是为了将步进电机的反向电动势所产生的电流分流到地或电源正极,不损坏L298,保证芯片正常工作。虽然图中所有电源同接一个高电平,但它们所需要的电压大小是不一样的,部分接口需要独立供电[8]。
在这里插入图片描述

图7 电机模块电路
2.2 软件设计
按照图9的逻辑方框图,在Keil5开发换环境,用C语言进行编程,利用键盘扫描获取用户输入,并进行相应反应。到达指定楼层发出提示音,如果超重(按钮模拟压力传感器输入),电梯将会警报,直至压力在正常范围则开始运行,如果梯内或者梯外人员触发相应紧急按钮,会发出警报,并且电机会停止运转。此外,编程还注意到了电梯运行过程中开关门,电梯未关门进行运行等问题,并对其进行规避。而且,为了安全起见,在电机进行旋转之前,都会进行判断是否有紧急按钮按下。在优先级判断和电机控制中,使用了一些算法思路进行编程,以达到理想的效果。
2.2.1优先级判断
优先级判断有两个原则:第一,电梯按某一个方向运行时,优先响应该运行方向的按钮输入;第二,同一方向有多个按钮同时呼叫时,优先响应最近的楼层。
2.2.2电机控制
根据优先级的判定结果更新Layer(需要运行的楼层数)和Way(运行方向),然后根据两个值进行运行。由于每一楼层高4.5m,那么电梯最小运动距离为4.5m。考虑到宜人性,电梯采取0.75的加速度,先加速到1.5m/s,运动到0.75m处,然后以1.5m/s的速度匀速运动2s,行至3.75m处,最后以同样加速度减速到0m/s,到达相邻楼层。如果需要运动多个楼层,只需使得中间匀速环节时间相应变长即可。当进行匀速运行的过程中会对按键进行扫描,已确定是否优先级发生改变,决定是否更改匀速运行时间。
在这里插入图片描述

图9 电梯逻辑框图

3 实验结果及分析

对于系统进行仿真测试,无论是响应单个人请求,还是响应多人请求,电梯系统都是可以很好地运行,不发生逻辑错误。但是,电梯当前位置(Location),重启复位之后将会变置为1,这可能在现实系统中发生错误。因此,需要将变量Location存储到EEPROM中,这样可以实现掉电保护功能,为电梯的安全运行提供保障。
本文所做的探讨主要集中于对于电梯调度和电梯运行逻辑方面,没有过于要求运行的平稳和精确。虽然利用升降电机和编程思路可以将人们运到需要的位置,但以此提高的舒适度的效果还是十分有限的。因此需要采取新的措施,使得电梯运行的精度和平稳度达到要求。这个过程中反馈是必要的,所以要得到电梯的实时信息(运行位置、运行速度、加速度)。由于悬吊电梯的链条会发生形变,因此最好采用激光测距的方法来测量与地面的距离,运行速度和加速度可以使用常用的传感器。这样收集到的实时信息再对电梯进行控制,无论选取PID控制还是现代控制,可以提高电梯运行精度和人们舒适感。

4 结语

使用AT89C51模拟了实际中的电梯运行,虽然所实现功能简单,但可以很好满足调度需求。在不需要人为干预的情况下,电梯可以自主实现所设计的功能——楼层呼叫、梯内楼层选择、同向响应、上下运行和开关门。这需要考虑在实际运行中电梯可能出现的一切状况,并在设计的时候进行规避和预防。未来万物互联的大背景下,对于电梯的嵌入式开发是一个不错的尝试。电梯更加智能化可以更好地满足现代化的需求。不远的将来,电梯也不再限于载人的需求,而是可以和机器人互动自主完成更复杂的运载任务。

5 附录

仿真设计图:
在这里插入图片描述

部分代码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/500706.html

相关文章

5分钟,带你创建一个智能电梯检测器模型

摘要:我们利用华为云IoTDA平台构建一个智能电梯运行状态检测模型,模拟一下智能电梯检测器的工作原理。 本文分享自华为云社区《太棒了,5分钟构建IoT智能电梯检测器模型》,作者:清雨小竹。 什么是物模型? …

电梯模拟系统

模拟九层电梯系统。有七个状态:正在开门(Opening)、已开门(opened)、正在关门(closing)、已关门(closed)、等待(waiting)、移动(movin…

基于 IoT + 5G技术搭建 10万台电梯智能化运维物联网平台

随着近20年我国房地产的蓬勃发展,电梯已经成为人们现代生活中不可或缺的一部分,也是城市化建设中重要的建筑设备之一。据中国电梯行业协会统计,截至2022年底,我国电梯保有量为990万台,电梯运营健康度,减少事…

智慧社区子场景之智慧电梯

社区、园区内电梯使用非常普遍,在智慧化建设中如何实现电梯的智能监管?电梯的故障告警、故障维修、保养计划、巡检计划又该怎样实现?物业在这个过程中可以怎样提高服务效率?对于热点问题电瓶车进入电梯事故可以怎样有效杜绝&#…

基于51单片机的简易电梯系统的设计

系统概述 设计要求 根据所学的知识以及技能,利用MCS-51系列单片机为中心设计一个简易电梯系统,实现四层电梯的无故障运行,并用数码管和指示灯显示对应楼层和运行方向等基本信息。设计所用的单片机为STC89C52为主要的控制器,自带A…

电梯运行控制模式:如何做到人脸识别、刷卡、二维码?

深圳市巨风科技有限公司专注人脸识别与人证核验研发生产,提供人脸识别场景应用解决方案,致力智慧城市建设智能化管理。公司围绕全场景智慧生活战略,打造精品和提升用户体验。公司完全自主研发的小门卫系列产品:人脸识别门禁机&…

FPGA实现简易电梯控制系统设计

这是某高校数字电路实验II课设,已实现2022年秋季学期所有功能 软硬件配置 系统:win10 软件:Vivado 2018.3 开发板芯片:xc7a35tftg256-2 设计要求 1、实现2层楼的简易电梯控制系统。 2、电梯有4个按键。 1楼外只有向上按键&…

实现电梯系统

用Java实现电梯系统 插入一段漂亮的代码片 标题如果输入的层数既有比当前楼层低又有比当前楼层高的话就进行先上升后下降,以下是运行的结果。 图片: 插入一段漂亮的代码片 import java.util.ArrayList; import java.util.Collections; import java.util.List; imp…