Aus RN-Wissen.de
Version vom 9. April 2011, 17:39 Uhr von Besserwessi (Diskussion | Beiträge) (Variante mit Schieberegistern)

Wechseln zu: Navigation, Suche
Balkonkraftwerk Speicher und Wechselrichter Tests und Tutorials

Dieser Artikel behandelt die Verwendung und Ansteuerungen von LED-Siebensegmentanzeigen.

verschiedene LED-Siebensegmentanzeigen

Siebensegmentanzeigen bestehen meist aus einer großen Anzahl von LEDs, die so in einem Gehäuse angeordnet sind, um mit einer entsprechenden Ansteuerung damit Zahlen oder auch einfache Buchstaben oder Symbole darstellen zu können.

Verschiendene Typen und wichtige Daten

Es sind viele verschiedene LED-Anzeigen erhältlich, man sollte sich jedoch an gewissen technischen Daten orientieren.

  • gemeinsame Kathode/Anode : In Siebensegmentanzeigen sind nicht alle Anschlüsse der LEDs einzeln herausgeführt, sondern es werden üblicherweise alle Kathoden (Minuspole) oder alle Anoden (Pluspole) der LEDs zusammengeschaltet. Die Entscheidung für gemeinsame Anode/Kathode muss mit der geplanten Schaltung zur Ansteuerung aber abgestimmt sein. Die englische Bezeichnung lautet Common Cathode oder Common Anode.
  • Daten der LEDs : wichtig ist hierbei die Vorwärtsspannung der LEDs (meist 2V) und der empfohlene Strom durch die LEDs (meist 10-20mA). Es existieren auch Anzeigen mit Low-Current-LEDs, die mit nur 2mA auskommen. Der benötigte Strom hängt aber auch stark von der Umgebungshelligkeit ab. Große Anzeigen mit Ziffernhöhen über 20mm haben häufig mehrere LEDs pro Segment eingebaut, die elektrisch in Reihe geschaltet sind. Dann ist eine höhere Spannung zur Ansteuerung notwendig. Die Farbe der Anzeige kann nach Belieben gewählt werden, inzwischen sind auch blaue Anzeigen erhältlich, leider sind diese noch deutlich teurer als rote, gelbe oder grüne LED-Anzeigen.
  • Ziffernhöhe : üblich sind 10mm, 13mm und 20mm. Es sind aber auch größere Anzeigen erhältlich, bis etwa 10cm Ziffernhöhe!
  • Bauform : Es sind "normale", also bedrahtete Anzeigen, als auch SMD-Anzeigen erhältlich. Die Pins bei den bedrahteten Anzeigen können unterschiedlich angeordnet sein, dafür lieber vorher im Datenblatt nachsehen.

Die Segmente werden im Datenblatt üblicherweise mit Kleinbuchstaben benannt (von a bis g), DP steht für den Dezimalpunkt.

Varianten der Ansteuerung mit Mikrocontroller

direkte Ansteuerung

Diese Variante eignet sich vor allem dann, wenn nur wenige Ziffern (1 oder 2) angesteuert werden sollen.

Der gemeinsame Anschluss (gemeinsame Kathode oder Anode) wird hierbei mit dem entsprechenden Anschluss der Versorgungsspannung verbunden. Eine gemeinsame Kathode wird mit GND verbunden, eine gemeinsame Anode mit z.B. +5V. Die einzelnen Leitungen der LEDs werden dann über Vorwiderstände mit beliebigen freien Mikrocontrollerports verbunden.

Siebensegment direkt gem Kathode.png

Im Schaltplan ist die Ansteuerung für eine Anzeige mit gemeinsamer Kathode gezeigt. Die Widerstände wurden für einen Strom von 20mA berechnet. Ein Segment wird zum Leuchten gebracht, indem die entsprechende Mikrocontrollerleitung als Ausgang und auf +5V geschaltet wird.

Soll eine Anzeige mit gemeinsamer Anode verwendet werden, so muss diese mit +5V verbunden werden. Ein Segment leuchtet dann auf, wenn die entsprechende Mikrocontrollerleitung als Ausgang und auf GND geschaltet wird.

Anmerkung: Der Dezimalpunkt muss nur dann verbunden werden, wenn er auch später benötigt wird!

Vorteil der Variante:

  • Sehr einfach umzusetzen, es sind nur die Siebensegmentanzeigen und Widerstände notwendig!
  • Hat der Mikrocontroller die Leitungen zu den LEDs ein Mal gesetzt, so leuchten die ensprechenden Segmente ständig. (Vergleiche mit Multiplexing!)

Nachteil der Variante:

  • nur für wenige Stellen vernünftig machbar, weil sonst zu viele Leitungen zu den LEDs benötigt werden
  • Mikrocontroller verträgt nur einen bestimmten Gesamtstrom, der insgesamt über seine Ausgangsleitungen fließen darf. Könnte bei mehr als einer Stelle schon kritisch werden!

Variante mit Schieberegistern

Für die direkte Ansteuerung werden viele Pins benötigt. Bei mehr Stellen können Schieberegister als Porterweiterung genutzt werden. Ein 8 Bit Schieberegister reicht dabei gerade für eine Stelle mit Dezimalpunkt. Der maximal zulässige Strom ist beim 74HC595 auf etwa 8 mA begrenzt - das reicht von der Helligkeit in vielen Fällen, aber nicht immer. Es werden unabhängig von der Zahl der Stellen nur 3 IO Leitungen (Takt, Daten, Datenübernahme) benötigt.

Multiplexing

Sollen viele Stellen angezeigt werden können, würde eine direkte Ansteuerung sehr viele Pins in Anspruch nehmen. Eine bessere Möglichkeit ist dann, so genanntes Multiplexing zu verwenden. Damit werden die Stellen einzeln schnell nacheinander angesteuert. Für das menschliche Auge sind dann aber trotzdem alle Stellen gleichzeitig erkennbar.

Siebensegment 4fach Multiplexing.png

Der Mikrocontroller muss nacheinander die "Stelle_x"-Anschlüsse auf +5V legen, während die anderen "Stelle_x"-Anschlüsse auf GND liegen. Zusätzlich muss dann - wie bei der direkten Ansteuerung - an die Leitungen der Segmente dann +5V angelegt werden, um das entsprechende Segment leuchten zu lassen.

Anmerkung: Um die gleiche Helligkeit der Anzeige wie bei der direkten Ansteuerung zu erreichen, muss der Strom durch die LED-Anzeigen erhöht werden, da diese ja nur für einen kurzen Moment mit Strom versorgt werden. Bei 4 Stellen muss der Strom durch die LEDs dann bei der Ansteuerung auch 4x so hoch sein. Für Standard-LED-Anzeigen mit 20mA Stromverbrauch pro Segment bedeutet das, dass der Mikrocontroller auf den Segmentleitungen auch 80mA treiben können müsste! Der maximale Strom liegt jedoch pro Pin bei etwa 25-50mA, sind mehrere Ausgänge geschaltet, liegt dieser Wert noch niedriger! Pro Port (z.B. gesamter PORTB) sind nur ca. 100mA Gesamtstrom zulässig, sodass die Steuerung bei diesem Strom auf diese Art und Weise der Ansteuerung bereits zum Problem wird.

Transistoren als Segmenttreiber

Um das gerade eben beschriebene Problem in den Griff zu bekommen, kann man einerseits Low-Current-Anzeigen verwenden, diese benötigen nur 2mA anstatt 20mA, sparen damit also 90% des Strombedarfes ein. Andererseits können Transistorverstärker dahinter geschaltet werden (entweder npn-Transistoren in Kollektorschaltung oder pnp-Transistoren in Emitterschaltung.

Segmenttreiber npn pnp.png

Bei der linken Schaltung wird ein Segment zum Leuchten gebracht, wenn +5V vom Mikrocontroller angelegt wird, bei der rechten Schaltung muss dafür GND angelegt werden. Bei der Schaltung links wird über dem Transistor (CE-Strecke) noch eine Spannung von ca 0,7V abfallen (weil an der BE-Strecke 0,7V abfallen müssen, um den Transistor zu schalten. B liegt aber auf etwa +5V. Am Emitter liegen logischerweise noch etwa 4,3V an.). Bei der rechten Schaltung sind diese Verluste prinzipbedingt kleiner.

Anmerkung: Widerstände zum Begrenzen des Stromes durch die Anzeigen müssen weiterhin verwendet werden, sie sind oben nicht eingezeichnet!

Vorteile von Multiplexing:

  • es können viele Stellen angesteuert werden, nur mit Multiplexing ist dies vernünftig realisierbar
  • man kommt mit deutlich weniger Pins als bei der direkten Ansteuerung gesteuert aus

Nachteile von Multiplexing:

  • der Mikrocontroller ist ständig mit der Ansteuerung der Anzeige beschäftigt
  • der Maximalstrom pro Portpin/gesamten Port (bei dieser einfachen Variante) wird zum Problem (außer bei Low-Current-Anzeigen)
  • bei einem Softwarefehler kann es durch den erhöhten Strom durch die Segmente passieren, dass Siebensegmentanzeigen beschädigt werden.
  • Aufwändiges Platinenlayout notwendig, um alle Segmentleitungen der Anzeigen miteinander zu verbinden, es gibt allerdings auch Anzeigen, die für Multiplexing vorgesehen wurden und dort die Segmentleitungen bereits zusammengefasst sind.

Variante mit Dezimalzähler 4017

Sollen viele Stellen angesteuert werden, so muss bei der oben gezeigten Variante pro Stelle auch ein Portpin spendiert werden. Stehen nicht genügend Ausgänge zur Verfügung, kann ein CMOS-Dezimalzähler CD4017 eingesetzt werden.

Siebensegment 4017.png

Bei der Verwendung dieses ICs müssen die Ausgänge auf der rechten Seite mit den Basiswiderständen aus der obigen Schaltung verbunden werden, die Transistoren und Widerstände werden also weiterhin benötigt!

Der Mikrocontroller muss lediglich die zwei Leitungen "erste Stelle" und "nächste Stelle" ansteuern. Für die Leitung "nächste Stelle" kann auch eine Leitung für ein Segment mit genutzt werden - das spart dann noch einen IO Pin am µC.

Reset (erste Stelle) Clock (nächste Stelle) Aktion
L L
H L wähle die erste Stelle
L L
L H nächste (2.) Stelle
L L
L H nächste (3.) Stelle
L L
usw. usw. usw.

Das IC wird mit +5V und Masse versorgt und ist mit einem 100nF-Keramikkondensator abgeblockt (auf der rechten Seite des Schaltplans).

Vorteile mit 4017:

  • spart Portpins
  • kann bis zu 10 Stellen ansteuern, dann müssen aber auch die Ströme durch die LEDs entsprechend erhöht werden!

Nachteile mit 4017:

  • es wird ein IC benötigt
  • Reihenfolge der Stellen-Ansteuerung ist durch die Hardware festgelegt

Stellentreiber: ULN2003 und ULN2803

Beim Multiplexing wurden bisher npn-Transistoren eingesetzt, um die einzelnen Stellen anzusteuern (gilt nur für gemeinsame Kathode). Da der Bauteile- und Verdrahtungsaufwand bei vielen Stellen aber steigt, ist eine Vereinfachung angebracht. Es gibt ICs, in denen bereits eine ganze Reihe Transistoren enthalten sind, um Lasten zu schalten. Die bekanntesten ICs dafür sind der ULN2003 und der ULN2803. Sie haben jeweils 7 bzw. 8 Darlingtons enthalten und können gegen GND schalten. Sie können damit die npn-Transistoren inkl. den Basisvorwiderständen ersetzen. Die ICs sind kompakt, preiswert und können das Platinenlayout einfacher gestalten. Mit einem maximalen Ausgangsstrom von 600mA pro Kanal bieten sie genug Reserve, um auch viele Stellen mittels Multiplexing ansteuern zu können. Bei einem Defekt ließe sich das IC auch rasch austauschen ( falls eine IC-Fassung verwendet wurde).

Segmenttreiber, BCD-7-Segm.

Sollen nur Ziffern dargestellt werden, können ICs eingesetzt werden, die einen BCD-Code zu Siebensegment-Leuchtkombinationen umwandeln können. Im BCD-Code werden einer Ziffer 4 Bits zugeordnet. Somit werden anstatt den 7 Segmentleitungen nur 4 Leitungen benötigt.

Bezeichnungen dieser ICs:

  • 7447
  • 74246 / 74247
  • 4511 bzw. 74HC4511 (mit Speicher)

Vor dem Einsatz dieser ICs sollte man ins Datenblatt schauen und dabei den maximalen Ausgangsstrom beachten, sowie ob der Treiber am Ausgang gegen GND oder gegen +5V schaltet. Leider können diese Treiber meist nur wenige mA am Ausgang schalten.

Die BCD-7-Segment-Treiber können sowohl bei der direkten Ansteuerung als auch bei Multiplexing eingesetzt werden.

Erhöhung des Wirkungsgrades

Als Betriebsspannung für die Anzeigen wurde bisher 5V gewählt, die Vorwärtsspannung der LEDs liegt aber bei etwa typischen 2V. Die restliche Spannung wird im Widerstand verheizt. Der Wirkungsgrad liegt hier also bei (2/5)*100%=40%. Günstiger wäre es, wenn die Differenz zwischen Betriebsspannung und LED-Vorwärtsspannung geringer wäre.

Zum Beispiel ließe sich mit einem Schaltregler eine Spannung von 3V oder niedriger erzeugen. Im Widerstand müsste dann weniger Leistung verbraten werden. Der Einsatz eines Linearreglers macht hier natürlich keinen Sinn und erhöht auch nicht den Wirkungsgrad.

Insgesamt ist diese Variante aber nur sinnvoll, wenn viele Stellen angesteuert werden müssen oder der Stromverbrauch der Anzeigen sehr hoch ist.

Vergleich mit LC-Displays

Siebensegmentanzeigen eignen sich vor allem dazu, Zahlen darzustellen. Sie haben den Vorteil, dass sie auch aus größerer Entfernung oder schlechten Lichtverhältnissen noch deutlich erkennbar sind. Außerdem bietet sich die Möglichkeit, mit wenigen ICs auch ohne Mikrocontroller Zähler oder Uhren aufbauen zu können. Die Anzeige kann darüber hinaus rasch aktualisiert werden und sind wesentlich günstiger als LC-Textdisplays.

Vergleicht man Siebensegmentanzeigen mit handelsüblichen LC-Dotmatrix-Displays (für Text) ergeben sich allerdings deutliche Nachteile der Segmentanzeigen:

  • wesentlich höherer Stromverbrauch der Siebensegmentanzeige (20mA pro Segment!, LC-Display: ca 60mA inkl. Beleuchtung)
  • werden die Anzeigen mit einem Mikrocontroller über Multiplexing gesteuert, so ist dieser mit der Ansteuerung der Segmentanzeigen ständig beschäftigt
  • erhöhter Bauteileaufwand (Vorwiderstände, Transistoren oder Segmenttreiber usw.)
  • es können weniger Zeichen dargestellt werden als auf einem Display (sowohl Anzahl der Zeichen als auch Komplexität, z.B. Buchstaben, Umlaute, Symbole)

Autoren

  • BMS

LiFePO4 Speicher Test