Hallo zusammen, heute werde ich euch zeigen, wie ich ein "Digitales Roulette-Rad" hergestellt habe, indem ich den ESP32-C3 Super Mini Mikrocontroller mit den klassischen CD4017 CMOS-Zehnerzählern kombiniert habe.
Wenn der Knopf gedrückt wird, sendet der ESP32 "Taktimpulse" an den CD4017-IC, was dazu führt, dass die LEDs zyklisch aufleuchten. Das Loslassen des Knopfes löst einen realistischen Verlangsamungseffekt aus, bis er bei einem zufälligen Ergebnis anhält, und meldet die endgültige Position über den Seriellen Monitor oder über WLAN.
Vertrau mir, es ist eine Menge los mit diesem Projekt: Hardware-Design, Arduino-Programmierung, PHP, Datenbanken, 3D-Design und -Druck und vieles mehr.
Video:https://youtu.be/5jVFR7KSNmg
Vollständiger Blog-Beitrag:https://diyfactory007.blogspot.com/2026/05/Roulette.html
Benötigte Komponenten
Für dieses Projekt benötigen wir:
🔗 1 x ESP32-C3 Super Mini Plus Mikrocontroller:https://s.click.aliexpress.com/e/_c2zUTvyj
🔗 2 x CD4017 CMOS-Zehnerzähler:https://s.click.aliexpress.com/e/_c33qzzRt
🔗 2 x 2N2222 NPN-Transistoren:https://s.click.aliexpress.com/e/_c4OwNvnZ
🔗 3 x 220Ω Widerstände:https://s.click.aliexpress.com/e/_c41SucJd
🔗 1 x 10kΩ Widerstand:https://s.click.aliexpress.com/e/_c41SucJd
🔗 1 x Drucktastenschalter:https://s.click.aliexpress.com/e/_c3cfuN6J
🔗 1 x SPDT-Schalter:https://s.click.aliexpress.com/e/_c4FRHRaX
🔗 18 x 5mm rote LEDs:https://s.click.aliexpress.com/e/_c2RpNzh9
🔗 2 x 5mm grüne LEDs:https://s.click.aliexpress.com/e/_c2RpNzh9
🔗 1 x 3mm blaue LED:https://s.click.aliexpress.com/e/_c306Pzbh
🔗 1 x 10mfd Kondensator (optional)
🔗 1 x LiPo-Batterie:https://s.click.aliexpress.com/e/_c4okFfef
🔗 1 x Batterielade-Modul (optional):https://s.click.aliexpress.com/e/_c3EJLcZh
🔗 1 x Batterie-Ladeanzeige:https://s.click.aliexpress.com/e/_c4KGEDh5
Und einen 3D-Drucker, um das Gehäuse zu drucken.
Schaltungsdiagramm
Die Verkabelung dieses Projekts ist wirklich einfach!
* Verbinden Sie Pin-8 des ESP32 mit dem Reset-Pin (Pin 15) von IC#1.
* Verbinden Sie Pin-10 des ESP32 mit dem Clock-Pin (Pin 14) von IC#1.
* Verbinden Sie Pin-9 des ESP32 mit dem Tastschalter mithilfe eines Pull-up-Widerstands.
* Verbinden Sie Pin-0 des ESP32 mit der Wi-Fi-Anzeige-LED mithilfe eines Strombegrenzungswiderstands.
Für den Rest der Verkabelung, schau dir das Schaltdiagramm auf dem Bildschirm an.
Um die Sache noch einfacher zu machen, habe ich ein benutzerdefiniertes PCB für euch entworfen.
Kernfunktionalität
Ich habe dieses LED-Roulette-Projekt ursprünglich mit einem 555-Timer-IC und einigen CD4017 CMOS-Zehnerzählern gebaut. Der 555-Timer funktioniert als Taktoszillator und erzeugt ein Signal, das den 4017-Zehnerzähler steuert. Der Ausgang von PIN-3 des IC555 wird in PIN-14 des IC4017 eingespeist. Jedes Mal, wenn der IC4017 einen Impuls erhält, erhöht er den
Um mehr über die ICs zu erfahren, schaut euch bitte mein Tutorial Nr. 26 "555 Pulsgenerator-Modul, wie es funktioniert" an, der Link ist in der Beschreibung unten.
Der Hauptnachteil dieses ursprünglichen Designs ist, dass ich die Zählung manuell durchführen musste. Ich wollte ein System, bei dem die Zahlen automatisch hinzugefügt werden und der Gewinner vom System selbst bestimmt wird. Mein Ziel ist nicht, ein Glücksspielrad zu bauen, sondern ein einfaches Roulette-Spiel, das ich gerne mit meinem Sohn spiele.
Um das zu erreichen, erwies sich der ESP32-C3 Super Mini als die perfekte Wahl. Er ist kompakt und verfügt über integrierte Wi-Fi-Funktionalität.
Also, anstatt den 555-Timer-IC zu verwenden, bin ich auf das ESP32-C3-Board umgestiegen, um "Taktimpulse" für einen der CD4017-ICs zu erzeugen. Wenn der Knopf gedrückt wird, werden die Impulse immer schneller. Das Licht rast um den Kreis und erzeugt das Gefühl eines "Drehens". Wenn der Knopf losgelassen wird, stoppt das Drehen nicht sofort. Stattdessen erhöht es allmählich die Zeit zwischen
Der Code
Jetzt lassen Sie uns einen Blick auf die Logik werfen, die die gesamte Show antreibt.
Wie bereits erwähnt, stützt sich das System auf viele Komponenten, Arduino-Code, PHP, MySQL-Datenbank und mehr. Mein GitHub-Repository enthält zwei Versionen des Codes: eine mit einem Server und eine ohne. Wenn Sie die Ergebnisse nicht auf einem Server speichern müssen, können Sie einfach den "Code_No_Wi-Fi" auf Ihr ESP32-Board hochladen.
Allerdings werde ich für dieses Tutorial die volle Funktionalität des Setups demonstrieren.
Nun, lassen Sie uns die Codes eins nach dem anderen überprüfen.
Im Arduino-Code müssen Sie die SSID und das Passwort Ihres Netzwerks eingeben sowie die Server-IP und die URL so einstellen, dass sie mit dem Verzeichnis übereinstimmen, in dem Ihre PHP-Dateien gespeichert sein werden.
Keine anderen Teile des Codes müssen geändert werden, es sei denn, Sie möchten der bestehenden Funktionalität neue Funktionen hinzufügen.
Wenn Sie das Roulette einschalten, versucht der ESP32 zunächst, über WLAN eine Verbindung zum Server herzustellen. Sobald die Verbindung hergestellt ist, können die Spieler das Spiel beginnen. Durch Drücken der Taste wird die LED-Sequenz beschleunigt, indem die Verzögerung reduziert wird, während das Loslassen der Taste sie verlangsamt, bis sie eine Stopp-Schwelle überschreitet. Dies erzeugt einen natürlichen Freilauf-Eff
Sobald das LED-Rad anhält, sendet der ESP32-C3 die Gewinnerposition an einen Remote-Server. Dieser Prozess wird fortgesetzt, solange die Spieler weiter spielen.
Zusätzlich zum Code habe ich eine "MySQL_DB.sql"-Datei beigefügt, die in Ihren MySQL-Server importiert werden muss.
Um dies zu tun, öffnen Sie phpMyAdmin, gehen Sie zum Tab "Import", klicken Sie auf die Schaltfläche "Datei auswählen" und wählen Sie die Datei "MySQL_DB.sql". Klicken Sie dann auf die Schaltfläche "Gehen", um die Tabellen zu importieren. Um zu überprüfen, ob der Import erfolgreich war, klicken Sie auf die Tabellennamen und überprüfen Sie, ob die Tabellenstrukturen korrekt angezeigt werden.
Um den Webserver einzurichten, müssen wir einige Änderungen an den heruntergeladenen PHP-Dateien aus meinem GitHub-Repository vornehmen. Öffnen Sie "Connection.php" und aktualisieren Sie den Hostnamen, den Benutzernamen, das Passwort und den Datenbanknamen in der Datei. Anschließend ziehen Sie die Dateien in ein Verzeichnis auf Ihrem Webserver.
Um zu überprüfen, ob alles ordnungsgemäß funktioniert, öffnen Sie die Datei "Player_Results_Display.php" in einem Webbrowser und bestätigen Sie, dass die Bestenliste korrekt angezeigt wird.
Breadboard-Demo
Jetzt, da die Hardwarelogik bereit ist und der Server eingerichtet ist, können wir einen schnellen Test auf einem Breadboard durchführen, um die Funktionalität des Systems zu überprüfen.
Lasst uns weitermachen und auf den Knopf drücken, um zu sehen, ob der serielle Monitor den Druck registriert. Wie wir sehen können, wird ein HTTP 200-Code auf dem seriellen Monitor angezeigt, was auf eine erfolgreiche Kommunikation mit dem Server hinweist. Auf der Leaderboard-Seite können wir bestätigen, dass der Server den Tastendruck aufgezeichnet hat. Die Webseite aktualisiert sich automatisch alle 5 Sekunden und zeigt die neuesten
Die Seite enthält nebeneinander angeordnete Scorecards für "Spieler 1" und "Spieler 2", die die Live-Ergebnisse, Siege, Niederlagen, Unentschieden und die Gesamtzahl der von jedem Spieler gespielten Partien zeigen.
Wenn du auf die Schaltfläche "Neues Spiel" klickst, wird die Seite zurückgesetzt, und das System aktualisiert die Gewinn-, Verlust- oder Unentschieden-Zählung des Spielers basierend auf dem aktuellen Punktestand.
3D-Drucken
Mit Microsoft 3D Builder habe ich das 3D-Modell dieses Projekts entworfen.
Das Design besteht aus drei Teilen:
- Der obere Abschnitt, der alle LEDs enthält,
- Der untere Abschnitt, der alle elektronischen Komponenten enthält, und
- Ein kleiner Block, der eine blaue Wi-Fi-Anzeige-LED, ein Batterielade-Modul, einen SPDT-Ein-/Ausschalter sowie Löcher für das Antennenkabel und den Drucktasten-Schalter beherbergt.
Ich habe das Modell in Bambu Studio geschnitten und es mit meinem neuen Bambu A1 3D-Drucker ausgedruckt.
Schließlich habe ich mit Acrylfarben den Körper des Projekts bemalt. Die Goldbeschichtung hat das Aussehen des Drucks wirklich verbessert. Nachdem die Farbe getrocknet war, habe ich alle LEDs in den oberen Bereich eingebaut und ihre negativen Anschlüsse in "Zehnergruppen" miteinander gelötet.
Löten
Nun, lassen Sie uns mit der Montage aller elektronischen Komponenten beginnen. Nehmen Sie sich zunächst einen Moment Zeit, um die Qualität der hergestellten Leiterplatte zu überprüfen. Ich benutze PCBWay seit fast sechs Jahren, und ich liebe das Endprodukt, das sie liefern, absolut.
Lass uns damit beginnen, alle Widerstände auf das Board zu löten, gefolgt von allen Transistoren.
Weil ich besonders sorgfältig mit meinen ICs und Mikrocontrollern umgehe, löte ich sie nie direkt auf das Board. Für ICs verwende ich immer IC-Sockel, und wenn kein Sockel verfügbar ist, benutze ich weibliche Pin-Header. Dies vermeidet direktes Löten und erleichtert den Austausch. Einer nach dem anderen habe ich alle Komponenten auf das PCB gelötet.
Um das Board mit Strom zu versorgen, müssen wir das Lademodul und einige zusätzliche Komponenten integrieren. Ich begann mit der Installation des SPDT-Schalters, gefolgt von der blauen Wi-Fi-Anzeigeleuchte. Dann klebte ich das kleinste Batterielademodul der Welt auf den Block und befestigte es mit diesem kleinen weißen Block. Schließlich klebte ich die Ladeanzeige gemäß dem Schaltplan auf dem Bildschirm fest.
Die verbleibenden zwei Löcher beherbergen die Antenne und den Druckknopfschalter. Schließlich, sobald alle Komponenten an ihrem Platz waren, habe ich den Kunststoffblock in die Nut an der Unterseite der Basis geklebt.
So sieht das Board aus, nachdem ich alle Drähte, die an die LEDs angeschlossen werden, gelötet habe. Für LEDs 1 bis 10 verwenden Sie Common GND2 und für LEDs 11 bis 20 verwenden Sie Common GND1.
Beim Löten der LEDs auf das Board sollten Sie sicherstellen, dass Sie sie in der richtigen Reihenfolge löten, um eine Fehlzuordnung der physischen LED-Nummern mit dem, was der Code an den Server sendet, zu vermeiden. Folgen Sie den Anweisungen auf dem Bildschirm für die richtige Reihenfolge. Wenn Sie die LEDs versehentlich falsch löten, können Sie das Array im Arduino-Code modifizieren, um die Änderung zu ber
In meinem Setup versorge ich alles mit einer wiederaufladbaren 3,7V-Batterie. Wenn Sie jedoch bevorzugen, können Sie entweder einen 220V-zu-5V-Step-Down-Konverter oder ein USB-Kabel an die +5V- und -VE-Löcher auf dem Board löten.
Sobald alles an seinem Platz ist, bleibt nur noch übrig, das untere Teil an das obere Teil zu kleben.
Finales Demo
Nachdem die Hardware bereit ist, ist es Zeit, Spaß zu haben! Schalten Sie das Gerät ein und warten Sie, bis die blaue LED aufleuchtet. Wenn sie aufleuchtet, bestätigt sie die Wi-Fi-Verbindung zum Server. Drücken Sie den Druckknopf, um die LED-Chase zu starten. Ihr Punktestand kann auf jedem Gerät (PC oder Mobilgerät), das mit demselben Netzwerk verbunden ist, eingesehen werden.
Danke
Nochmal vielen Dank, dass du meinen Beitrag überprüft hast. Ich hoffe, es hilft dir.
Vollständiger Blog-Beitrag:https://diyfactory007.blogspot.com/2026/05/Roulette.html
태그
모델 소스



















