互动 LED 矩阵门显:PIR 触发节日问候 + 待机特效
项目效果
三块 8×8 WS2812B RGB LED 矩阵(拼成 24×8)安装于门前,由 Arduino Uno 驱动。楼梯口第一个 PIR 传感器触发楼梯灯带(通过 Nano + 继电器控制 12V RGB 灯带);靠近门口第二个 PIR 检测到人,矩阵滚动显示 “Happy Holidays & Happy New Year!”;无人时播放 FastLED 内置特效(彩虹、彗星、音谱、Cylon 扫描等)作为屏保。
硬件清单
| 模块 | 数量 | 备注 |
|---|---|---|
| Arduino Uno | 1 | 主控矩阵 + PIR2 |
| Arduino Nano | 1 | 控制楼梯灯带继电器 + PIR1 |
| 8×8 NeoPixel 面板 (WS2812B) | 3 | 级联 DIN→DOUT,共 192 颗 LED |
| PIR 人体红外传感器 | 2 | 一个楼梯口,一个门口 |
| 5V 继电器模块 | 1 | 控制 12V RGB 灯带电源 |
| 12V RGB LED 灯带 + 电源线 | 1 套 | 楼梯装饰照明 |
| 5V 30A 开关电源 | 1 | 供矩阵与 Uno(矩阵满亮约 10A) |
| 杜邦线、焊接工具、剥线钳 | 若干 |
接线要点
- 三块矩阵级联:第一块 DIN 接 Uno D6,后两块 DIN 接前一块 DOUT;VCC/GND 并联接大电流 5V 电源(需粗线、加去耦电容)。
- PIR1(楼梯)OUT → Nano D2,继电器 IN → Nano D3,继电器控制 12V 灯带电源正极。
- PIR2(门口)OUT → Uno D5。
- 所有模块 GND 共地。

固件架构
核心库
- FastLED 3.3+:驱动 WS2812B,提供调色板、特效函数
- Adafruit_GFX + Adafruit_NeoMatrix:文本滚动、坐标映射(蛇形布局)
状态机
// 简化逻辑
void loop() {
bool motion = digitalRead(PIR_PIN); // D5
if (motion) {
// 显示滚动文本
scrollText("Happy Holidays & Happy New Year!");
} else {
// 播放待机特效
runCurrentPattern(); // rainbow, confetti, sinelon, bpm, juggle, cylon...
FastLED.show();
FastLED.delay(1000/FPS);
EVERY_N_SECONDS(10) { nextPattern(); } // 自动切换特效
}
}
文本滚动实现
- `matrix.setCursor(x, 0)` 配合 `x--` 实现左滚。
- 颜色每轮循环切换 `colors[pass]`(红/绿/青/洋红/黄/白)。
- 文本宽度约 200 像素,滚动约 2 秒/轮。
待机特效列表(FastLED DemoReel100 精选)
- rainbow:全屏渐变彩虹
- rainbowWithGlitter:彩虹+随机白色闪光
- confetti:随机彩色点淡入淡出
- sinelon:单色光点正弦往返带拖尾
- bpm:调色板条纹随节拍脉动
- juggle:8 个色点交织飞舞
- cylon:单色光条来回扫描(骑士车风格)
PIR 传感器校准
- 上电后 `calibrationTime = 30` 秒预热,期间忽略输出。
- 检测到 HIGH 后,延时 `minimummSecsLowForInactive = 5000ms` 确认无人才切回待机,避免人员停留时屏幕闪烁。
功耗与散热
- 192 颗 WS2812B 全白满亮 ≈ 192 × 60mA ≈ 11.5A,实际运行亮度设为 40/255,平均电流 ~2A,5V 30A 电源充足。
- 矩阵背面建议贴铝基散热板或加装小风扇,长时间运行防止过热。
扩展想法
- 加入麦克风模块(MAX9814/INMP441)实现声控变色/音谱显示。
- 接入 ESP32/ESP8266 通过 MQTT/Home Assistant 集成智能家居,远程推送消息、修改文本。
- 设计 PCB 替代飞线,固定安装更可靠。
制造工艺
- 自制LUMAZOID:基于Arduino的音乐可视化灯光控制器
- DHT11 温湿度传感器项目:LED 指示与压电蜂鸣器报警
- MyRiver:基于 Arduino MKR FOX 1200 的河流水质远程监测系统
- 自制简易红外避障传感器:IR LED + 光电二极管 + Arduino
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- 从零构建智能 Arduino 四足机器人:完整指南
- 基于 Arduino Nano 的智能运动感应水枪
- Arduino 声纳实时测距与 Processing 可视化
- DIY Arduino Nano 示波器:10 Hz–50 kHz / 128×64 LCD
- Arduino 8×8 LED 矩阵翻页时钟 - DIY 实时时钟项目
- Arduino Uno驱动MAX7219级联8×8 LED矩阵:从入门到动画显示
- 用 Arduino Uno 和 1Sheeld 构建 4x4x4 LED 立方体 - 互动音乐可视化项目