Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:52
Dies ist ein einfaches Arduino-Projekt, um einen elektronischen Würfel herzustellen. Es kann zwischen 1 bis 6 Würfeln oder 1 von 8 Spezialwürfeln gewählt werden. Die Auswahl erfolgt durch einfaches Drehen eines Drehgebers.
Dies sind die Funktionen:
- 1 Würfel: große Punkte zeigen
- 2-6 Würfel: Anzeige von Punkten sowie Gesamtwert (abwechselnd)
- 4, 5, 8, 10, 12, 20, 24 und 30 gedeckte Würfel mit Wert und Indikator für den gewählten Würfel
- Animation zum Würfeln beim Drücken der Taste
Es ist möglich, alles in einen 7 x 7 cm großen Würfel zu stecken, einschließlich einer Batterie. Aber dann müsstest du alles löten. Ich habe ein Steckbrett und einige Überbrückungsdrähte verwendet, um alles zu verbinden, daher die größere Box darunter.
Um die Arduino-Zufallszahlen zu säen, habe ich das Auslesen eines nicht verbundenen freien Pins verwendet.
Anmerkung: Diese Anleitung zeigt Ihnen jeden Schritt, damit der E-Würfel funktioniert. Ich werde ein pdf mit einem Grundmuster für die Box hinzufügen, jedoch ohne weitere Anweisungen. Indem Sie eine Schicht Papier über die LED-Matrix legen, machen Sie Zahlen und Ergebnisse besser sichtbar.
Anmerkung 4 Wochen später: Ich habe dieses Projekt auf einen attiny85-Chip portiert, mit einem Programm und einem Spannungsteiler, um den Reset-Pin zu umgehen und als Knopfpin zu verwenden. Bitte kontaktieren Sie mich für weitere Informationen.
Lieferungen
- Arduino (ich habe einen Nano verwendet)
- Drehgeber (oder Klick-Encoder, aber wir verwenden die Push-Funktion nicht)
- Druckknopf
- 8 x 8 LED-Matrix mit MAX7219-Modul (weniger Pins erforderlich! 3 statt 8)
- Drahtbrücken
Schritt 1: Schritt 1: Komponenten einstecken
-
Stecken Sie alle Komponenten so ein, dass keiner der Pins miteinander verbunden ist. (Löcher a bis e sind pro Zeilennummer verbunden, gleiches für Löcher f bis j)
- Der Arduino Nano geht oben mit Pins auf beiden Seiten des zentralen Pins.
- Der (Klick-)Encoder oder Drehgeber geht nach links
- Die LED-Matrix rechts
- Druckknopf an der Unterseite für einfachen Zugriff (bestimmen, welche Kontakte durch Drücken geöffnet werden)
- Verwenden Sie ein Stück Draht, um die beiden "+"-Leitungen zu verbinden
- Machen Sie dasselbe für die beiden "-" Leitungen (Masse oder Masse)
Schritt 2: Schritt 2: Verbinden Sie die 8x8 LED-Matrix mit Arduino
Wir verwenden eine LED-Matrix mit einem MAX72XX-Treiber. Wir können bis zu 5 Pins sparen und müssen nicht multiplexen.
Es ist möglich, mehrere Matrizen an einen MAX72xx-Treiber anzuschließen. Dafür gibt es eine "OUT" und "IN" Seite. Wir verwenden nur die "IN"-Pins.
Diese Stifte werden in das Steckbrett eingeschoben. Sie können die Pin-Namen direkt unter der LED-Matrix sehen. Alle müssen verbunden sein:
- VCC auf 5V ("+"-Leitung)
- GND zu GND ("-"-Leitung)
- DIN auf Arduino D12 (orangefarbener Jumper)
- CS zu Arduino D10 (grüner Jumper)
- CLK zu Arduino D11 (weißer Jumper)
Schritt 3: Schritt 3: Drehgeber anschließen
Ich habe einen Dreh-Klick-Encoder verwendet. Diese Encoder haben eine zusätzliche Push-Funktion (und einen zusätzlichen Pin), die wir in diesem Projekt nicht verwenden. Sie könnten mit einem gewöhnlichen Drehgeber arbeiten.
Wenn Sie den Knopf drehen, gibt der Encoder + oder - Signale im Vergleich zur ursprünglichen Position aus. Beim Drehen spürt man Kerben. In meinem Fall habe ich mit Serial.print () herausgefunden, dass der Encoder 4 Schritte für jede Kerbe gab. Sie müssen dies anpassen, wenn einige der Würfeltypen übersprungen werden. (Siehe Code)
Schließen Sie den Encoder wie folgt an:
- GND zu GND ("-"-Leitung) (kleines Stück schwarzes Kabel)
- + bis 5V ("+"-Leitung) (kleines Stück rotes Kabel)
- SW zu nichts (dies ist der Schalter, den wir nicht verwenden.)
- DT auf A1 (orangefarbener Jumper)
- CLK auf A0 (weißer Jumper)
Schritt 4: Schritt 4: Taste und VCC
In meiner ersten Version habe ich einen Knopf mit einem zusätzlichen Widerstand verwendet. In der Arduino-IDE können Sie jedoch die Verwendung eines Pull_up-Widerstands einstellen. Damit benötigen Sie keinen zusätzlichen Widerstand, aber Sie müssen den Code ein wenig invertieren, indem Sie diese Schaltfläche lesen.
Verbinden Sie einfach ein Ende des Tasters mit GND ("-"-Leitung) und das andere Ende mit D2 (blauer Jumper).
Die letzte Verbindung, die hergestellt werden muss: ein Draht vom Arduino 5V zur "+"-Leitung zur Verwendung der geregelten 5V des Arduino.
Nach diesen Schritten werden alle Verbindungen hergestellt, um eine funktionierende Version zu erstellen.
Anmerkung: Sie könnten eine Batterie hinzufügen. Verbinden Sie die Batterie mit + an VIN und - an GND ("-"-Leitung).
Schritt 5: Schritt 5: der Code
Öffnen Sie die Arduino-IDE.
Sie können die ZIP-Dateien für die Bibliotheken herunterladen, die nicht über die "Bibliotheksverwaltung" in der IDE verfügbar sind.
Stellen Sie sicher, dass Sie die folgenden Bibliotheken über "Bibliotheksverwaltung" hinzufügen oder fügen Sie die Bibliothek manuell in der IDE hinzu:
LedControl von Eberhard Fahle v1.0.6
-
TimerOne von Jesse Tane, Jérôme Despastis, … (Ich habe die Version r11 manuell heruntergeladen und installiert von:
code.google.com/archive/p/arduino-timerone…
- Encoder von Peter Dannegger gefunden auf
Ich benutze Peter Danneggers Bibliothek, weil er eine Funktion hinzugefügt hat, um dem Encoder Beschleunigungsempfindlichkeit zu verleihen: Schnelleres Drehen lässt die Zahlen schneller steigen.
Sobald diese Bibliotheken installiert sind, sollten Sie die Datei edice.ino öffnen und kompilieren können.
Schritt 6: Schritt 6: Machen Sie es hübsch …
Ich mag es, meine Arduinos wiederzuverwenden, also löte ich selten ein Projekt oder bemühe mich, es schöner aussehen zu lassen. Ich mag den nerdigen Stil von Drähten und Jumpern…
Allerdings habe ich diese kleine Vorlage gemacht, um alle Komponenten zu halten. Wenn Sie die Box mit den auf weißem Papier gedruckten Zahlen 30 bis 4 über die Matrix legen, lenken die separaten LED-Gehäuse weniger ab. Als Bonus zeigen Ihnen die LEDs in der obersten Reihe, welcher dieser speziellen Würfel ausgewählt wurde.
EDIT: Ich habe eine Version mit einem attiny85 Digistump-Funken in einer schönen Lasercut-Box gemacht. Der Knopf wird verwendet, um die Matrize sowie einen Druckknopf auszuwählen.