Arduino DMX-512 测试控制器 – 可靠灯光控制的完整套件
项目概述
这是一个基于 Arduino Mega 2560 的 DMX-512 协议测试与控制工具,专为灯光安装现场的快速测试而设计。无需携带灯光控台、接口或电脑,即可在户外、恶劣或难以到达的环境中进行便携式快速测试。
核心特性
- 硬件平台:Arduino Mega 2560 Rev-3
- DMX 库:Deskontrol 四宇宙 DMX 库 v0.3
- 显示屏:20×4 字符 LCD(绿底黑字),软件控制背光与对比度
- 电源方式:USB、电池或外部电源三选一
- 交互界面:导航键盘 + 4×4 矩阵键盘 + 模拟电位器
- 输出接口:接线端子、XLR 3针、XLR 5针三种 DMX 输出
- 状态指示:DMX 输出状态 LED
- 仿真支持:Proteus V7.7 SP2 仿真,Proteus v8.0 SP1 原理图与 PCB 设计
硬件版本 v0.4 详细规格
- 支持固件 v0.9 – v1.3
- 4×20 LCD 带背光,对比度软件可调
- 多种供电方式:USB、电池、外部电源
- 导航键盘 + 4×4 矩阵键盘
- 模拟控制电位器
- 电源开关(USB 供电时不适用)
- 三种 DMX 输出接口:端子块、XLR 3针、XLR 5针
- DMX 输出状态指示 LED
- Proteus 仿真验证
- 完整原理图与 PCB 设计文件
固件版本 v1.2 功能亮点
- 支持硬件 v0.3 – v0.4
- 直观的光标导航界面
- 键盘快速输入数值
- 电位器模拟输入数值
- 8 组 DMX 宇宙内存存储
- EEPROM 读取启动预设宇宙
- 启动内存选项选择
- 单通道控制:显示前后通道值
- 矩阵控制:3×5 矩阵显示通道值
- 追光控制:选定通道按时间序列
- 序列器:在 EEPROM 存储的宇宙间按时间切换
- 乘法填充:按间隔批量设置通道值
- 灯具定位功能:从选定通道闪烁定位
- 快速访问内存选项
- 内存操作:保存、加载、清空、全清(Bank 与 RAM)
- 8 组 DMX 宇宙 Bank 管理
- Blackout 全黑功能
- LCD 背光亮度控制
- LCD 对比度控制
- 键盘快捷键控制背光
- Arduino IDE v1.0.6 编译
主要元器件清单
| 元器件 | 数量 | 备注 |
|---|---|---|
| Arduino Mega 2560 | 1 | 主控板 |
| SparkFun 10k 线性电位器 | 1 | 模拟输入 |
| 轻触按键 SPST | 5 | 导航键(上下左右中) |
| 20×4 字符 LCD (绿底黑字 5V) | 1 | 显示界面 |
| 2N2222A NPN 三极管 | 2 | 驱动电路 |
| 4×4 矩阵键盘 | 1 | 数值输入 |
| MAX485 RS-485 收发器 | 1 | DMX 信号驱动 |
| 330Ω 电阻 | 2 | LED 限流 |
| 1kΩ 电阻 | 2 | 上拉/下拉 |
| 120Ω 电阻 | 1 | DMX 终端匹配 |
| 3mm 绿色 LED | 2 | 状态指示 |
| 1nF 电容 | 6 | 去耦/滤波 |
| 3位大接线端子 | 1 | DMX 输出 |
| 2位大接线端子 | 1 | 电源输入 |
| 滑动开关 1P2T | 1 | 电源开关 |
| XLR 3针 PCB 座 (Amphenol) | 1 | DMX 输出 |
| XLR 5针 PCB 座 (Amphenol) | 1 | DMX 输出 |
| 40P 单排排针 | 4 | 连接器 |
| 酚醛面板 15×20cm | 1 | PCB 基板 |
| 8Pin IC 座 | 1 | MAX485 座 |
| 感光干膜 PCB 30cm×200cm | 1 | 自制 PCB 用 |
制作流程图解
项目包含完整的 PCB 制作过程:酚醛板打磨 → 感光干膜贴合 → UV 曝光 → 氯化铁蚀刻 → 钻孔 → 元件焊接 → 组装测试。每个步骤均有详细照片记录,适合电子爱好者参考学习单面板制作工艺。
软件架构
代码采用模块化设计,主要功能模块包括:
GUI_About()– 启动画面显示版本信息GUI_Memory_Init()– 初始内存选择(空载/加载/清除)GUI_Control_Options()– 主控制菜单(单通道/矩阵/追光/乘法/配置/内存)GUI_Control_Unit()– 单通道精确控制GUI_Control_Matrix()– 3×5 矩阵可视化控制GUI_Control_Chaser()– 追光序列编程GUI_Control_Multiply()– 乘法批量填充GUI_Memory()– 内存管理(保存/加载/清空/清除/Blackout)GUI_Config()– 系统配置(背光/对比度/关于/退出)EEPROM 操作– 读/写/清空/清除 512 通道数据键盘扫描– 4×4 矩阵键盘多路复用读取电位器读取– 模拟输入映射至 0-255
用户交互指南
启动菜单:初始内存
- Empty – 保持 EEPROM 不变,RAM 全 0
- Load – 从 EEPROM 加载上次保存的宇宙
- Clear – 清除 EEPROM 并将 RAM 置 0
控制选项菜单
- Memory – 进入内存管理
- Unitary – 单通道快速访问
- Matrix – 3×5 矩阵显示 15 通道
- Chaser – 通道追光序列
- Multiply – 间隔批量设置
- Config – 系统设置
特殊按键功能
- ▲▼◀▶Center – 菜单导航
- A – 快速输入 255
- B – 快速输入 000
- C – 灯具定位(通道值在 0↔255 闪烁)
- * – 背光开关
- D – 启用电位器模拟输入
- # – 数值输入确认
- Ctrl – 返回控制选项菜单
项目资源
- GitHub 仓库:https://github.com/daniel3514/Arduino-DMX-512-Tester-Controller
- Proteus 仿真工程:DMX Controller v01 - Proteus 80.pdsprj
- 原理图与 PCB:仓库内提供图片与工程文件
- 许可证:GNU GPL v3
- 作者:Daniel Roberto Becerril Angeles (daniel3514@gmail.com)
适用场景
- 舞台灯光现场快速故障排查
- 临时灯光安装调试
- DMX 设备出厂测试
- 教学演示 DMX-512 协议
- 便携式灯光系统调试工具
制造工艺
- 基于 Web 控制的 DMX 灯光系统 – Arduino 主控制器
- 互动陀螺仪 LED 显示:NeoPixel Ring + Arduino Pro Mini
- DIY Arduino USB 游戏手柄 — 自制高性能游戏手柄
- Unopad:基于 Arduino 的无缝 Ableton Live MIDI 控制器
- Pixie:基于 Arduino Pro Mini 的 NeoPixel 智能腕表 - 极简 DIY LED 时钟
- Firmata + Xbox 手柄无线遥控 Arduino 小车:UWP 应用桥接方案
- Arduino 驱动的真空荧光显示器(VFD)控制器套件
- 在 Arduino Due 上实现语音识别与语音合成 - BitVoicer Server 方案
- Alexa 语音控制 Arduino 智能家居中枢:基于 Yun + PubNub + AWS Lambda 全栈实现
- 便携式远程监控摄像头机器人系统
- 智能手语手套:柔性传感器 + 加速度计 + 蓝牙将手势转文字/语音
- 基于 Arduino 的智能温室监测与自动灌溉系统