真白的实验室

使用Arduino实现单部八层电梯简单控制

电梯控制系统是机电控制领域中具有代表性的综合性对象,其运行过程涉及输入采集、状态判断、 执行机构驱动、人机交互和调度策略等多个环节。将电梯控制逻辑引入单片机课程设计, 有助于把单片机原理、电机控制、接口扩展与程序设计等知识整合到同一系统框架中, 从而形成较为完整的嵌入式开发训练过程。

本文围绕“基于单片机的电梯控制模型设计”展开,介绍一套以 Arduino UNO R4 WiFi 为核心控制平台的 单部八层电梯控制模型。系统能够实现轿厢内选层、厅外上下呼梯、楼层状态显示、方向指示、 同向优先调度以及步进电机模拟运行等基础功能,并完成了从仿真方案到实际实现方案的结构调整。

一、研究背景

随着现代建筑规模不断扩大,电梯已成为垂直交通系统中的关键设备。电梯运行质量不仅取决于机械结构, 也与控制系统的响应能力、调度策略和人机交互方式密切相关。一个完整的电梯控制系统通常由控制器、 传感器、驱动单元、显示与输入模块共同构成,其核心任务是对用户请求进行实时处理,并按照既定逻辑完成安全、平稳和高效的运输过程。

在教学层面,电梯控制模型具有较高的综合性。其设计过程既包含多输入多状态的逻辑分析, 也包含电机驱动、接口扩展与程序组织问题,因此适合作为单片机系统课程设计题目。 通过该类项目的实现,可以进一步理解嵌入式控制系统从功能分解、硬件选型到软件实现与调试优化的完整流程。

二、系统目标

本系统旨在设计并实现一个具备基本电梯运行逻辑的八层控制模型,其主要目标如下:

  • 实现轿厢内选层功能;
  • 实现厅外上行与下行呼梯功能;
  • 实现电梯当前楼层显示及运行方向指示;
  • 实现基于同向优先原则的基础调度逻辑;
  • 采用步进电机模拟电梯升降运动;
  • 完成上电初始化与位置基准设定;
  • 通过仿真与实际实现验证系统可行性。

从系统结构上看,该项目并非单一功能的实现,而是围绕“输入—决策—执行—反馈”的闭环控制链条展开, 因而更接近一个小型嵌入式控制系统的完整设计。

三、总体设计思路

本系统采用模块化与分层化的设计方法,将整体功能划分为输入采集、请求存储、状态机调度、 电机驱动、楼层显示和人机交互等若干部分。通过对电梯控制任务进行分解,可以使软件逻辑更加清晰, 同时也便于硬件接口的独立设计与后期调试。

在初始方案中,系统以单片机为主控,通过按键模块采集输入信息,由程序完成调度判断, 再通过电机驱动和指示模块输出运行结果。后期在实际实现阶段, 考虑到接线复杂度与调试效率问题,对人机交互方式进行了调整, 最终采用串口屏替代大部分实体按键和 LED 指示模块,从而优化系统结构。

四、硬件系统组成

系统硬件主要由主控模块、驱动模块、输入输出扩展模块和显示交互模块组成, 其核心器件如下:

  • Arduino UNO / ATmega328P:作为主控单元,负责输入解析、状态判断和运动控制;
  • A4988 步进电机驱动器:用于驱动双极性步进电机,实现电梯模拟运行;
  • PCF8574:基于 I²C 总线的 IO 扩展芯片,用于缓解主控 IO 口不足问题;
  • 74HC154:用于译码与独立位置指示;
  • 42BYGH34-401S 步进电机:作为执行机构,用于模拟电梯在各楼层之间的移动;
  • TJC3224T132_011R 串口触摸屏:用于后期实际实现中的输入和状态显示。

在早期设计中,由于系统需要处理多楼层请求与多种指示状态,按传统接线方式将消耗较多 IO 资源。 因此引入 PCF8574 作为扩展器件,以提高系统接口容量;而 74HC154 的使用, 则使部分位置显示功能可相对独立于总线结构,增强状态指示的可靠性。

五、仿真方案与实际实现方案的差异

仿真阶段采用了较为典型的“按键输入 + LED 指示 + 电机驱动”的结构, 便于在 Proteus 等平台中直观验证系统的功能逻辑。该方案能够较清晰地反映电梯控制模型中 输入采集、请求处理和楼层状态显示之间的关系。

然而,在由仿真过渡到实际实现时,原方案暴露出较强的接线复杂度问题。 大量实体按键与 LED 模块不仅增加了硬件搭建难度,也提高了调试阶段的故障排查成本。 因此,实际实现阶段采用串口屏代替分散的输入输出器件,将用户操作与状态显示集中到单一界面上, 从而显著降低了接线压力,并改善了系统的可视化程度。

这一调整说明,课程设计中的系统实现并非简单照搬理论方案,而需要结合硬件条件、 调试成本和展示效果进行适度工程化优化。

六、人机交互界面设计

实际实现中,系统采用串口触摸屏完成输入与显示功能。界面主要分为启动页与主操作页两部分。

启动页用于检测主控与显示终端之间的通信是否建立。系统上电后,若主控成功发送页面跳转命令, 则界面立即进入主操作页;若通信尚未建立,则保持在启动界面。 该设计可在视觉层面反映设备初始化状态,具有一定的调试辅助作用。

主操作页承担日常控制任务,主要包括以下功能:

  • 选择命令类型:轿厢内选层、厅外上呼梯、厅外下呼梯;
  • 输入目标楼层;
  • 向主控发送控制命令;
  • 显示电梯当前运行方向;
  • 显示上、下行请求的存在状态。

在通信方式上,界面端将用户操作封装为带有帧头、命令类型、楼层号和帧尾的数据帧, 再通过串口发送给主控。该方法相较于大量离散按键输入更具结构化特征, 也更适合后续扩展和维护。

七、软件设计与状态机模型

软件系统采用状态机作为核心组织方式。根据电梯运行特征, 将系统状态划分为三类:

  • IDLE:空闲状态;
  • MOVING_UP:上行状态;
  • MOVING_DOWN:下行状态。

程序在主循环中持续读取输入事件、更新请求队列、驱动步进电机运行, 并在达到目标楼层后执行请求服务与方向重判。通过这种方式, 电梯的运动控制与逻辑判断被统一纳入状态机框架中,程序结构更加清晰, 各模块间的职责也更容易划分。

八、初始化过程

系统上电后的初始化过程主要包含以下内容:

  1. 初始化串口通信,建立主控与 HMI 的数据链路;
  2. 发送页面跳转命令,进入主操作界面;
  3. 清空轿厢选层与厅外呼梯请求队列;
  4. 初始化步进电机相关控制引脚;
  5. 设定电机最大速度与加速度参数;
  6. 完成逻辑上的回零或基准层设定;
  7. 刷新界面,显示系统初始状态。

初始化阶段的关键在于保证系统从确定状态启动。 若请求队列、位置变量和显示状态在上电时未被正确清零, 则可能对后续调度逻辑造成干扰,因此该步骤具有基础性意义。

九、请求服务逻辑

当电梯到达某一楼层后,程序需要根据当前运行方向判断是否服务该层请求。 系统并不采用简单的“逐层停靠”策略,而是结合运行状态进行选择性处理:

  • IDLE 状态下,当前楼层的轿厢请求、上行请求和下行请求均可被服务;
  • 上行 状态下,优先服务当前楼层的轿厢请求和上行呼梯请求;
  • 下行 状态下,优先服务当前楼层的轿厢请求和下行呼梯请求。

这种服务方式体现了“同向优先”的基本思想,有助于降低运行过程中的频繁换向现象, 使模型更接近实际电梯系统的工作方式。

十、调度决策逻辑

在当前楼层请求处理完成后,系统需要继续决定下一步运行方向。 调度逻辑的基本规则如下:

  1. 首先检查当前楼层以上是否存在待处理请求;
  2. 若存在,则保持或转入上行状态;
  3. 若上方不存在请求,则继续检查当前楼层以下是否存在请求;
  4. 若下方存在请求,则转入下行状态;
  5. 若上下方均无请求,则进入空闲状态。

该策略实现了最基础的集体控制原则,即沿当前方向尽可能连续完成服务任务, 只有在该方向已无需求时才进行反向或停梯。虽然该逻辑仍较为简化, 但对于课程设计层面的电梯控制模型而言,已能够较好地体现调度控制的基本思想。

十一、步进电机控制方法

系统采用 A4988 驱动步进电机,并通过设定“每层对应的固定步数”来模拟电梯在楼层间的移动。 当系统判断需要从当前楼层移动至相邻目标楼层时, 程序将根据当前楼层编号和步距参数计算目标位置, 再调用相关控制接口输出脉冲,实现电机位移。

软件中采用非阻塞式运动控制方式,使电机运行过程能够与输入解析、状态刷新和逻辑判断并行存在。 对于具有实时交互需求的嵌入式系统而言,非阻塞结构优于简单延时结构, 因为它能够避免系统在运动期间失去对请求事件的响应能力。

十二、系统特点与分析

从整体实现效果看,该系统具有以下几个特点:

  • 结构清晰:通过模块化方法将输入、调度、执行和显示分离;
  • 逻辑完整:覆盖了请求采集、状态转换、运行控制和结果反馈的主要流程;
  • 可扩展性较好:串口协议与状态机结构为后续功能扩展预留了空间;
  • 工程调整合理:由仿真方案向实际实现方案的转化较符合开发实践特点。

当然,该系统仍属于基础模型。若进一步深化,可继续加入更完善的平层检测、 门机联动、优先级优化、异常处理与多电梯协同调度等功能。 但就课程设计目标而言,现有方案已经能够较完整地展示单片机控制系统的基本设计过程。

十三、结论

综上所述,该单部八层电梯控制模型以 Arduino 平台为核心, 实现了基础的请求采集、状态机调度、步进电机驱动与串口屏交互功能, 并完成了从仿真结构到实物结构的方案调整。系统在硬件选型、软件组织和交互方式上 均体现出一定的系统性与工程性。

从教学与实践角度看,该项目说明:单片机课程设计的价值并不局限于某一功能的实现, 更在于通过一个具体系统对象,将控制逻辑、接口设计、执行机构驱动、 调试方法与方案优化整合为统一的工程实践过程。


关键词: Arduino;单片机;电梯控制;状态机;串口屏;步进电机;嵌入式系统