Arduino Mega 2560 驱动的四层智能服务电梯控制系统
所需元件与物料
| Arduino Mega 2560 | ×1 |
| OpenBuilds 微型行程开关 | ×4 |
项目详解
本项目设计并测试了一套面向四层楼的服务电梯控制系统。核心控制器为 ATmega2560,通过检测楼层位置决定给哪个接触器供电以驱动电机上下运行,并在到达目标楼层时切断电机电源。系统集成了门控安全逻辑:电梯运行前必须关门,到站后自动开门。控制系统成功实现了楼层识别、电机正反转控制、门机联动及抗干扰设计。
演示视频
(此处应嵌入演示视频链接)
1.1 三相电机接线
采用三相电机以应对重载需求。主电路通过两个接触器控制正反转:
- 接触器 1 吸合、接触器 2 断开 → 电机正转(上行)
- 接触器 2 吸合、接触器 1 断开 → 电机反转(下行)
两个方向的绕组接线不同,详见原理图。


1.2 楼层检测
每层安装一只行程开关,电梯到位时闭合,离开时断开。四个开关分别连接到单片机的四个输入引脚(配合下拉电阻),通过检测哪个引脚由低电平变为高电平来判断当前楼层。
挑战:行程开关的状态切换极快(毫秒级),普通轮询易漏检。解决方案:使用外部中断。Arduino Mega 2560 提供 6 个外部中断引脚,足以覆盖四层。中断服务程序 (ISR) 中不可使用 delay(),需极简处理。

1.3 电机上下行控制
使用两路 12V 直流继电器分别控制两个接触器的线圈,实现电机正反转。为保证安全,继电器线圈高侧由 PNP 三极管控制,仅当门锁信号(DoorSwitch)拉低时才导通;低侧由 NPN 三极管受 MCU 的 MotorUp/MotorDown 信号驱动。这样即使 MCU 输出高电平,门未关时继电器也不会动作。

1.3.1 续流二极管保护
继电器线圈两端并联飞轮二极管,抑制感性负载断电时的反向电压尖峰,保护单片机。

1.3.2 用户输入控制
四个楼层按钮提供用户召唤信号。MCU 读取按钮按下产生的瞬时高电平,结合当前楼层变量自动判断运行方向(目标楼层 > 当前楼层 → 上行,反之下行),无需额外的方向拨码开关,简化了硬件。

算法逻辑:
变量 currentFloor 实时更新。收到目标楼层指令后,比较大小决定 MotorUp 或 MotorDown 输出高电平。运行过程中每经过一层(中断触发),更新 currentFloor 并再次比较,直到等于目标楼层,随即拉低电机控制信号停止运行。
1.3.3 控制侧与输入侧隔离
初期因电梯金属机身耦合交流干扰,导致 MCU 误读行程开关信号。后引入光耦隔离器:行程开关侧驱动 LED,受光晶体管侧输出给 MCU,彻底切断干扰路径。

1.4 原型实物



制造工艺
- Simplesse®:重塑低脂食品的蛋白基脂肪替代品
- DIY 蓝牙控制 Arduino 间谍小车
- FlickMote:基于手势的智能家居红外遥控器
- DIY Arduino TV-B-Gone:万能关机遥控器
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- 从零构建智能 Arduino 四足机器人:完整指南
- 高性能 Arduino 气象气球数据记录器
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- 利用 Arduino Nano R3 自制全功能 CNC 雕刻机