9 x LED High Low in Array

Hallo Leute,

ich möchte ein digitalen Würfel aus 9 LED´s machen.
Den Status der einzelnen LED´s möchte ich gern aus einem Array (oder eine andere Lösung)
auslesen und anzeigen lassen.

Beispiel:

Arrayfüreins[9] {0,0,0,0,1,0,0,0,0} // Mittlere LED High alle andern Low
Arrayfürzwei[9] {1,0,0,0,0,0,0,0,1} // und so weiter…

Hättet Ihr ein Codebeispiel für mich.
Danke für die Hilfe.

Du kannst 8 Zustände in einem Byte speichern und 16 in einem unsigned int. Die IDE hat Makros um die Bits direkt zu setzen und zu lesen.

TheMerchant: ich möchte ein digitalen Würfel aus 9 LED´s machen.

Mit 9 LEDs wird das vermutlich deshalb nichts, weil Du damit kaum einen Würfel hinbekommen wirst (zumindest keinen mit einer Kantenlänge von drei). Nimm 9 je „Ebene“ (zusammen dann 27), dann stimmt’s :-)

Gruß

Gregor

gregorss: Mit 9 LEDs wird das vermutlich deshalb nichts, ...

Ich vermute, er meint einen elektronischen Würfel für "Mensch ärgere Dich nicht" und Co.

X . X
. X .
X . X

agmue: Ich vermute, er meint einen elektronischen Würfel für "Mensch ärgere Dich nicht" und Co.

X . X
. X .
X . X

Oh, stimmt. Darauf hätte ich kommen können ...

Gruß

Gregor

uint16_t Arrayfüreins[9] {0b000010000} //  Mittlere LED High alle andern Low
uint16_t Arrayfürzwei[9] {0b100000001} // und so weiter....
X . X
X X X
X . X

Nur die sieben mit einem "X" gekennzeichneten LEDs werden aber für die Zahlen eines Würfels benötigt, daher reichen auch sieben Bits, also ein Byte.

Hallo,

@ Gregor, mit deiner Busneuerfindung sehe ich schwarz, wenn du mit 9 LEDs kein 3x3 Muster hinbekommst. ;)

Meine Würfel benötigen zwar nur 7 Punkte bzw. LEDs, aber es gibt ja noch andere Zauberwürfel.

Wenn du ein paar Leitungen einsparen möchtest und den Code dafür etwas umfangreicher baust, kannste paar LEDs immer zu Gruppen zusammenfassen. Dann ergeben die Gruppen die gewünschten Ziffern. Habe damals angefangen mit dem Buch von Erik Bartmann und dem Würfel.

Anordung Bsp. vom normalen Würfel

Gruppe A 1 5 2 4 6 3 7

Gruppe B 1 5 2 4 6 3 7

Gruppe C 1 5 2 4 6 3 7

Gruppe D 1 5 2 4 6 3 7

Dann kombinierst du die Gruppen zu den gewünschten Ziffern. Vielleicht als Anregung gedacht.

Weil du nach Code dafür gefragt hast, dass sind alles noch Grundlagen etwas kombiniert. http://erik-bartmann.de/48-arduino-projekt-kapitel-uebersicht.html

Doc_Arduino:
@ Gregor, mit deiner Busneuerfindung sehe ich schwarz, wenn du mit 9 LEDs kein 3x3 Muster hinbekommst. :wink:

Da ich für den Bus keine LEDs benötige, ist noch alles drin. Aber ich könnte ja mal überlegen, wie ich dort ein paar LEDs unterbringe, damit ich eine Ausrede habe :slight_smile:

Gruß

Gregor

Hallo Leute,

Danke danke danke für eure Antworten.
Ja es soll ein Würfel für Gesellschaftsspiele werden und sicher brauche ich dafür “nur” 7 LED´s.
der Würfel soll wenn er mal keine Zahlen zieht eine “Pausenfunktion” in Form von LED Mustern haben.

Wenn der Taster gedrückt wird soll er wieder eine Zahl ziehen. (siehe Bild)
Bin am überlegen ob ich 8 LED´s analog ansteuere, damit ich auch Dimmen kann.

Wenn ihr noch weitere Ideen habt wie man das Umsetzen kann…
immer her damit.

TheMerchant: Wenn ihr noch weitere Ideen habt wie man das Umsetzen kann... immer her damit.

LED - RGB Addressable, PTH, 5mm werden wie WS2812B mit einem Arduino-Ausgang für alle LEDs wie ein Schieberegister angesteuert. Jeder Lichtpunkt enthält drei RGB-LEDs und ein IC für PWM. Da kann jeder in seiner Lieblingsfarbe würfeln. Unter NEOPIXEL findest Du mehr Infos.

TheMerchant: Wenn ihr noch weitere Ideen habt wie man das Umsetzen kann... immer her damit.

Vor gut 30 Jahren gab es mal Bausätze "elektronischer Würfel" als Lötübung, ohne Microcontroller, das war glaube ich rein mit analogen Bauelementen, Logikbaustein und 7 LEDs mit einem Taster und einem Piezolautsprecher aufgebaut.

Wenn man den Taster drückte fingen die LEDs an in extrem schneller Folge wechselnde Würfelmuster anzuzeigen und gleichzeitig spielte der Piezo einen schnell schnarrenden Ton ab. Dann wurde alles langsamer, die angezeigten Würfel muster wechselten langsamer und langsamer und langsamer, das Schnarren aus dem Piezo wurde immer langsamer und langsamer und langsamer, bis schließlich das Würfelmuster stehen blieb und der Piezo verstummte und ndach einigen Sekunden alle LEDs aus gingen(Stromsparen, die Schaltung war batteriebetrieben. Das zuletzt "stehend" angezeigte Muster repräsentierte dann die "gewürfelte" Augenzahl.

Nur mal so als Idee, falls Du auch Animation, Bewegung und Geräusch in Deinem elektronischen Würfel unterbringen möchtest. Das hatten nämlich vor über 30 Jahren schon Lötübungs-Bausätze für 6,95 ("D-Mark") ganz ohne Mikrocontroller.

Dimmen kannst Du Deine LEDs übrigens auch per Software-PWM durch sehr schnelles An- und Ausschalten. Wenn Du das fünfzig- bis hundertmal pro Sekunde machst, ist es für das Auge nicht mehr wahrnehmbar und einen Unterschied zu den ca. 500 bis 1000 Hz PWM von analogWrite auf einem UNO sieht man auch nicht mehr.

Hallo,

ich hatte wie gesagt den Würfel nachgebaut und dann erweitert mit einem Lauflicht als Kometenschweif. Taster wird gedrückt, Kometenschweif wird langsam schneller im Uhrzeigersinn, solange der Taster gedrückt bleibt, läuft das Lauflicht. Wird der Taster losgelassen, kehrt sich die Laufrichtung um und der Kometenschweif wird langsamer, wenn er steht erscheint die Zufallszahl. Die Zufallszahl wird während des Taster drücken permanent erzeugt.

Dein LED-Außenviereck bietet sich dafür regelrecht an.

Dabei lernte ich mit analogWrite, arrays und millis umzugehen und habe viele Nächte geflucht wie ich den Kometenschweif "in schön" hinbekomme.

TheMerchant: Hallo Leute,

Danke danke danke für eure Antworten. Ja es soll ein Würfel für Gesellschaftsspiele werden und sicher brauche ich dafür "nur" 7 LED´s. der Würfel soll wenn er mal keine Zahlen zieht eine "Pausenfunktion" in Form von LED Mustern haben.

Wenn der Taster gedrückt wird soll er wieder eine Zahl ziehen. (siehe Bild)

Und, wie weit bist Du?

Wenn noch nicht so weit,dann hilft Google weiter. Hier habe ich ein unvollständiges Steckbrett-Schaltbild zusammen mit einem vollständigen Arduino-Code mit Hilfe von Google gefunden: http://www.multiwingspan.co.uk/arduino.php?page=led10

Auf dem Steckbrett fehlen noch die sieben Vorwiderstände für die sieben LEDs und der Button. Wie die 330 Ohm Vorwiderstände und der Button angeschlossen werden sollen, steht im Text der Seite unter "Other Things To Do" erläutert.

TheMerchant: ... Wenn ihr noch weitere Ideen habt wie man das Umsetzen kann...

Ich habe den Rest des Threads nicht gelesen. Evtl. ist das Folgende überflüssig.

Nur eine Idee: Wenn Du Pausenzeiten mit einem „Bildschirmschoner“ verkürzen möchtest, könntest Du die 3x3-Matrix als „echtes Gitter“ aufbauen. Dann bräuchtest Du nur 3 Pins für die „an-/aus-Info“ (für die drei LEDs einer Zeile der Matrix) und zwei oder drei Pins, um die einzelnen Zeilen schalten zu können. So könntest Du noch lernen, was Multiplexing ist und womöglich auch noch mit verschiedenen Helligkeiten spielen.

Andere Idee: Wenn pausiert wird, zeigt die Matrix kein „Bild“ an, sondern wird zu einem binären Zähler. Ich habe mir mal einen binären Zähler mit 35 Bit gebaut (siehe hier). Der zählt bis etwa 32 Milliarden und braucht dafür etwa 22 Tage (obwohl der mit rund 19 kHz zählt).

Gruß

Gregor