Hallo zusammen, heute werde ich euch zeigen, wie ich ein "digitales Roulette" herstellen kann, indem ich den superkleinen Mikrocontroller ESP32-C3 mit dem klassischen CD4017 CMOS-Zehnjahreszähler kombiniert.
Wenn der Knopf gedrückt wird, sendet der ESP32 einen "Taktimpuls" an den CD4017-IC, was zum Blinken der LEDs führt. Das Loslassen des Knopfes löst einen realistischen Verzögerungseffekt aus, bis er bei einem zufälligen Ergebnis anhält, und meldet die endgültige Position über einen seriellen Monitor oder über WLAN.
Glaubt mir, dieses Projekt beinhaltet viel Hardware-Design, Arduino-Programmierung, PHP, Datenbanken, 3D-Design und -Druck und vieles mehr.
Video:
https:// youtu.be/5jVFR7KSNmgVollständiger Blog-Artikel:
https:// diyfactory007.blogspot.com/2026/05/Roulette.html
Komponentenanforderungen
Für dieses Projekt benötigen wir:
🔗1 x ESP32-C3 Super Mini Plus Mikrocontroller:
https://s.click.aliexpress.com/e/_ c2zUTvyj
🔗2 CD4017 CMOS-Zehner-Zähler:
https://s.click.aliexpress.com/e/_ c33qzzRt🔗2 NPN-Transistoren des Typs 2N2222:
https://s.click.aliexpress.com/e/_ c4OwNvnZ🔗3x220 Ω Widerstände:https://s.click.aliexpress.com/e/_ c41SucJd
🔗1 x 10kΩ Widerstand:https:// s.click.aliexpress.com/e/_c41SucJd
🔗1 x Tastenschalter:
https://s.click.aliexpress.com/e/_ c3cfuN6J🔗1 x SPDT-Schalter:
https://s.click.aliexpress.com/e/_ c4FRHRaX 🔗18 x 5 mm rote LED:https://s.click.aliexpress.com/e/_ c2RpNzh9
🔗2 x 5 Millimeter grüne LEDs:https:// s.click.aliexpress.com/e/_c2RpNzh9
🔗1 x 3 mm blaue LED:
https://s.click.aliexpress.com/e/_ c306Pzbh🔗1 x 10mfd Kondensator (optional)
🔗https://s.click.aliexpress.com/e/_ c4okFfef:1 x LiPo-Batterie
🔗1 x Batterielade-Modul (optional):
https://s.click.aliexpress.com/e/_ c3EJLcZh🔗1 x Batterieladeanzeige:
https://s.click.aliexpress.com/e/_ c4KGEDh5Und drucken Sie das Gehäuse mit einem 3D-Drucker.
Schaltplan
Die Verkabelung dieses Projekts ist wirklich sehr einfach!
* Verbinden Sie Pin 8 des ESP32 mit dem Reset-Pin (Pin 15) von IC #1.
* Verbinden Sie Pin 10 des ESP32 mit dem Taktpin (Pin 14) von IC #1.
* Verbinden Sie den Pin 9 des ESP32 mit einem Tastenschalter, der mit einem Pull-up-Widerstand ausgestattet ist.
* Verbinden Sie den Pin 0 des ESP32 mit der Wi-Fi-Anzeigeleuchte, die mit einem Strombegrenzungswiderstand ausgestattet ist.
Für die restliche Verkabelung, sehen Sie bitte den Schaltplan auf dem Bildschirm.
Um die Sache einfacher zu machen, habe ich für Sie eine maßgeschneiderte PCB entworfen.
Kernfunktionen
Ich habe dieses LED-Roulette-Projekt ursprünglich mit einem 555-Timer-IC und mehreren CD4017 CMOS-Zehnerzählern gebaut. Der 555-Timer dient als Taktgeber und erzeugt das Signal, das den 4017-Zehnerzähler steuert. Der Ausgang von Pin 3 des IC555 wird an Pin 14 des IC4017 angelegt. Jedes Mal, wenn der IC4017 einen Impuls erhält, erhöht er die Zählung und aktiviert
Um mehr über ICs zu erfahren, schauen Sie sich mein Tutorial Nr. 26 "555 Pulsgenerator-Modul und seine Funktionsweise" an, der Link dazu befindet sich in der Beschreibung unten.
Der Hauptnachteil dieses ursprünglichen Designs ist, dass ich die Zählung manuell durchführen muss. Ich möchte ein System, das automatisch Zahlen hinzufügt, und der Gewinner soll vom System selbst bestimmt werden. Mein Ziel ist nicht, ein Glücksspiel zu entwickeln, sondern ein einfaches Roulette-Spiel, das ich mit meinem Sohn spielen kann.
Um dieses Ziel zu erreichen, ist der ESP32-C3 Super Mini die perfekte Wahl. Er ist kompakt und verfügt über integrierte WLAN-Funktionen.
So ist es, ich habe keinen 555-Timer-IC verwendet, sondern bin auf das ESP32-C3-Board umgestiegen, um für einen der CD4017-ICs einen "Taktimpuls" zu erzeugen. Wenn der Knopf gedrückt wird, werden die Impulse immer schneller. Das Licht läuft um den Kreis und erzeugt ein "Rotationsgefühl". Wenn der Knopf losgelassen wird, stoppt die Rotation nicht sofort. Stattdessen erhöht sich die Zeit
Code
Nun lassen Sie uns einen Blick auf die Logik werfen, die das gesamte Programm antreibt.
Wie bereits erwähnt, hängt das System von vielen Komponenten ab, einschließlich Arduino-Code, PHP, MySQL-Datenbanken usw. Mein GitHub-Repository enthält zwei Versionen des Codes: eine mit Server und eine ohne. Wenn Sie die Ergebnisse nicht auf einem Server speichern müssen, können Sie einfach "Code_No _wi-fi" auf Ihr ESP32-Board hochladen.
Aber in diesem Tutorial werde ich alle Funktionen der Einstellungen demonstrieren.
Jetzt lassen Sie uns den Code nacheinander durchgehen.
In dem Arduino-Code müssen Sie die SSID und das Passwort des Netzwerks eingeben und die Server-IP und die URL so einstellen, dass sie mit dem Verzeichnis übereinstimmen, in dem sich die PHP-Datei befindet.
Sie müssen keine anderen Teile des Codes ändern, es sei denn, Sie möchten dem vorhandenen Funktionsumfang neue Funktionen hinzufügen.
Wenn Sie das Roulette öffnen, versucht der ESP32 zunächst, über WLAN eine Verbindung zum Server herzustellen. Sobald die Verbindung hergestellt ist, kann der Spieler mit dem Spiel beginnen. Durch Drücken der Taste wird die LED-Sequenz beschleunigt, indem die Verzögerung reduziert wird, und durch Loslassen der Taste wird sie verlangsamt - bis sie den Stopp-Schwellenwert überschreitet. Dies erzeugt einen natürlichen Überlauf-E
Sobald das LED-Rad anhält, sendet der ESP32-C3 die Gewinnposition an den Remote-Server. Solange der Spieler weiter spielt, wird dieser Prozess fortgesetzt.
Zusätzlich zum Code habe ich auch eine Datei namens "MySQL_DB.sql" beigefügt, die in den MySQL-Server importiert werden muss.
Um dies auszuführen, öffnen Sie phpMyAdmin, gehen Sie zum Tab "Importieren", klicken Sie auf die Schaltfläche "Datei auswählen" und wählen Sie dann die Datei "MySQL_DB.sql". Klicken Sie anschließend auf die Schaltfläche "Gehen", um die Tabellen zu importieren. Um zu überprüfen, ob der Import erfolgreich war, klicken Sie auf den Tabellennamen und überprüfen Sie, ob die Tabellenstruktur korre
Um den Webserver einzurichten, müssen wir einige Änderungen an den PHP-Dateien vornehmen, die wir aus meinem GitHub-Repository heruntergeladen haben. Öffnen Sie "Connection.php" und aktualisieren Sie den Hostnamen, den Benutzernamen, das Passwort und den Datenbanknamen in der Datei. Anschließend ziehen Sie die Datei in den Ordner auf dem Webserver.
Um zu überprüfen, ob alles ordnungsgemäß funktioniert, öffnen Sie die Datei "Player_Results_Display.php" in Ihrem Webbrowser und stellen Sie sicher, dass die Rangliste korrekt angezeigt wird.
Demonstration auf einer Broschürenhalterung
Jetzt ist die Hardwarelogik bereit, der Server ist eingerichtet, und wir können einen schnellen Test auf der Breadboard durchführen, um die Funktionalität des Systems zu überprüfen.
Lassen Sie uns weiterhin auf den Knopf drücken und sehen, ob der serielle Monitor den Druck registriert hat. Wie wir sehen, wird der HTTP 200-Code im seriellen Monitor angezeigt, was auf eine erfolgreiche Kommunikation mit dem Server hinweist. Auf der Ranglistenseite können wir bestätigen, dass der Server den Knopfdruck registriert hat. Die Webseite wird alle 5 Sekunden automatisch aktualisiert und zeigt die neuesten Punktzah
Diese Seite enthält nebeneinander angeordnete Anzeigetafeln für "Spieler 1" und "Spieler 2", die die aktuellen Punktzahlen, Gewinne, Verluste, Unentschieden und die Gesamtspielzeit jedes Spielers anzeigen.
Wenn Sie auf die Schaltfläche "Neues Spiel" klicken, wird die Seite zurückgesetzt, und das System aktualisiert die Gewinn-, Verlust- oder Unentschieden-Zähler des Spielers basierend auf der aktuellen Punktzahl.
3D-Druck
Mit Microsoft 3D Builder habe ich das 3D-Modell für dieses Projekt entworfen.
Das Design besteht aus drei Teilen:
- Oben, um alle LEDs unterzubringen, -Der untere Teil, der alle elektronischen Komponenten enthält, und
- Ein kleines Stück, in dem sich eine blaue Wi-Fi-Anzeige-LED, ein Batterielade-Modul, ein SPDT-Ein/Aus-Schalter und Öffnungen für Antennenkabel und Tastenschalter befinden.
Ich habe das Modell in Bambu Studio in Scheiben geschnitten und es mit meinem neuen Bambu A1 3D-Drucker ausgedruckt.
Zum Schluss habe ich den Hauptteil des Projekts mit Acrylfarben gemalt. Die goldene Verkleidung hat das Aussehen des Drucks wirklich verbessert. Nachdem die Farbe getrocknet war, habe ich alle LEDs auf der Oberseite installiert und ihre negativen Anschlüsse in Form von "zehn Paaren" miteinander verschweißt.
Schweißen
Jetzt beginnen wir mit der Montage aller elektronischen Komponenten. Zunächst nehmen Sie sich etwas Zeit, um die Qualität der hergestellten PCB zu überprüfen. Ich verwende PCBWay seit fast sechs Jahren und ich liebe das Endprodukt, das sie liefern, absolut.
Lassen Sie uns zunächst alle Widerstände auf die Platine löten und dann alle Transistoren.
Weil ich besonders auf meine ICs und Mikrocontroller achte, löte ich sie nie direkt auf das Board. Für ICs verwende ich immer IC-Sockel. Wenn keine Sockel vorhanden sind, verwende ich weibliche Steckverbinder. Dies verhindert direktes Löten und erleichtert den Austausch. Ich löte alle Komponenten nacheinander auf das PCB.
Um die Leiterplatte mit Strom zu versorgen, müssen wir ein Lademodul und einige Zusatzkomponenten integrieren. Ich beginne mit der Installation von SPDT-Schaltern, gefolgt von einer blauen Wi-Fi-Anzeigeleuchte. Anschließend klebe ich das kleinste Batterielademodul der Welt auf den Block und befestige es mit diesem kleinen weißen Block. Zuletzt klebe ich die Ladeanzeigeleuchten gemäß dem Schaltplan auf dem
Die beiden verbleibenden Löcher beherbergen die Antenne und den Tastschalter. Zum Schluss, sobald alle Komponenten an ihrem Platz sind, klebe ich die Kunststoffteile in die Vertiefungen auf der Unterseite des Sockels.
Dies ist das Aussehen der Leiterplatte, nachdem ich alle Drähte, die mit der LED verbunden werden sollen, fertig geschweißt habe. Für die Leuchtdioden 1 bis 10 wird der universelle GND2 verwendet; für die Leuchtdioden 11 bis 20 wird der universelle GND1 verwendet.
Bei der Lötung der LEDs auf die Platine ist es wichtig, sie in der richtigen Reihenfolge zu löten, um sicherzustellen, dass die physische LED-Nummerierung mit dem Inhalt des an den Server gesendeten Codes übereinstimmt. Folgen Sie den Anweisungen auf dem Bildschirm, um die richtige Reihenfolge einzuhalten. Wenn Sie die LEDs versehentlich falsch löten, können Sie das Array im Arduino-Code ändern, um denIn meiner Einstellung
Ich verwende 3,7V wiederaufladbare Batterien, um alles mit Strom zu versorgen. Aber wenn Sie möchten, können Sie einen 220V-zu-5V-Abwärtswandler oder ein USB-Kabel an die +5V- und -VE-Buchsen auf der Platine anschließen.
Sobald alles bereit ist, bleibt nur noch übrig, den unteren Teil mit dem oberen Teil zu verkleben.
Die endgültige Demonstration
Die Hardware ist bereit, es ist 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 die Taste, um die LED-Verfolgung zu starten. Ihre Punktzahl kann auf jedem Gerät, das mit demselben Netzwerk verbunden ist (PC oder Mobilgerät), eingesehen werden.
Danke
Nochmals vielen Dank, dass Sie meinen Beitrag überprüft haben. Ich hoffe, dass es Ihnen helfen wird.
Vollständiger Blog-Artikel: https:// diyfactory007.blogspot.com/2026/05/Roulette.html
Etiquetas
Fuente del modelo



















