Arduino PIR 万圣节恶搞装置 - 人体感应触发红眼闪烁 + MP3 恐怖音效
元器件清单
| 元器件 | 数量 | 备注 |
|---|---|---|
| Arduino UNO | 1 | 主控 |
| PIR 人体红外传感器 | 1 | 检测移动物体 |
| MP3 模块 (如 DFPlayer Mini) | 1 | 需焊接按键引脚控制播放 |
| 5mm 红色 LED | 2 | 做“发光双眼” |
| 白色高亮 LED | 1 | 模拟闪电效果 |
| 2路继电器模块 | 1 | 隔离控制 MP3 模块按键 |
| 电阻 220Ω | 3 | LED 限流 |
| 电池盒/供电模块 | 1 | 便携供电 |
项目简介
去年万圣节制作的恶搞装置:放在门廊的盒子里,路人经过触发 PIR 传感器,立即播放低吼音效,红色双眼渐亮脉动,白色 LED 闪烁模拟闪电。吓哭了自家孩子,效果拔群!分两部分教程:PIR+LED 控制、MP3 模块串口/按键控制。
第一部分:PIR 传感器 + LED 效果
PIR 输出高电平持续约 2-3 秒(可调电位器调节灵敏度/延时)。Arduino 检测到高电平后执行灯光序列:
- 白色 LED 快速闪烁 3 次(闪电)
- 红色双眼 PWM 渐亮 (0→255) → 保持 → 闪烁 3 次 → 渐灭 (255→0)
- 延时 2 秒防止重复触发
第二部分:MP3 模块声音控制
使用廉价 MP3 模块(~$3),不买专用 Shield。通过继电器模拟按键操作:
- 继电器 1 并联“上一曲/音量-”按键 → 触发播放指定音轨
- 继电器 2 并联“播放/暂停”按键 → 控制播放停止
- SD 卡存放恐怖音效 (growl.mp3),命名为 0001.mp3 自动播放首曲
完整代码
// 万圣节恐吓盒子 - PIR + LED + MP3 音效
// Part 1: PIR + 灯光 https://youtu.be/ZAUXMoygVOU
// Part 2: MP3 音效 https://www.youtube.com/watch?v=uR_UTPioQYc
const int pirPin = 2;
const int prevPin = 3; // 继电器1:上一曲/选曲
const int pausePin = 4; // 继电器2:播放/暂停
const int statusLed = 10; // 状态指示 LED
const int eyeLed = 9; // 红眼 LED (PWM)
void setup() {
pinMode(pirPin, INPUT);
pinMode(statusLed, OUTPUT);
pinMode(prevPin, OUTPUT);
pinMode(pausePin, OUTPUT);
pinMode(eyeLed, OUTPUT);
// 继电器默认高电平断开 (模块低电平触发)
digitalWrite(prevPin, HIGH);
digitalWrite(pausePin, HIGH);
digitalWrite(statusLed, HIGH);
analogWrite(eyeLed, 0);
}
void loop() {
if (digitalRead(pirPin) == HIGH) { // 检测到人体
// === 声音触发序列 ===
digitalWrite(pausePin, LOW); // 按下播放键
delay(100);
digitalWrite(prevPin, LOW); // 触发选曲
delay(100);
digitalWrite(prevPin, HIGH);
delay(2000); // 播放时长
// === 红眼呼吸灯效果 ===
digitalWrite(statusLed, LOW); delay(100);
digitalWrite(statusLed, HIGH);
// 渐亮
for (int i = 0; i < 255; i++) {
analogWrite(eyeLed, i);
delay(5);
}
// 闪烁 3 次
for (int k = 0; k < 3; k++) {
digitalWrite(statusLed, LOW); delay(100);
digitalWrite(statusLed, HIGH); delay(100);
}
delay(2000); // 保持高亮
// 渐灭
for (int i = 255; i >= 0; i--) {
analogWrite(eyeLed, i);
delay(5);
}
digitalWrite(statusLed, HIGH);
analogWrite(eyeLed, 0);
// === 停止播放 ===
delay(2000);
digitalWrite(prevPin, HIGH); delay(100);
digitalWrite(pausePin, LOW); delay(100);
digitalWrite(pausePin, HIGH);
delay(1000); // 冷却时间防重复触发
} else {
digitalWrite(statusLed, HIGH); // 待机状态灯常亮
analogWrite(eyeLed, 0);
}
}
接线要点
- PIR VCC→5V, GND→GND, OUT→D2
- 红眼 LED (D9) + 220Ω 电阻 → GND
- 白光 LED (D10) + 220Ω → GND
- 继电器模块 IN1→D3, IN2→D4, VCC→5V, GND→GND (低电平触发)
- MP3 模块按键焊线并联到继电器常开触点
- 整套装入盒子,PIR 透镜对准门口,LED 做成面具眼部,白光 LED 向上照射盒盖
原理图

视频教程已详细讲解接线细节,如有疑问请观看配套视频。
制造工艺
- 树莓派构建稳健传感器 API:基于 GY‑91 多功能模块的 Flask 实现
- 树莓派 + MCP9808 + InfluxDB + Grafana:家庭温度监测系统
- 掌握树莓派 GPIO:在 B+/Model 2 上接入 PIR 运动传感器
- 树莓派家庭安防系统:PIR 运动检测 + 摄像头邮件报警
- HC‑SR501 PIR 运动传感器与树莓派接线、校准与 Python 编程全指南
- 低成本情绪传感器与 EEG:实时情绪检测硬件方案
- UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
- MyRiver:基于 Arduino MKR FOX 1200 的河流水质远程监测系统
- 万圣节 PIR 人体感应惊悚音箱:声光联动恐怖道具制作
- Arduino Nano 智能 3D 打印宠物喂食器:定时、防卡粮、断电补喂
- Isorg 推出 6 英寸全屏多指指纹传感器
- PIR传感器电路工作原理、设计与实际应用全解析