|
|
LED-MatrixIn einer LED-Matrix sind jeweils die Kathoden und Anoden der LEDs in Zeilen bzw. Spalten verbunden. Der Vorteil besteht darin, dass weniger Kontakte nach außen geführt und angesteuert werden müssen, ebenso sinkt der Verdrahtungsaufwand im Modul bzw. auf der Platine. Die Ansteuerung erfolgt dabei im sogenannten Multiplexbetrieb. Prinzipiell kann man sowohl die Zeilen als auch die Spalten multiplexen. Die nachfolgende Beschreibung bezieht sich auf das Multiplexen von Spalten.
[Bearbeiten] MultiplexbetriebMultiplexverfahren (Wikipedia) Der Trick einer LED-Matrix besteht darin, dass jeweils immer nur eine Spalte wirklich leuchtet. Die anderen sind ausgeschaltet. Wird nun in schneller Folge jede Spalte einmal angeschaltet. So entsteht aufgrund der Trägheit des menschlichen Auges ein scheinbar vollständiges Bild, bei dem alle LEDs gleichzeitig leuchten. Wird dieser Zyklus schnell genug durchlaufen, ist das Bild flimmerfrei, was ab ca. 100Hz erreicht wird. In Ausnahmefällen kann jedoch eine bewegte LED-Matrix auch bei höheren Multiplexfrequenzen als flimmernd erscheinen, z. B. LED-Bremsleuchten, LED-Anzeigen an Zügen oder Strassenbahnen. Der Ablauf der Steuerung ist recht einfach:
Praktisch wird man dazu einen Timer per Interrupt verwenden, keine Warteschleifen.
Durch Einsatz der Multiplexverfahrens können mit relativ wenigen Ansteuerbauteilen (IO-Pins, Transistoren, Stromquellen) sehr viele LEDs gesteuert werden. Während bei direkter Ansteuerung für jede LED ein IO-Pin sowie eine Stromquelle bzw. Vorwiderstand benötig würde, ist in einer zweiachsigen LED-Matrix der Aufwand für die Bauteile deutlich geringer: [Bearbeiten] AnsteuerungDer verringerte Aufwand an Bauteilen kommt jedoch nicht ohne Nachteile. Da jede Spalte in einer Matrix mit N Spalten immer nur für 1/N der Zeit für einen vollen Bildaufbau aktiv ist, muss in dieser Zeit die gleiche Lichtmenge (=Energie) abgegeben werden, damit die genauso hell erscheint, wie wenn sie konstant mit Strom versorgt wird. Dazu muss der N-fache Strom fliessen. Demensprechend müssen die Vorwiderstände bzw. Stromquellen dimensioniert sein. Doch das führt zu zwei Problemen.
Um die Helligkeit der LEDs im Multiplexbetrieb voll zu nutzen muss meistens ein höherer Strom geschaltet werden, als Mikrocontroller es können. Eine LED muss aufgrund ihrer Kennlinie an einer Stromquelle betrieben werden. Im einfachsten Fall ist das ein in Reihe geschalteter Widerstand an einer Spannungsquelle. Ob man die Zeilen oder Spalten einer Matrix multiplext ist im Prinzip egal, aber manchmal ist es schlicht logisch sinnvoller. So ist z.B. bei einer LED-Laufschrift mit 8 Zeilen und 40 Spalten es sinnvoll, die Zeilen mit 1:8 zu multiplexen und nicht die Spalten mit 1:40! Generell kann man das in einer Schaltung so erkennen. Die gemultiplexte Dimension hat vor den Leistungsschaltern keine Vorwiderstände bzw. Konstantstromquellen sondern geht direkt an die LEDs. [Bearbeiten] DirektIn einigen Projekten im Internet sieht man LED-Matritzen direkt per Mikrocontroller angesteuert, ohne Transistoren. Das geht praktisch nur mit Low-Current Bauteilen, sonst sind die LEDs auf Grund des geringen Stroms zu dunkel. [Bearbeiten] TransistorenDas ist der Normalfall. Man kann diskrete Transistoren (z. B. BC846, BC337) benutzen. Eine praktische Umsetzung kann man hier sehen. Q1-Q8 arbeiten als Emitterfolger (Kollektorschaltung), darum gibt es hier auch keine Basiswiderstände. Q9-Q13 arbeiten ganz einfach in Emitterschaltung. Dadurch braucht man nur NPN Transistoren, die Schaltung ist dadurch auch relativ schnell. Einziger Nachteil ist ein um ca. 0,5 V höherer Spannungsverlust an Q1-Q8 im Vergleich zu PNP-Transistoren in Emitterschaltung. Das spielt hier aber keine große Rolle, weil bei den roten LEDs mit 2,2V Uf noch ausreichend Spannung für den Vorwiderstand bleibt. Werden z.B. blaue LEDS mit bis zu 4V Uf engesetzt, dann verbleibt für den Widerstand zuwenig Spannung. Dadurch ändert sich schon bei kleinsten Versorgungsspannungsschwankungen der Strom recht stark. Ein Schieberegister ist im Prinzip ein Seriell-Parallel-Wandler. Das hat mit Multiplexbetrieb eigentlich nichts direkt zu tun, es ist vielmehr eine Erweiterung der IO-Pins (siehe auch Porterweiterung mit SPI und AVR-Tutorial: Schieberegister). Eine weitere Schaltung mit Schieberegistern ist im "Retro-Spiel zum Selberbauen" Ping-Pong von Burkhard Kainka verwendet worden. Hier werden die 10 Zeilen mit Atmega8-Portpins über 100 Ω Widerstände [1] gegen 12 Schieberegister-Spalten zweier 4094D CMOS-ICs geschaltet, um eine Matrix aus 120 roten SMD-LEDs zu steuern. [Bearbeiten] BerechnungWill man nun seine Schaltung optimal betreiben, muss man ausrechnen wieviel Strom geschaltet werden muss. Wie oben bereits beschrieben, teilt sich der gemultiplexte Strom im Verhältnis 1:N auf die LEDs auf, in diesem Beispiel hier 1:5. Der Treiber für die Zeilen muss diesen im Extremfall kontinuierlich an jedem Ausgang zur Verfügung stellen, wenn nämlich alle LEDs der Matrix aktiv sind. Der Treiber für die Spalten ist pro Kanal nur 1:N der Multiplexzeit aktiv, muss aber währenddessen den gesamten Nennstrom der Matrix schalten können! Das sind schnell mal ein paar Ampere, wie die nachfolgenden Beispiele zeigen! Gegeben:
Gesucht:
[Bearbeiten] TreiberBei grossen Anzeigen mit vielen LEDs werden die Pulsströme bisweilen schon recht hoch. Hier wird man dann mehr auf Treiber (z. B. ULN2803)zurück greifen. Vor allem die Schalter für die gemultiplexte Dimension, hier im Beispiel die Zeilen, müssen sehr große Ströme schalten. [Bearbeiten] BerechnungGegeben:
Gesucht:
60mA kann IC2 dauerhaft auf jedem Kanal liefern, 500mA Pulsstrom sind für IC1 schon die absolute Grenze laut Datenblatt. Der Spannungsverlust UIC1 und UIC2 ist bei diesen relativ alten ICs recht hoch, mit modernen MOSFETs erreicht man hier deutlich kleinere Werte und damit auch kleinere Verlustleistungen bzw. höhere Ströme. [Bearbeiten] MOSFETsBei Strömen über 1A nimmt man heute meist MOSFETs. [Bearbeiten] BerechnungDie Berechnung erfolgt analog zum vorherigen Beispiel, nur mit dem Unterschied, daß die MOSFETs deutlich kleinere Spannungsabfälle zu verzeichnen haben. Damit die MOSFETs schnell schalten werden MOSFET-Treiber eingesetzt. Für die P-Kanal MOSFETs nutzt man hier im Beispiel einen echten MOSFET-Treiber, die N-Kanal MOSFETS kann man hier mit einem einfachen CMOS-Inverter ansteuern. Das geht bei kleinen Logic Level MOSFETs mit 1-2nF Gatekapazität noch ausreichend schnell, bei größeren MOSFETs ist auch hier ein echter MOSFET-Treiber nötig. Der berühmt-berüchtigte Gatewiderstand kann hier entfallen, die Ausgänge der CMOS-Inverter sind bereits hochohmig genug, um parasitäre Schwingungen zu dämpfen. Nimmt man für den Inverter einen HCT-Typ, so wirkt der gleichzeitig als Pegelwandler und die Matrix kann mit 3,3V Signalen angesteuert werden. Gegeben:
Gesucht:
In diesem Beispiel wird der gesparte Spannungsabfall über den MOSFETs genutzt, um LEDs mit höherer Flußspannung in Reihe schalten, womit der Wirkungsgrad ansteigt. Liegt die LED-Betriebsspannung über 15V braucht man einen sogenannten High Side Driver, weil dann die Gates der P-Kanal MOSFETs nicht mehr direkt angesteuert werden können. Ein einfaches Beispiel findet man hier. [Bearbeiten] DimmenMultiplexen kann auch mit PWM kombiniert werden. Dabei ist die Multiplexzeit einer Spalte gleich der PWM-Periodendauer. Allerdings kann hier der Rechenaufwand für die CPU schon recht hoch werden, da die meisten Mikrocontroller nicht so viele PWM-Kanäle in Hardware zur Verfügung stellen und die PWM in Software nachgebildet werden muss (Soft-PWM). Falls die Multiplexzeit klein genug gewählt wird, kann man in Grenzen auch per gezieltem Ein- und Abschalten in Grenzen eine Dimmfunktion erreichen. Um hier allerdings noch flimmerfreie Ergebnisse zu erzielen, sollte die Multiplexfrequenz mit den geplanten Dimmstufen multipliziert werden (bspw. 16 Dimmstufen bei 100 Hz Multiplexfrequenz = 1600 Hz angepasste Multiplexfrequenz), was die Rechenzeit wiederum schnell in die Höhe treiben kann. Dimmen selbst erreicht man dann mit entsprechend angepassten Schaltzeiten (bspw. 25% Helligkeit = 4x LED an, 12x LED aus bei insgesamt 16 Dimmstufen, dann von vorne). [Bearbeiten] Spezielle ICsNeben den typischen Treiberbausteinen für möglichst hohe Ströme, die weiter unten aufgeführt sind, gibt es auch noch integrierte Lösungen für das direkte Betreiben einer LED-Matrix an der SPI oder I2C-Schnittstelle. Beispiele sind hier MAXIM 7219 und 7221 oder AS1100-08/15-18 für 8x8 LED-Matrizen oder 8x8-Segmentanzeigen. Zwischen beiden Modi wird per Software gewechselt. Die ICs bieten einige Vorteile, wie automatische Dimmung und großzügiges Freischaufeln von CPU-Kapazität auf dem Mikrocontroller. Außerdem können die ICs dank SPI kaskadiert werden wie normale Schieberegister und somit eine nahezu unbegrenzte Zahl an LEDs ansteuern. Allerdings ist der Strom für die integrierten Stromsenken auf etwa 50 mA begrenzt, was bei einigen Displays zu wenig sein kann. Hier muss man wieder Vor- und Nachteile abwägen. Weitere ICs bei Maxim umfassen Standardfälle wie 5x7 Matrizen oder 7-, 10-, 14-Segment LED-Anzeigen mit 4 bis 16 Stellen. Diese ICs gibt es dann allerdings leider nicht bei den Standardversandhändlern.
[Bearbeiten] BerechnungDer TLC5921 und seine zahlreichen Kollegen von Texas Instruments bieten eine komfortable Möglichkeit zur Ansteuerung von LED-Matrizen. Der TLC5921 besitzt 16 Ausgänge, welche als Konstantstromquelle arbeiten. Der Konstantstrom wird dabei über einen Widerstand eingestellt. Es entfallen somit die Vorwiderstände. Der Vorteil ist, dass Schwankungen der LED-Flußspannung oder Versorgungsspannung ausgeglichen werden, ohne dass die Helligkeit der LEDs sich dabei ändert. Außerdem erlauben die besseren Typen der Baureihe wie z.B. der TLC5922 eine Dimmung der einzelnen Kanäle. Doch Vorsicht! Die zulässige Verlustleistung des ICs ist groß, ca. 4W mit ausreichender Kühlung, aber nicht endlos. Denn die Restspannung aus Betriebsspannung und LED-Flußspannung fällt über dem IC ab. Als Minimum gilt je nach Strom 0,5-1V, welches über dem TLC5921 abfallen muss, damit er korrekt arbeitet. Nach oben wird die Grenze durch die Verlustleistung und max. Spannung von 17V gesetzt. Weiterhin ist zu beachten, dass hier das Multiplexing der Zeilen und Spalten vertauscht wurde. Gegeben
Gesucht:
[Bearbeiten] Siehe auch
[Bearbeiten] Weblinks
|