Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Balkonkraftwerk Speicher und Wechselrichter Tests und Tutorials

K (Formulierungen, Kleinigkeiten)
K (direkte Ansteuerung)
Zeile 24: Zeile 24:
 
[[Bild:Siebensegment_direkt_gem_Kathode.png]]
 
[[Bild: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.
+
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. (Anmerkung zum Schaltplan: Die Pinnummern (rot) kann man unbeachtet lassen, ein Blick ins Datenblatt deiner gewählten Siebensegmentanzeige verrät die Anordnung der Pins)
  
 
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.
 
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.

Version vom 15. Dezember 2011, 17:56 Uhr

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 entweder alle Kathoden (Minuspole) oder alle Anoden (Pluspole) der LEDs zusammengeschaltet (die englische Bezeichnung lautet Common Cathode oder Common Anode). Die Entscheidung für gemeinsame Anode/Kathode muss mit der geplanten Schaltung zur Ansteuerung aber abgestimmt sein!
  • Daten der LEDs : wichtig ist hierbei in erster Linie 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 tatsächlich benötigte Strom hängt aber stark von der Umgebungshelligkeit und der Effizienz der LEDs 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 sogar 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/Stellen (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. (Anmerkung zum Schaltplan: Die Pinnummern (rot) kann man unbeachtet lassen, ein Blick ins Datenblatt deiner gewählten Siebensegmentanzeige verrät die Anordnung der Pins)

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 benutzt 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 (70 mA je IC) 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. Dafür werden je Stelle ein IC und 7-8 Widerstände 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 anzuwenden. Dabei werden die Stellen einzeln schnell nacheinander angesteuert. Für das menschliche Auge sind dann aber trotzdem alle Stellen gleichzeitig erkennbar.

Exemplarisch soll hier eine Schaltung für 4 Stellen mit gemeinsamer Kathode gezeigt werden. Das Schema kann relativ simpel an die gewünschte Stellenzahl angepasst werden. Sollen Anzeigen mit gemeinsamer Anode verwendet werden, sollten nach Möglichkeit pnp-Transistoren verwendet werden (dann Emitter an +5V, Collector an Anode).

Siebensegment 4fach Multiplexing.png

Anmerkung: Die im Schaltplan angegebenen Transistoren BC547 sind für einen maximalen Kollektorstrom von 100mA spezifiziert, man wird wohl eher leistungsfähigere Transistoren verwenden müssen (z.B. BC637 o.ä.). Hintergrund: Sollen alle Segmente leuchten, fließt pro Stelle ein Strom von 8*20mA=160mA. Dafür reichen die BC547 schon nicht mehr aus. Die Basisvorwiderstände müssen dann auch anders dimensioniert werden. Möglich ist auch die Verwendung von N-Kanal Logic-Level FETs.

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 Nennstrom pro Segment bedeutet das, dass auf den Segmentleitungen 80mA benötigt würden - zu viel für die üblichen µC.

Bei der gezeigten Schaltung sollte der Strom je Segment bei maximal 20 mA liegen. Damit wird höchstens eine Helligkeit erreicht, die 5 mA Dauerstrom je LED entspricht. Für Anwendungen in Innenräumen reicht das meistens noch.

Sollen viele Stellen verwendet werden, kann Multiplexing problematisch werden, da mit einem hohen Strom gearbeitet werden muss und man damit möglicherweise den maximal zulässigen Spitzenstrom der LEDs überschreitet. Außerdem kann ein Softwarefehler die Anzeigen zerstören: Falls z.B. immer nur ein und dieselbe Stelle angesteuert wird, kann die Stelle durch den erhöhten Strom kaputt gehen.

Vorteile von Multiplexing:

  • Es können viele (bis etwa 16) Stellen angesteuert werden, nur mit Multiplexing ist dies vernünftig realisierbar.
  • Man kommt mit deutlich weniger Pins als bei der direkten Ansteuerung aus.
  • Es werden nur 7 bzw. 8 Widerstände für die Einstellung des Stromes benötigt.
  • variable Helligkeit der Stellen ist ohne zusätzliche Hardware möglich. Es muss lediglich das Puls-Pausenverhältnis der Ansteuerung variiert werden

Nachteile von Multiplexing:

  • Der Mikrocontroller ist ständig mit der Ansteuerung der Anzeige beschäftigt.
  • 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.
  • bei zu geringer Wiederholfrequenz kann die Anzeige flimmern
  • Der Maximalstrom pro Portpin/gesamten Port (bei dieser einfachen Variante) wird zum Problem (außer bei Low-Current-Anzeigen).

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.

Vor allem wenn für die Segmente mehr als 5 V benötigt wenden, bietet sich ein Treiber-IC wie UDN2981 an, das Pegelwandler und Treiber bis 500 mA (bzw. ca. 1 A je IC) enthält. Bei nur 5 V als Versorgungsspannung wird es wegen des Spannungsabfalls von etwa 1,5-1,7 V knapp mit der Spannung.

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

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. Der maximale Ausgangsstrom von 500mA pro Kanal reicht für 8 Segmente mit je 60 mA, also gerade 3 Stellen mit im Mittel 20 mA, oder 6 Stellen mit 10 mA mittlerem Strom. Bei einem Defekt ließe sich das IC auch rasch austauschen (falls eine IC-Fassung verwendet wurde).

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

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. Außerdem können so ohne µC BCD codierte Zahlen, z.B. Zählerstände angezeigt werden.

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.

spezielle Treiber ICs

Es gibt auch ICs für die Ansteuerung von mehr-stelligen 7 Segmentanzeigen. Die Daten werden dazu z.B. per I2C übergeben, und das IC sorgt dann für das Multiplexing inklusive der Treiber, und ggf. auch die Wandlung von BCD in die 7-Segment Symbole. Beispiele sind Max7219 / Max7221 / ICM7218 für bis zu 8 Stellen und SAA1064 für maximal 4 Stellen.

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.

Impulszähler mit 7-Segment-Ansteuerung

Eine Siebensegmentanzeige kann bei einfachen Anwendungszwecken auch ohne Mikrocontroller angesteuert werden. Für Impulszähler sind die CMOS-ICs CD4033 bzw. CD4026 recht häufig im Einsatz.

Diese Zähler zählen im Dezimalsystem und besitzen Ausgänge, die für die Ansteuerung einer 7-Segmentanzeige vorgesehen sind. Die Ausgänge können nur wenige mA liefern, für "normale" Anzeigen mit 20mA werden also Segmenttreiber benötigt, Low-Current-Anzeigen können direkt angesteuert werden. Die entsprechende Leitung liegt auf High wenn das Segment leuchten soll. (Anmerkung: Die Widerstände im Schaltplan sind für Low-Current-Anzeigen falsch dimensioniert)

Siebensegment Zähler CD4033.png

Das IC besitzt zahlreiche Anschlüsse, die kurz erläutert werden sollen:

An CLK=Clock wird das Signal angeschlossen, mit welchem hochgezählt werden soll.

Liegt an CKINH=Clock Inhibit ein logisches High an, so wird ein Weiterzählen verhindert. Für den normalen Betrieb muss diese Leitung auf Low gehalten werden.

Liegt RESET auf High, wird der Zähler auf 0 zurückgesetzt.

COUT=Carry Out signalisiert einen Übertrag. Es ist - wie auch im Schaltplan gezeigt - dazu gedacht, die nächste Stelle hochzuzählen. Da der Zähler im Dezimalsystem zählt, liegt hier logischerweise der durch 10 geteilte Takt von CLK an.

Ein High-Signal an LAMPT=Lamp Test schaltet alle Ausgänge auf High. Dadurch können defekte Segmente erkannt werden.

RBI und RBO (Ripple Blanking Input/Output) dienen zur Unterdrückung führender Nullen. Manchmal kann es unerwünscht sein, dass auf einer Anzeige mit z.B. vier Stellen kleine Zahlen mit vorangestellten Nullen angezeigt werden, z.B. 0042.

Ist RBI auf High, so stellt das IC alle Ziffern normal dar. Ist RBI dagegen auf Low, so wird bei einer "0" gar kein Segment zum Leuchten gebracht.

Da es sich um CMOS-ICs handelt, muss sichergestellt sein, dass jeder Eingang auf einem definierten Potential (High oder Low) liegt. Eingänge, die nicht mit einer Versorgungsspannung verbunden wurden, müssen gegebenenfalls mit Pullup- oder Pulldown-Widerständen versehen werden.

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:

  • oft höherer Stromverbrauch der Siebensegmentanzeige (2 - 20mA pro Segment!, LC-Display: z.B. 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)

Siebensegmentanzeigen aus LCDs

Abgesehen von den Siebensegmentanzeigen, die aus LEDs aufgebaut sind, sind auch noch Siebensegmentanzeigen auf Basis eines LCD erhältlich, siehe z.B. hier. Solche Anzeigen werden häufig bei digitalen Thermometern, Taschenrechnern, tragbaren digitalen Messgeräten oder Einbauanzeige für z.B. Labornetzgeräte verwendet.

Die Ansteuerung gestaltet sich hier etwas anders, da auf das LCD-Modul Wechselspannung gegeben werden soll. Lediglich die Spannungsdifferenz von gemeinsamem Anschluss und der Segmentleitung bestimmt, ob das entsprechende Segment erscheint. (Anmerkung: Mit einer konstanten Spannung können ebenfalls Segmente sichtbar gemacht werden, dies ist aber negativ für die Lebensdauer) Bei diesen LCD-Anzeigen leuchten die Segmente nicht, sondern erscheinen als meist schwarze Balken. Teils werden diese Displays dann noch mit einer Hintergrundbeleuchtung ausgestattet.

Der Vorteil dieser Anzeigen ist, dass sie (abgesehen von einer eventuellen Hintergrundbeleuchtung) nur relativ wenig Strom benötigen, meist liegt der Strombedarf bei wenigen µA. Einige µC (z.B. Atmel Mega169) haben eine passende Ansteuerung für mehrere Stellen integriert.

siehe auch

  • RN-Digi Platine mit 4 Stellen per I2C zu steuern

Autoren

  • BMS

LiFePO4 Speicher Test