LED-Matrix: Theoretische Planung

Anordnung der LEDs, Vorwiderstände, Stromquellen, Transistoren: Um eine LED-Matrix zu bauen, müssen zunächst konkrete Pläne her.

3x3-Matrix Multiplexing

Eine funktionierende 3×3 LED-Matrix mit Multiplexing.

Dazu braucht man auch einige Kenntnisse aus der Elektrizitätslehre. Hier zahlt es sich also aus, wenn man im Physikunterricht gut aufgepasst hat.

Sehr schwer ist das ganze aber nicht, wie wir an folgendem Beispiel sehen:

Grundplanung

Zunächst sollte das Ziel definiert werden:

  • Wie groß soll die Matrix werden?
  • Soll Multiplexing betrieben werden?
  • Welche Farbe(n) sollen die LEDs haben?

Um alles so anschaulich wie Möglich zu halten werde ich die Planung anhand einer 5×3 LED-Matrix mit roten LEDs und Multiplexing erläutern.

Multiplexing planen

Hier wird erst nur theoretisch geplant, wie das Multiplexing abläuft:
Bei einer 5×3 Matrix brauchen wir 8 Anschlüsse um Zeilen/Spalten zu schalten. Dabei ist es sinnvoller 3 Zeilen mit 5 Spalten zu schalten: So muss die Multiplex-Geschwindigkeit nicht zu hoch sein. Die Zeit, die die LEDs einer Zeile leuchten können, ist hier 1/3 der Gesamtzeit. Bei 5 Zeilen mit 3 Spalten könnte jede Zeile nur 1/5 der Gesamtzeit leuchten.

Bauelemente

Die konkrete Wahl der Bauelemente folgt später, hier wird nur aufgelistet, welche Komponenten warum benötigt werden:

Schaltgerät
Irgendwie muss die Matrix nun geschaltet werden. Man könnte die Zeilen/Spalten einfach mit Schaltern ansteuern, aber das wäre nur eine manuelle Lösung. Um vorgespeicherte Muster wiederzugeben, zu Multiplexen und zur automatischen Anzeige brauchen wir ein Schaltgerät. Dieses ist dafür zuständig, die einzelnen Zeilen und Spalten zu schalten.

Stromquelle
Das Schaltgerät bietet einen logischen Ausgang. Ein/Aus. Dort sollte keine Last geschaltet werden, sonst könnte das Schaltgerät vernichtet werden. In der Regel lässt man Strom von einer externen Quelle über das Schaltgerät steuern.

Transistor
Das Prinzip ist einfach: Mit dem Schaltgerät wird am Transistor gesteuert, ob Strom fließt oder nicht. Transistoren eigenen sich für diesen Job sehr gut, da sie schnell schaltbar sind, was wichtig für das Multiplexing ist. Der klassische bipolare Transistor eignet sich aber nicht dafür, große Ströme zu schalten: für große Matritzen sollten MOSFETs genommen werden.
Für eine 5×3 LED-Matrix sind Bipolar-Transistoren vollkommen ausreichend.

Widerstände
An den LEDs und Transistoren darf nur eine gewisse Spannung anliegen. Bei zu hoher Spannung gehen die Bauteile kaputt, bei zu niedriger Spannung wird nicht richtig Geschaltet oder LEDs bleiben dunkel. Daher muss die Spannung durch Widerstände geregelt werden.

Damit hätten wir eine Übersicht, was alles an Bauelementen benötigt wird. Kennt ihr euch mit den einzelnen Elementen nicht gut aus, könnt ihr Funktionsweise und Bedienung im Internet oder Physik/Elektrotechnik-Büchern recherchieren.

Empfehlung: mikrocontroller.net und ElektronikKompendium.de bieten sehr gute Artikel zur Elektrotechnik.

Erster Schaltplan

Um den Stromkreis einfacher planen zu können, empfiehlt es sich, eine Skizze für den Schaltplan anzufertigen. Die Anordnung der LEDs ist bereits bekannt, auch dass Transistoren vor jeder Spalte/Zeile benötigt werden. Wir können ebenfalls das Schaltgerät einzeichnen und mit den Transistoren verbinden, sowie die externe Stromquelle einplanen.

LED-Matrix 5x3 Skizze

Skizze für die LED-Matrix: Logiksignal (grün), Positive Spannung (rot) und 0V (grau).

Diese Skizze habe ich mit der Software Fritzing erstellt. Sie liefert einen guten überblick um alles weitere zu planen: Welche Spannung und Stromstärke wird mindestens benötigt, wo müssen welche Widerstände hin, welche Transistoren sollten gewählt werden?

Strom und Spannung: Elektronik

Damit die Matrix richtig funktioniert, brauchen wir verständlicherweise Strom. Dass man nicht eine beliebige Spannung an die Bauelemente anlegen darf, sollte klar sein. Es muss also berechnet werden, welche Widerstände wo eingesetzt werden müssen.
Die LEDs brauchen einen Vorwiderstand. Dieser ist dazu da, die Spannung (üblicherweise höher als benötigt) auf das benötigte Level zu senken. Man sagt auch, ein Teil der Spannung wird abgeführt. Der Widerstand berechnet sich wie folgt:
R = U / I

  • R ist der Widerstand, diesen wollen wir berechnen
  • U ist die Spannung, die abgeführt werden muss
  • I ist der Flußstrom (Stromstärke, die die LED benötigt)

Angenommen, wir wollen 1 LED mit 2V Flußspannung / 20mA Flußstrom an einer 5V Stromquelle betreiben.

  • U ist daher {5V} - {2V} = {3V} (Nennspannung der Stromquelle minus Betriebsspannung der LED)
  • I ist gegeben mit 20mA = 0,02A

Der Vorwiderstand wäre also:

{R = \frac {3V} {0,02A} = 150Ohm}

Dabei sollte auch beachtet werden, dass der Widerstand nicht überlastet wird. Die Energie die abgeführt wird kann ausgerechnet werden durch
{E = R * I^2 = 150Ohm * 0,02A^2 = 0,06W}
0,06W würden im Beispiel abgeführt, ein 1/4W Wiederstand reicht also vollkommen aus.

Es wird aber nicht nur eine LED betrieben sondern 5×3… Oder nicht?
Dadurch, dass die Matrix mit Multiplexing betrieben werden soll ist sichergestellt, dass nur eine Zeile leuchtet. Wir müssen uns also nur auf eine Zeile konzentrieren. Die LEDs einer Zeile sind parallel geschaltet. Das bedeutet: An jeder LED liegt die gleiche Spannung an. Die Stromstärke für jede LED wird addiert. Im Beispiel sind wir von 2V 20mA LEDs ausgegangen, also verbraucht eine Zeile 2V und 5*20mA = 100mA (0,1A). Sofern alle LEDs leuchten. Das ist nicht immer der Fall, die Stromspannung ist also variabel. Im „schlimmsten“ Fall leuchtet nur eine LED und 20mA würden verbraucht, was einen höheren Widerstand als bei 100mA benötigen würde.

Die Folge: Würde ein einzelner Vorwiderstand für eine ganze Zeile parallel geschalteter LEDs eingesetzt, würden die LEDs – je nachdem wie viele geschaltet sind – ungleichmäßig hell leuchten.

Allerdings wissen wir, dass pro Spalte immer nur eine LED leuchtet. Ob der Widerstand vor oder nach dem Element platziert wird, ist egal. Also machen wir uns das zu nutze und platzieren den Vorwiderstand einfach nach der LED, in einer Spalte. Hier ist die Nennspannung, Betriebsspannung (Flußspannung) und Flußstrom immer gleich: 5V / 2V / 0,2mA
Da allerdings ein Transistor vorgeschaltet ist, und dieser 0,7V abführt (typisch für bipolare Transistoren), wird der Widerstand wie folgt berechnet:
{R = \frac U I}
{U = 5V - 0.7V - 2V = 2.3V} (Nennspannung abzüglich LED und Transistor-Spannungsabfall)
{I = 20mA}
{R = \frac {2.3V} {0.02A} = 115Ohm}
115 Ohm-Widerstände gibt es nicht, daher wird der nächst größere Widerstand gewählt: 120Ohm
Zur Kontrolle: {U = R*I = 120 Ohm * 0,02A = 2,4V} fallen ab, es bleiben also noch 2,6V für Transistor + LED. 2,7V wären benötigt, 0,1V Unterschied sind kaum bemerkbar.
Ebenfalls sollte noch einmal nachgerechnet werden, ob der Widerstand die Last aushält:
{E = R * I^2 = 120Ohm * 0,02A^2 = 0,048W = OK}

Kompletter LED-Matrix Schaltplan

Der fertige Schaltplan für die 5×3 LED-Matrix.

Die Stromquelle muss passend dimensioniert gewählt werden, dazu muss der maximale Verbrauch der Matrix ermittelt werden: Maximal leuchten 5 LEDs auf einmal (in einer Zeile, da nur eine Zeile gleichzeitig leuchtet). Wir wissen schon, dass die Spannung überall gleich ist (5V) und ausreichend für unsere LEDs, die Maximale Stromstärke beträgt (wie oben errechnet) 100mA. Die Stromquelle muss also 5V und mehr als 100mA liefern.
Stromstärke – Einmal für nicht ET’ler ;)

Man sollte bei der Stromstärke nicht wie bei Spannung denken: die Stromstärke „liegt nicht dauernd an“. Hat eine Stromquelle einen Ausgang mit 500mA bedeutet dies, dass man damit 500mA zur Verfügung stellen kann, die 500mA schießen nicht auf ein mal in den Stromkreis und zerstören alles. Stromstärke = Ladung / Zeit. Der Wert gibt (indirekt) an, wie viele Elektronen pro Sekunde durch ein Bauelement fließt. Bei einer LED mit 20mA sind dies
{I = \frac Q t = \frac {n * e} t}
{\frac {I * t} e = n}
{\frac {0,02A * 1s} e = 124843945068664170} Elektronen pro Sekunde (e = Ladung eines Elektrons).
Man sollte sich also keinen Druck von Seite der Stromquelle vorstellen, sondern ein Sog von Seite des Bauelements – und sich fragen: Hält die Stromquelle das aus?

Zurück zur Planung
Auch die Transistoren brauchen einen Vorwiderstand. Es sind ja 2 Stromkreise vorhanden (Logiksignal des Schaltgerätes und Betriebsstrom für die Matrix), und bisher ist der Logikstrom ohne Vorwiderstand an den Transistor angeschlossen. Bei einigen Transistoren mag das funktionieren, sehr akkurat ist es allerdings nicht und mit der Zeit könnte der Transistor einen Defekt erleiden. Daher müssen wir einen Vorwiderstand für die Basis errechnen.
Hier wird es etwas kompliziert… Keine Angst, falls ihr Fragen habt helfe ich gern in den Kommentaren.

Also: Zunächst sollte ein Transistor gewählt werden, der Strom und Spannung wie oben errechnet schalten kann. Hier hilft beispielsweise die Übersicht von mikrocontroller.net sehr. Ich entscheide mich für einen BC337-40 NPN Transistor:
Der Strom fließt nur durch den Transistor, wenn die Basis positiver ist als der Emitter (üblicherweise GND), der Transistor „sperrt“ also, wenn keine Spannung an der Basis anliegt.
Der Transistor hält 50V Kollektor-Emitter Spannung aus (bei uns 5V), und maximal 800mA (bei uns 100mA).
Um den Vorwiderstand für die Basis zu berechnen, brauchen wir nun einen Wert aus dem Datenblatt des Transistors: „DC current gain – Kollektor-Basis-Stromverhältnis“ (h_fe).
Der Wert gibt an, in welchem Verhältnis Basis- und Kollektorstrom stehen. Bei einem Wert von 100 fließt 100 mal mehr Strom vom Kollektor zum Emitter, als von der Basis zum Emitter.
{I_c = h_{fe} * I_b; I_c} = Kollektorstrom (Strom, der durch den Transistor fließt), I_b = Stromstärke an der Basis
I_c ist bekannt, das sind maximal 100mA die durch den Transistor fließen müssen, um alle LEDs zu versorgen. h_{fe} steht im Datenblatt, beim BC337-40 sind das bei 100mA etwa 400.
Durch Umformen und Einsetzen erfahren wir die Stromstärke die an der Basis nötig ist, um 100mA zu schalten. Der Transistor hält wesentlich mehr aus, daher berechnen wir den Basisstrom um 200mA zu schalten (sicher ist sicher):
{I_b = \frac {I_c} {h_{fe}}}
{I_b = \frac {0,2A} {400} = 0,0005A}

Es wird einfach das Ohm’sche Gesetz angewandt:
{R = \frac U I}

  • U ist die Spannung die das Schaltgerät liefert abzüglich 0,7V
  • I ist die Stromstärke an der Basis I_b also 0,0005A (0,5mA)

Bei einem Logiksignal mit 3,3V sähe die Gleichung so aus:
{R = \frac {3,3V - 0,7V} {0,0005A} = \frac {2,6V} {0,0005A} = 5200Ohm (5,2kOhm)}
{E = R * I^2 = 5200Ohm * 0,0005A^2 = 0,0013W (1,3mW)}

Gratulation, wir haben nun die Widerstandswerte für die Basen der Transistoren sowie die der LEDs. Das war es auch „schon“ für eine simple Matrix.

Wir notieren uns alle wichtigen Daten:

  • Stromquelle: 5V / 100mA (mindestens)
  • LEDs: 2V 20mA
  • Transistoren: BC337-40 NPN
  • Widerstände LED-Spalten: 120Ohm
  • Widerstände Transistoren: 5,2kOhm
  • Schaltgerät: 3,3V

Die theoretische Planung ist hiermit abgeschlossen, die Bauelemente können nun gekauft werden.
Im nächsten Artikel geht es damit weiter, wie die Bauelemente zusammengesetzt werden um eine funktionierende LED-Matrix zu erhalten.

MfG
Damon Dransfeld

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

3 Kommentare

  1. Vakilando
    Erstellt am 3. April 2014 um 19:48 | Permalink zum Kommentar

    Hallo,

    wirklich tolle Erklärung mit Aussagekräftigen Bildern.
    Allerdings verstehe ich eine Sache nicht. Ich versuche mich gerade auch an einer Matrix
    und habe nun aber gelesen, dass es bei Transistoren in Kollektorschaltung ja gar keine Spannungsverstärkung gibt
    sondern nur eine Stromverstärkung.
    Bei dir sieht es aber aus als ginge es. Brauche ich dazu spezielle Transistoren?

    • Erstellt am 6. April 2014 um 16:51 | Permalink zum Kommentar

      Hi,

      Ich bin leider auch kein Voodoo-Meister für Transistoren… Diese Seite hilft vielleicht weiter: http://www.elektronik-kompendium.de/sites/slt/0204133.htm

      Nach sehr kurzem Überfliegen des Artikels würde ich sagen: Die Schaltung für das Matrix-Display ist kein Kollektorfolger. Dies hier ist die „Basisschaltung“, bei der der Transistor saturiert werden soll. Ist die Basis saturiert, leitet der Transistor die Spannung und Strom einfach weiter.

      Ein Idealer Transistor verhält sich dann wie ein Stück Draht (Schalter). Es werden nur einige Limitierungen gegeben wie maximale Spannung die der Transistor aushält und wieviel Strom durch ihn maximal durchfließen kann. Diese Werte entnimmt man dem Datenblatt.

      Spezielle Transistoren braucht man für diesen „Schalter-Ersatz“ nicht, sie sollten nur die benötigte Spannung und den Strom aushalten können. Sinn und Zweck der Transistoren in dieser Schaltung ist es ja, sie als elektronischen Schalter zu benutzen. An der Basis wird nur ein Logiksignal angelegt (5V), je nachdem ob dieses Signal Hoch oder Tief ist, wird die Basis saturiert oder eben nicht.

      Und auch wenn man schon vorher Ohm-genau Vorwiederstände berechnen kann und alles ganz genau ausrechnen kann… Einfach mal aufbauen und gucken was funktioniert ist die beste Methode um alles zu verstehen. Ich habe auch vorher Schaltungen angeguckt, versucht alle Parameter zu errechnen… Schlussendlich war es bei meinen Komponenten so, dass die Wahl des Vorwiederstands an der Basis fast keinen Unterschied machte.

      MfG
      Damon

  2. Vakilando
    Erstellt am 7. April 2014 um 15:24 | Permalink zum Kommentar

    Also ich dachte schon es sei eine „kollektorschaltung“ (nicht „Kollektrofolger“).
    Und bei dieser gibt es keine Spannungsverstärkung. Bei der Basisschaltung würde die Last (LED) ja an der Basis hängen. Im Artikel steht ja dass ein Logiklevel von 3,3V an der Basis anliegt, oder? Daher dachte ich am Emmiter kommen nur noch 3,3V-0,7V=2,6V an, da der Transistor in dieser Schaltung eben nicht wie ein Schalter funktioniert. Steht ja auch auf der verlinkten Seite in der Tabelle.
    Aber evtl. muss ich mich mal noch ein bisschen genauer mit der ganzen Sache beschäftigen…
    „Einfach ausprobieren“ will ich nicht. Dazu fehlt mir noch die Erfahrung.

    aber danke für die Antwort :)

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>