DIY 37 LED 轮盘游戏
组件和用品
| × | 1 | ||||
| × | 5 | ||||
| × | 37 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要的工具和机器
|
应用和在线服务
|
关于这个项目
轮盘赌是一种以法语单词命名的赌场游戏,意思是小轮子。在游戏中,玩家可以选择对单个号码、各种号码分组、红色或黑色、奇数或偶数、或高(19-36)或低(1 –18).
大多数情况下,您可以找到一个带有 10 个 LED 的轮盘游戏项目,因此我决定使用 37 个 LED,就像在原始轮盘中一样。遵循原始轮盘游戏的原理,LED 的运动模拟一个球,它的速度逐渐降低,直到它停在随机生成的数字处。使用 Arduino 微控制器大大简化了结构。设备的构建相对简单,组件很少:
- Arduino Nano 微控制器
- 74HC595 移位寄存器 5 双鱼
- 37个LED
- NPN晶体管
- 2个电阻
- 和蜂鸣器
这是欧式布局,由一个零和 36 个其他数字组成。通过按下按钮,我们实际上抛出了虚拟球,由此通过 LED 的后续照明来模拟旋转。 LED的旋转伴随着适当的声音效果,给游戏带来逼真的感觉。可以在代码中轻松调整旋转速度和时间。
最后,将设备放入合适的由PVC塑料制成并涂有彩色壁纸的盒子中。
代码
- 代码
代码C/C++
int SER_Pin =8; // 75HC595int RCLK_Pin =9 上的引脚 14; // 75HC595int SRCLK_Pin =10 上的引脚 12; // 75HC595 上的引脚 11 // 有多少个移位寄存器 - 改变这个#define number_of_74hc595s 5//不要碰#define numOfRegisterPins number_of_74hc595s * 8boolean registers[numOfRegisterPins];int Randomwaarde;int del setup(); { pinMode(SER_Pin, OUTPUT); pinMode(RCLK_Pin, OUTPUT); pinMode(SRCLK_Pin,输出); //重置所有寄存器管脚 clearRegisters();写寄存器();随机种子(模拟读取(3));随机数 =随机(190, 210); Serial.println(Randomwaarde);} //设置所有寄存器引脚为LOWvoid clearRegisters(){ for(int i =numOfRegisterPins - 1; i>=0; i--){ registers[i] =LOW; }}//设置和显示寄存器//仅在所有值设置好后调用(否则慢)void writeRegisters(){ digitalWrite(RCLK_Pin, LOW); for(int i =numOfRegisterPins - 1; i>=0; i--){ digitalWrite(SRCLK_Pin, LOW); int val =寄存器 [i];数字写入(SER_Pin,val);数字写入(SRCLK_Pin,高); } digitalWrite(RCLK_Pin, HIGH);}//设置单个引脚高或低void setRegisterPin(int index, int value){ registers[index] =value;}void loop(){ for (int x=0; x<=36; x++) { if (del <=Randomwaarde) { setRegisterPin(x, HIGH);写寄存器();延迟(删除); setRegisterPin(x, 低);写寄存器();德尔 =德尔 +1; } else { setRegisterPin(x, HIGH);写寄存器();延迟(10000); setRegisterPin(x, 低);写寄存器();德尔 =5; } }}
示意图
制造工艺