8x8 LED-Matrix direkt über Arduino Uno betreiben

Hallo zusammen,

ich weiß, dass es schon viele Threads zum Thema LED-Matrix gibt, bin aber trotzdem mit meinem spezifischen Problem noch nicht weitergekommen. :)

Zu allererst sei gesagt, dass ich ein kompletter Arduino-Neuling bin, sprich, noch nicht wirklich mit der Plattform gearbeitet habe. Mein aktuelles Problem ist, dass ich eine 8x8 LED-Matrix direkt (ohne Schieberegister o.Ä.) über Arduino betreiben will. Aus dem Ganzen soll, in hoffentlich nicht allzu ferner Zukunft, das bekannte Snake werden.

Datenblatt der Matrix: https://files.elv.com/Assets/Produkte/12/1290/129055/Downloads/OM-23881BUHR-21-L5,1.pdf

Nun zu meinen Fragen:

  • Ich habe gelesen, dass man für die LED-Matrix am besten Vorwiderstände verwendet. Ich habe 2x 8 Pins an der Matrix. Brauche ich dann vor jedem Pin einen Widerstand (also insgesamt 16 Stück) oder wie lässt sich das am geschicktesten lösen?
  • Wie bringe ich meine 16 Pins an den Arduino? Nur die digitalen Anschlüsse reichen da natürlich nicht aus, aber kann ich die 5 zusätzlichen analogen Anschlüsse einfach so mit den Digitalen "mischen", um meine 16 Pins irgendwie unterzukriegen, oder was muss ich da beachten?
  • Dann noch ein letztes: Ich bin bisher in meinem Unterbewusstsein einfach mal davon ausgegangen, dass die Matrix keine externe Spannungsquelle benötigt und quasi durch das Arduino gespeist wird. War der Gedanke richtig? Immer diese...hust..."kleinen" Details, die man sich dann erst beim Aufbau fragt... :)

So, das dürfte erst einmal alles gewesen sein. Wie gesagt, ich hoffe, dass es nicht schon ein Thema gibt, dass genau diese Punkte behandelt.

Auf jeden Fall schon einmal Danke im Voraus für die Antworten. :)

Respekt, das ist für einen Anfänger ein ganz schöner Brocken den Du Dir da vorgenommen hast.

  1. Frage an Dich: schon mal von Multiplexing gehört und wie das vonstatten geht? Das wirst Du unbedingt brauchen.

Zu Deinen Fragen: 1. Ich kenne mich mit LED Matrizen nicht aus, also schon die nächste Frage: welche hast Du, Link zum Produkt bitte. 2. Analoge kannst Du wie digitale Pins verwenden. 3. Passt schon, aber da sind wir wieder bei Antwort 1

Danke für die Antwort Klaus, ich habe bereits im Eingangspost den Link zum Datenblatt angehängt - meine Matrix ist die hier: https://www.elv.de/8-x-8-led-dot-matrix-display-om23881buhr-21-l5-1.html

Das ist eben auch mein Problem, dass ich noch nicht ganz hinter die innere Verschaltung der Matrix gekommen bin, bzw. wie sie genau arbeitet.

Multiplexing-Verfahren haben wir damals in der Schule durchgenommen - müsste mich zwar wahrscheinlich wieder tiefer in das Thema einlesen, aber ja, habe ich schon mal was von gehört. :)

In welchem Zusammenhang steht das Multiplexing denn zu der Matrix? Ich weiß, dass Multiplexing zur Signalübertragung angewandt wird - um gewisse Informationen zu verschachteln und damit eine höhere "Datenbreite" (wahrscheinlich das falsche Wort) zu ermöglichen.

In Deiner Matrix liegen die Kathoden (Spalten) und die Anoden (Zeilen).

Wenn Du also eine Spalte auf GND legst und eine Zeile über Vorwiderstand auf 5V dann leuchtet die Diode an der Kreuzung Zeile/Spalte.

Wenn Du nun die einzelnen Spalten schnell hintereinander auf GND legst, leuchtet [u]nacheinander[/u] der jeweilige Punkt in der Zeile auf. Wenn Du das schnell genug machst, leuchten sie scheinbar gleichzeitig. Auch das nennt man Multiplexen.

Wenn Du zusätzlich noch das Bild aller zugehörigen Zeilen für eine Spalte und dazu die Spalte ansteuerst, kannst Du Buchstaben und Zahlen anzeigen.

Das zum Grundprinzip. Die Spalten würde ich jeweils über Transistor oder Logiklevelmosfet steuern.

Gruß Tommy

Eine 8x8 Matrix ohne irgendwelchen Elektronik betreiben wollen funktioniert nicht gut.

Beim Beispiel von Tommy56 zu bleiben:
Wenn Du eine Spalte auf GND legst hast Du 8 Anoden (Zeilen) die Du je nach dem wieviele LEDs eingeschaltet sein sollen über einen Vorwiderstand auf +5V schaltest. Da der Max Strom eines Pins 20mA ist darf also eine LED nur 2,5mA fließen. Dazu kommt, daß es 8 Spalten gibt und darum jede Spalte (bei keinem Zeitverlust beim Umschalten ) nur 1/8 der Zeit eingeschaltet ist . Beides zusammen bedeutet das die Matrix sehr schwach leuchtet.
Du brauchst an den Spalten Transistoren oder ein Transistor Array (ULN2803) damit ein höherer Strom ( 20 mA pro Zeile / LED) fließen kann.
Mein Vorschlag: nimm einen MAX7219. Der übernimmt autonom das Multiplexen und die Ansteuerung. Du brauchst auch keine Vorwiderstände. Beispiele mit Arduino gibs zuhauf.

Grüße Uwe