LED Matrix Grundlagen mit Multiplexing

Eine LED-Matrix ist ein Raster aus LEDs, welches als Display genutzt werden kann. Durch die Eigenschaft der Matrix ist es möglich, durch wenig Outputs viele LEDs anzusprechen.
In der Matrix ist jede LED einzeln ansprechbar. Dies ist möglich, wenn die Kathoden / Anoden in einer Zeile / Spalte miteinander verbunden sind.

Aufbau einer LED Matrix

Wie bereits erwähnt, werden jeweils die Kathoden bzw. Anoden miteinander verbunden. Ob die Kathoden als Zeile oder Spalte dienen ist irrelevant. Im Beispiel nehmen wir an, dass die Kathoden (also der Minuspol) der LEDs in Spalten miteinander verbunden sind, die Anoden (Pluspol) sind Zeilenweise miteinander verbunden. Als Schaltbild würde die Anordnung so aussehen:

LED Matrix Schaltplan 3x3

Schaltplan einer einfachen 3×3 LED Matrix. Die Anoden sind zeilenweise, die Kathoden spaltenweise miteinander verbunden.

Hierzu können die LEDs auf eine Platine gelötet werden. Ich persönlich knicke die Kathoden direkt an der Platine nach unten, die längeren Anoden werden im festen Abstand (ca. 1cm) vom Board aus rechtwinklig gebogen. So haben Plus- und Minuspol keinen Kontakt, und trotzdem bleibt die „Verdrahtung“ übersichtlich. Meistens sitzen die LEDs dabei so dicht aneinander, das nicht einmal Litze nötig sind, um elektrische Verbindungen herzustellen: Die Pins der LEDs können direkt aneinander gelötet werden.

Funktionsweise der Matrix

Im Grundzustand liegt weder eine positive Spannung an einer Zeile, noch GND an einer Spalte an. Soll nun die erste LED in der ersten Zeile, erste Spalte zum Leuchten gebracht werden, wird eine positive Spannung an Zeile 1 und 0V an Spalte 1 angelegt. Hierdurch ist die positive Spannung in der ganzen Zeile vorhanden. Doch nur durch die erste Spalte kann der Strom zu GND fließen, die anderen Spalten bleiben dunkel, da kein Strom fließt.

Selektiv LEDs in einer Matrix schalten

LED(1,1) leuchtet hier: Die positive Spannung liegt an der ganzen Zeile an, jedoch wird der Stromkreis nur in der ersten Spalte geschlossen.

Man kann nun ein Koordinatensystem festlegen, LED(1,1) sei die LED in Zeile 1, Spalte 1, LED(3,2) in Zeile 3, Spalte 2 (usw…). Soll nun LED(2,3) beleuchtet werden, wird V+ an Zeile 2 angelegt, GND an Spalte 3.
Natürlich können auch mehrere LEDs gleichzeitig leuchten. Dazu müssen nur mehrere Zeilen/Spalten „aktiviert“ sein. Liegt an Zeile 1 positive Spannung an, können mehrere Spalten auf GND geschaltet werden, damit die entsprechenden LEDs leuchten.

LED Matrix selektiv falsch geschaltet

Hier werde alle LEDs der beiden Zeulen beleuchtet, da sie durch die Spalten miteinander verbunden sind. Es kann also immer nur eine Zeile selektiv beleuchtet werden

Es kann auch eine Spalte auf GND geschaltet werden, und an verschiedenen Zeilen die positive Spannung angelegt werden.

Allerdings können nicht mehrere Zeilen und Spalten gleichzeitig angesteuert werden:

Sollen die LEDs (1,1);(1,3);(2,2) leuchten, müssten die Zeilen 1 und 2 positiv, die Spalten 1, 2 und 3 negativ sein. Das Ergebnis, wenn alle gleichzeitig geschaltet werden: Alle LEDs der ersten beiden Zeilen leuchten. Auch wenn LED(1,2) nicht leuchten soll, ist die zweite Spalte dennoch für LED(2,2) geschaltet, und damit leuchten alle LEDs dieser Spalte, deren Zeile positiv geschaltet ist.

Matrix als Display: Multiplexing

Das Problem ist also, dass nur die LEDs einer Zeile oder Spalte gleichzeitig gesteuert werden können.
Daher kann eine einfache Technik benutzt werden, um es dennoch so darzustellen, als würden alle LEDs gleichzeitig leuchten:

Die Zeilen werden sehr schnell hintereinander an/aus geschaltet. So leuchtet nur eine Zeile auf einmal, allerdings ist unsere Wahrnehmung so träge, dass es für uns so erscheint, als würden alle Zeilen auf einmal leuchten. Dieser Effekt tritt ab etwa 30Hz auf: Das gesamte Bild muss also 30 mal pro Sekunde aufleuchten.

Sind 3 Zeilen vorhanden, müssen 3 Zeilen pro Bild hintereinander angesteuert werden, bei 30 Bildern/Sekunde macht das 90 Zeilen pro Sekunde. Jede Zeile darf also nur 1/90 Sekunde leuchten, damit man auf 30Hz kommt.

Multiplexing Beispiel Abbildung

Durch Multiplexing kann ein T durch die Matrix angezeigt werden: Durch schnelles schalten wird das Bild statisch aussehen.

Dieses Verfahren wird auch Multiplexing genannt. Durch das Multiplexing kann also eine einfache Matrix aus LEDs als Display dienen. Dazu wird allerdings ein sehr schnelles Schaltgerät gebraucht. Sind in einer Matrix 10 Zeilen vorhanden, muss 300 mal in einer Sekunde eine Zeile zum Leuchten gebracht werden.

Eine Zeile zu schalten benötigt mehrere CPU-Zyklen, bei 100 Zyklen pro Zeile wären wir bei 30.000 Zyklen pro Sekunde, 30kHz. Es muss also darauf geachtet werden, dass das Steuersignal für eine Matrix entsprechend hohe Taktraten liefern kann, und der Prozessor genug Rechenleistung hat.
Im nächsten Artikel werden wir uns damit beschäftigen, wie so eine LED-Matrix Theoretisch geplant wird und anschließend praktisch umgesetzt wird.

MfG
Damon Dransfeld

Dieser Eintrag wurde veröffentlicht in Hardware Hacks
Bookmarken: Permanent-Link Schreibe einen Kommentar oder hinterlasse einen Trackback: Trackback-URL.

4 Kommentare

  1. Peter Meier
    Erstellt am 9. Oktober 2014 um 13:35 | Permalink zum Kommentar

    In welchem nächsten Artikel ? Vergessen ? Nicht fertig geworden ? Nicht verstanden, daß eine LED, die nur 1/10 der Zeit leuchtet, auch 10 mal so viel Strom benötigt, also viel mehr als ein Arduino-Ausgang lefern kann, und die Spalten, indenne 10 LED für 1/10 der Zeit eventuell alle gleichzeitig mit dem 10-fachen Strom leuchten sollen also den 100-fachen LED Strom schalten muss (bei 20mA LEDs also 2A) ?

    • Erstellt am 9. Oktober 2014 um 18:17 | Permalink zum Kommentar

      Hallo Peter,
      Den nächsten LED-Matrix Artikel erreichst du indem du 2 Blogposts nach vorn gehst (dazwischen liegt eine Installationsanleitung für XBMC). Oder direkt über diesen Link: http://www.tacticalcode.de/2013/01/led-matrix-theoretische-planung.html
      Ganz oben rechts gibt es auch ein Textfeld wo „Suchen“ drüber steht, da kann man z.B. LED Matrix eingeben und dann muss man nichtmal selbst nach dem Artikel suchen ;)
      http://www.tacticalcode.de/?s=LED+Matrix&searchsubmit=Suchen

      Nicht verstanden, daß eine LED, die nur 1/10 der Zeit leuchtet, auch 10 mal so viel Strom benötigt
      Da hast du dich leider vertan. Es hängt ganz von der LED ab, wieviel Strom sie zum Betrieb nutzt. Der Strom ist nur 10 mal so groß, wenn man den Wiederstand entsprechend dimensioniert, sodass die Leuchtkraft wieder 100% wie ursprünglich beträgt.
      Die LED hat natürlich auch eine etwas höhere inrush-current, die Transienten sind vor allem beim schnellen Ein- und Ausschalten von Bedeutung. Aber für ein Heimprojekt wie dieses kann man dies (fast) vernachlässigen, da die meisten Netzteile kurze Stomspitzen gut vertragen.
      Und wie du hoffentlich im Verlinkten Artikel lesen kannst, empfehle ich auch eine externe Stromquelle da das „Schaltgerät“ (Mikrocontroller) oft nicht dafür ausgelegt ist.

      Diese LED-Matrix war übrigens mein erstes Elektronik-Projekt überhaupt, also kann es gut sein dass einige Fehler in den Artikeln stehen, daher freue ich mich über kronstruktive Kritik.

      Deine Anschuldigungen helfen im Gegensatz wenig. Oder wie fändest du es wenn ich nur geantwortet hätte „Mal in der Blog-Kategorie zum Artikel geguckt? Zu dumm die Suche zu benutzen? Nicht verstanden, wie das Internet funktioniert?“

      MfG
      Damon

  2. Hubird
    Erstellt am 21. November 2014 um 17:39 | Permalink zum Kommentar

    Danke für diesen tollen Artikel! Ich habe mir immer wieder mal die Frage gestellt, wie es angehen kann, dass die Ansteuerung mit so wenigen Kabeln auskommt.
    Wieder etwas gelernt/ verstanden.
    Ein tolles Gefühl.

  3. O. Born
    Erstellt am 20. Januar 2015 um 22:51 | Permalink zum Kommentar

    Danke für deine Erklärung. Fange gerade an, mich mit Elektronik als Hobby zu beschäftigen. Leider kamen auf meine Fragen im Netz zu LED-Matrix auch nur Kommentare in obiger Qualität von Peter Meier. Deine anschaulichen animierten Bilder sind super, blicke jetzt etwas besser durch.

Achtung: Wordpress interpretiert bestimmte Zeichenfolgen als Markup und verändert diese. Nutzt für Programmcode lieber Gist oder PasteBin-Services und verlinkt die Code-Schnipsel.

Post a Comment

Ihre E-Mail wird niemals veröffentlicht oder verteilt. Benötigte Felder sind mit * markiert

*
*

Du kannst diese HTML Tags und Attribute verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>