DIY LED 轮盘赌游戏机 —— Arduino Nano 打造单人桌面街机
物料清单
| 元器件 | 规格/数量 |
|---|---|
| LED | 红×6、黄×2、绿×1 (共 9 颗) |
| 轻触开关 12mm | 1 |
| Arduino Nano R3 | 1 |
| 母排针 8P | 1 条 |
| DC 电源座 | 1 |
工具
- CNC 雕刻机 (或手工锯/激光切割)
- Arduino IDE
- TTBOUNCE 库 (按键去抖/双击检测)
游戏规则
9 颗 LED 排成一行 (6红-2黄-1绿),光点在两端往返流动。玩家按键瞬间停止,落在绿灯获胜,红/黄为失败。启动时按键调整难度 (流动速度),双击确认开始。
机箱制作
- Fusion 360 设计面板:9 个 LED 孔位 + 底部按键孔
- CNC 切割胶合板/亚克力
- 打磨倒角,热熔胶组装盒体
电路连接
- LED 阳极分别接 D4-D12 (共 9 个数字口),阴极共地串限流电阻
- 按键接 D2 (内部上拉),触发外部中断
- DC 座供电,Nano VIN 接入

核心代码逻辑
// LED 引脚数组 (物理排列顺序)
const uint8_t ledPin[9] = {4,3,5,6,7,8,9,10,11}; // 中间绿灯索引 4
const uint8_t btnPin = 2;
uint8_t difficulty = 0; // 0-8 对应延迟 500~55ms
uint8_t current = 0; // 当前亮灯索引
bool dirRight = true; // 移动方向
bool gameOver = false;
bool isWin = false;
bool selecting = true;
TTBOUNCE btn(btnPin); // 去抖+双击检测
void setup() {
// 初始化 LED、按键回调、中断
// 选难度阶段:单击切换难度灯,双击锁定进入游戏
attachInterrupt(digitalPinToInterrupt(btnPin), onPress, FALLING);
}
void loop() {
if (!gameOver) {
moveLed(); // 往返移动光点
delay(delay_time); // 难度决定速度
} else {
// 结算动画:胜利全闪 5 次,失败扫描
// 2 秒后复位重新选难度
}
}
void moveLed() {
digitalWrite(ledPin[current], LOW);
if (current == 8) { dirRight = false; current--; }
else if (current == 0) { dirRight = true; current++; }
else current += dirRight ? 1 : -1;
digitalWrite(ledPin[current], HIGH);
}
void onPress() { // 中断服务程序
gameOver = true;
isWin = (current == 4); // 绿灯索引 4
current = 0;
delay(500); // 简单去抖
}
难度公式
delay_time = 500 / (difficulty + 1) → 难度 0: 500ms, 难度 8: 55ms。越快越难停在绿灯。
扩展玩法
- 多人积分制:红灯 10 分、黄灯 5 分、绿灯 0 分,累计最低分者胜
- 声光增强:加蜂鸣器、RGB LED、OLED 显示分数
- 外壳升级:3D 打印街机造型、亚克力分层发光面板
项目感悟
极简元件实现完整游戏闭环,适合入门练习:中断、状态机、去抖、数组遍历、时序控制。随时随地可玩,远离屏幕的小确幸。
制造工艺
- Arduino Nano 与 MPU-6050 构建实时陀螺仪游戏
- Arduino 数字骰子:LCD 显示随机点数的电子骰子
- 用 Arduino Nano 自制 37 灯珠轮盘赌游戏机
- DIY Arduino USB 游戏手柄 — 自制高性能游戏手柄
- 自制 16×8 LED 矩阵俄罗斯方块游戏机:Arduino Nano + 74HC595 驱动
- Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
- 从零构建智能 Arduino 四足机器人:完整指南
- Pixel Chaser:Arduino Nano 单键 NeoPixel 追逐小游戏
- Bolt IoT + Arduino UNO 实现 6 路 LED 无级调光
- Arduino 8×8 LED 矩阵翻页时钟 - DIY 实时时钟项目
- Arduino RGB LED调色器:三电位器混色入门项目
- Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏