Bouw Je Eigen 37-LED Roulette-spel met Arduino Nano
Onderdelen en benodigdheden
| Arduino Nano R3 | × | 1 |
| 74HC595 schuifregister IC | × | 5 |
| LED (generiek) | × | 37 |
| Buzzer | × | 1 |
| Algemene NPN-transistor | × | 1 |
| Drukknop, momentaan | × | 1 |
Benodigde tools en machines
- Soldeerbout (generiek)
Apps en online diensten
Over dit project
Roulette is een casinospel genaamd naar het Franse woord voor "klein rad". Spelers kunnen inzetten op een enkel getal, groepen getallen, de kleuren rood of zwart, of het getal oneven of even is, of of de getallen hoog (19-36) of laag (1-18) zijn.
Vaak vind je projecten van een roulette-spel met 10 LEDs, dus besloot ik er eentje te maken met 37 LEDs zoals in het originele wiel. Volgend het principe van het originele roulette-spel, simuleert de beweging van de LED een bal wiens snelheid geleidelijk afneemt tot hij stopt op een willekeurig gegenereerd getal. De constructie is zeer vereenvoudigd door het gebruik van een Arduino-microcontroller. Het apparaat is relatief simpel te bouwen en bestaat uit weinig componenten:
- Arduino Nano microcontroller
- 74HC595 schuifregister (5 stuks)
- 37 LEDs
- NPN-transistor
- 2 Weerstanden
- Buzzer
Dit is de Europese-indeling met een enkele nul en 36 andere getallen. Door op de knop te drukken "gooi" je de virtuele bal, waarbij de rotatie gesimuleerd wordt door de opeenvolgende verlichting van de LEDs. De rotatie van de LEDs wordt vergezeld door een passend geluidseffect, wat een realistisch gevoel geeft aan het spel. Rotatiesnelheid en tijd kunnen eenvoudig in de code worden aangepast.
Tot slot wordt het apparaat in een geschikte doos van PVC-plastic geplaatst en bekleed met gekleurd behang.
Code
Code (C/C++)
int SER_Pin = 8; // pin 14 op de 74HC595
int RCLK_Pin = 9; // pin 12 op de 74HC595
int SRCLK_Pin = 10; // pin 11 op de 74HC595
// Aantal schuifregisters - verander dit
#define number_of_74hc595s 5
// niet aanraken
#define numOfRegisterPins number_of_74hc595s * 8
boolean registers[numOfRegisterPins];
int Randomwaarde;
int del = 5;
void setup() {
pinMode(SER_Pin, OUTPUT);
pinMode(RCLK_Pin, OUTPUT);
pinMode(SRCLK_Pin, OUTPUT);
// reset alle registerpinnen
clearRegisters();
writeRegisters();
randomSeed(analogRead(3));
Randomwaarde = random(190, 210);
Serial.println(Randomwaarde);
}
// Zet alle registerpinnen op LOW
void clearRegisters() {
for (int i = numOfRegisterPins - 1; i >= 0; i--) {
registers[i] = LOW;
}
}
// Zet en toon registers
// Roep alleen aan NAAR alle waarden zijn ingesteld (langzaam anders)
void writeRegisters() {
digitalWrite(RCLK_Pin, LOW);
for (int i = numOfRegisterPins - 1; i >= 0; i--) {
digitalWrite(SRCLK_Pin, LOW);
int val = registers[i];
digitalWrite(SER_Pin, val);
digitalWrite(SRCLK_Pin, HIGH);
}
digitalWrite(RCLK_Pin, HIGH);
}
// Zet een individuele pin HIGH of LOW
void setRegisterPin(int index, int value) {
registers[index] = value;
}
void loop() {
for (int x = 0; x <= 36; x++) {
if (del <= Randomwaarde) {
setRegisterPin(x, HIGH);
writeRegisters();
delay(del);
setRegisterPin(x, LOW);
writeRegisters();
del = del + 1;
} else {
setRegisterPin(x, HIGH);
writeRegisters();
delay(10000);
setRegisterPin(x, LOW);
writeRegisters();
del = 5;
}
}
}
Schema's

Productieproces
- Bouw Je Eigen LUMAZOID: Een DIY Arduino Muziek Visualizer
- Bouw een real-time gyroscoop-spel met Arduino Nano & MPU-6050 sensor
- Arduino Digitale Dobbelsteen: Bouw Je Eigen LCD-willekeurige Getalgenerator
- DIY Arduino USB Gaming Controller – Bouw Je Eigen High-Performance Gamepad
- Interactieve Joystick Game met Arduino en LED Feedback
- Draagbare Afstandsdetector – Arduino Nano DIY Kit met HC-SR04, 18650 Accu en 3D-geprinte Behuizing
- MobBob: Bouw Je Eigen Arduino Robot, Naadloos Bestuurd via Android Smartphone
- Pixel Chaser: Interactieve één-tik LED-spel met Arduino Nano
- Koper Elektrolyseren Project: Bouw een Slim Systeem met Arduino UNO
- NeoPixel Matrix Pong op Arduino Nano: Bouw je eigen neon Pong-spel
- 1D Pong-spel met Arduino en WS2812 LED-strip – Stap-voor-stap DIY handleiding