Arduino Nano 自动化车库滑动门控制器:OLED 状态显示、光电保护、限位检测
元器件与材料
| Arduino Nano R3 | ×1 |
| 0.96" OLED 显示屏 (128x64, SPI) | ×1 |
| 4 路继电器模块 (仅用 3 路) | ×1 |
| 5V 电源模块 (220V 转 5V) | ×1 |
| 复位按键 (清除故障报警) | ×1 |
| 面包板 & 跳线 | 各×1 |
项目背景
原车库门控制器因蜥蜴爬入导致 220V 短路烧毁。决定用 Arduino 重写控制逻辑,并增加原厂没有的功能:OLED 实时状态显示、光电安全保护、开关门超时故障检测、信号灯变频闪烁指示状态。
⚠ 高压警告:涉及 220V 电机控制,非专业人士请勿尝试,上机前务必仿真验证。
系统架构
- 主控单元:Arduino Nano + OLED + 继电器模块,安装在防护盒内
- 执行机构:原有 220V 电机、机械导轨 (未损坏)
- 无线接收:成品 433MHz 接收模块,输出继电器触发“开门”指令
- 大功率继电器:驱动 220V 电机正反转
- 安全传感器:光电对射 (防夹)、开门/关门到位限位开关
引脚分配
| 功能 | 引脚 | 备注 |
|---|---|---|
| 光电传感器 | D2 | INPUT_PULLUP, 低电平触发 |
| 关门到位传感器 | D7 | INPUT_PULLUP |
| 开门到位传感器 | D3 | INPUT_PULLUP |
| 无线“开门”信号 | D4 | INPUT_PULLUP |
| 信号灯继电器 | D5 | LOW 有效 |
| 电机开门继电器 | D6 | LOW 有效 |
| 电机关门继电器 | D12 | LOW 有效 |
| OLED SPI: MOSI, CLK, DC, CS, RST | D11, D13, D9, D10, D8 | Adafruit_SSD1306 库 |
软件流程图 (状态机)
四大状态:
- 主循环:等待“开门”指令,OLED 实时刷新传感器状态
- 开门序列:启动开门电机+信号灯慢闪;检测到开门到位或再次收到开门指令→进入“门全开等待”
- 门全开等待:默认 30 秒后自动关门;期间收到开门指令→直接进入关门序列;信号灯特殊闪烁 (短亮 100ms/长灭 2s)
- 关门序列:启动关门电机+信号灯快闪;检测到关门到位→回主循环;检测到光电遮挡或收到开门指令→立即停止电机、反向开门;超时未到位→故障报警
关键代码片段
// 核心状态机结构 (伪代码)
void loop() {
BUCLE_PRINCIPAL: // 主循环
更新 OLED 显示传感器状态
等待 OBRIR (开门指令) 变低
goto SEQUENCIA_OBERTURA;
SEQUENCIA_OBERTURA: // 开门
启动开门电机, 信号灯慢闪(1Hz)
循环检测:
若开门到位传感器触发 -> goto PORTA_OBERTA
若再次收到开门指令 -> 停止电机, goto SEQUENCIA_TANCAMENT
刷新 OLED 显示耗时
超时 28 秒 -> 故障标志 AVARIA=true
goto A;
PORTA_OBERTA: // 门全开等待
关闭开门电机
等待 30 秒 或 收到开门指令 -> goto SEQUENCIA_TANCAMENT
信号灯特殊闪烁模式
SEQUENCIA_TANCAMENT: // 关门
启动关门电机, 信号灯快闪(3Hz)
循环检测:
若关门到位 -> 停止电机, goto BUCLE_PRINCIPAL
若收到开门指令 -> 停止电机, goto SEQUENCIA_OBERTURA
若光电遮挡 -> 停止电机, 延时 1 秒, goto SEQUENCIA_OBERTURA
超时 28 秒 -> 故障, goto BUCLE_PRINCIPAL
goto B;
}
完整代码
完整 C++ 代码 (含中英文注释版) 请见项目页面或 GitHub。代码采用 goto 实现状态跳转,虽非结构化编程典范,但在简单状态机中清晰有效。OLED 显示内容包括:当前阶段、动作耗时、光电/限位/开门指令状态、故障标志。
原理图与 PCB
提供 Fritzing 原理图、引脚定义表及扩展板布局。继电器模块控制信号灯、开门电机、关门电机三路;光电、限位、无线接收均为无源触点接数字输入上拉。
制造工艺
- 树莓派紧凑型 DHT 温湿度扩展板:ATtiny85 + DHT22/DHT11
- 解锁树莓派全部潜力的必备配件推荐
- SIGHT:助盲智能眼镜 — 树莓派 + TensorFlow + Android Things
- 树莓派水下无人机构建:设计、开发与组装全记录
- 如何为爱车挑选顶级减震器:选购全攻略
- 手动带锯床:耐用便携的万能切割解决方案
- 自动冲压机:钣金成型的终极设备
- Formnext 2017:增材制造创新的里程碑盛会
- 自动化赋能中小企业增长:通往光明未来的路径
- 深情告别:我在出版界的40年旅程
- 五极管:第五元素增强电子管性能
- Traub TNL18 P滑动主轴自动化:瑞士型与生产车削的五轴单装夹精度