Forum: Projekte & Code 7-Segm.-LED-Anzeige, 6-stellig, statische Ansteuerung mit (74HC)4094


von M. N. (Gast)



Lesenswert?

Multiplexen von 7-Segment LED-Anzeigen ist für die viele Elektroniker 
das Mittel der Wahl. Bei einigen Anzeigen ist es auf Grund der 
vorgegebenen Anschlüsse auch unumgänglich.
Verwendet man allerdings gängige 13mm LEDs oder größer, deren 10 
Anschlüsse je 5 oben und je 5 unten angeordnet sind, bringt eine 
statische Ansteuerung der Segmente einige Vorteile und kann selbst von 
kleinen µCs im 8-pol. Gehäuse erledigt werden.

Die statische Ansteuerung erfolgt über Schieberegister, wobei drei 
Datenleitungen LED_DATA, LED_CLOCK und LED_STROBE ausreichen. 
Empfehlenswert ist noch eine 4. Leitung LED_OE, die die Ausgänge der 
Schieberegister aktivieren kann und darüber auch die Steuerung der 
Helligkeit mittels PWM erlaubt.
Als Schieberegister gut geeignet ist der Typ ..4094, den es in uralter 
CMOS-Ausführung (CD4094, HEF4094) gibt, und der auf Grund seiner 
'schlappen' CMOS-Ausgänge die Segmente direkt ansteuern kann. Die 
Ausgänge begrenzen ihren Strom durch ihren Innenwiderstand. Bei Vcc = 5V 
stellt sich ein Segmentstrom von ca. 5mA ein.
Weiterhin gibt es den 74HC4094 mit deutlich höheren Ausgangsströmen, bei 
denen der Segmentstrom durch Reihenwiderstände (typ. 470 Ohm, für ca. 
6mA) begrenzt werden muß. Bei der Bestückung kann der zusätzliche 
Widerstand von Nachteil sein; dafür arbeiten die 74HC4094 bereits ab Vcc 
= 2V und problemlos bei Vcc = 3V.

Bei Multiplex-Anzeigen muß man die Treiber auf die verwendeten LEDs 
anpassen: Anzeige mit gemeinsamer Anode oder gemeinsamer Kathode 
brauchen eine deutlich geänderte Ansteuerung.
Bei statischer Ansteuerung hingegen sind nur die Anschlüsse der 
Anoden/Kathoden auf GND oder Vcc zu legen und das Bitmuster für die 
Segmente 1:1 oder invertiert auszugeben. Wenn man es unbedingt braucht, 
könnte man die Anzeige auch gemischt bestücken :-)

Die angehängten Fotos zeigen die einfache Verdrahtung; die 
unterschiedliche Zuordnung der Segmente wird per Software erledigt.
Ob nun 3 oder 8 Stellen angesteuert werden sollen, der Aufwand ist recht 
gering und für jede weitere Stelle gleich. Es können auch mehrere 
mehrstellige Anzeigen kaskadiert werden.

Das angefügte Programm 'Digit_6LED.c' zeigt die Grundfunktionen für eine 
6-stellige Anzeige. 'Fmeter_SCH.png' zeigt die verwendete Schaltung fürs 
Beispielprogramm mit Schieberegistern 74HC4094 und Vorwiderständen.
'Digit_6LED_4094.png' zeigt die einfachere Schaltung für HEF4094 in 
CMOS.
Und zum Schluß noch, wie 'schön' die Anzeige leuchtet.

von Tany (Gast)


Lesenswert?

M. N. schrieb:
> Die
>
> Ausgänge begrenzen ihren Strom durch ihren Innenwiderstand. Bei Vcc = 5V
>
> stellt sich ein Segmentstrom von ca. 5mA ein.

Geil! darauf bin ich nicht gekommen. Danke für den Tip
Bei dem Preis von ca. 30 Cent für 4094 kann man ruhig auf Multiplex 
verzichten.

Gruß

von Mikel M. (mikelm)


Lesenswert?

Tany schrieb:
> Bei dem Preis von ca. 30 Cent für 4094 kann man ruhig auf Multiplex
> verzichten.

 na ja der Max für 64 Leds oder 8*7 Segmentanzeigen kostet auch nur 
unter 1Euro.
 Kommt immer darauf an was man machen will und wie die Gegebenheiten 
sind für was man sich entscheidet.

von Tany (Gast)


Lesenswert?

M. N. schrieb:
> Die angehängten Fotos zeigen die einfache Verdrahtung; die
>
> unterschiedliche Zuordnung der Segmente wird per Software erledigt.
das och noch, du bist einfach super!
Der Layout bekomme ich somit locker auf eine Seite.

von Tany (Gast)


Lesenswert?

Mikel M. schrieb:
> na ja der Max für 64 Leds oder 8*7 Segmentanzeigen kostet auch nur
>
> unter 1Euro.
>
hab kein gesehen! Max7219 kostet immer noch über 5 Mäuse!

von M. N. (Gast)


Angehängte Dateien:

Lesenswert?

Tany schrieb:
> Der Layout bekomme ich somit locker auf eine Seite.

Vielleicht hift Dir mein Layout weiter: Eagle 4.09.

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Anbei ein Ausschnitt aus einer Anzeige mit 21 * 74HC595.
Es ersetzt 7 Panelmeter mit 3 Digits, das 4. Digit ist das '-' Zeichen.
Die Widerstandsnetzwerke sind 8*470R.

von M. N. (Gast)


Lesenswert?

Der 74HC595 ist auch ein schönes Teil und hat sogar den Vorteil, dass 
der Summenstrom über GND oder VCC max. 70mA betragen darf. Beim 74HC4094 
sind es 50mA, weshalb ein Segmentstrom von 6mA die Grenze darstellt. 
Dennoch sind 6mA für 'high brightness' Anzeigen recht (/zu) viel!

Meine ersten CD4094 waren von RCA (Alfred Neye Enatechnik hatte ein 
Vertriebsbüro am Ernst-Reuter-Platz :-) Bei 5V lieferten diese einen 
Ausgangskurschlußstrom von 2-3mA: sehr schlapp.
Dann kamen die 'B'-Typen auf und NXP kam mit der HEF-Serie, die dann mit 
den immer besser werdenden LEDs hinreichende Helligkeit bei ca. 5mA 
Segmentstrom ermöglichten. Multiplexbetrieb ließ auch keine sonderlich 
höheren Ströme zu.
Irgendwann gab's dann die 74HC-Serie und den 74HC595 auch zu kaufen. Ich 
bin bei den ..4094 geblieben.

Heute würde ich die Auswahl davon abhängig machen, wie das Layout am 
einfachsten paßt.

Aus Neugierde habe ich noch mit den Versorgungsspannungen gespielt, um 
die Tauglichkeit für Batteriebetrieb zu testen.
Die direkte Ansteuerung mit HEF4094 liefert bei 3V noch gute Helligkeit. 
Die durchschnittliche Stromaufnahme einer 6-stell. Anzeige liegt bei 
<50mA.

Die 74HC4094 mit 470 Ohm Reihenwiderstand liefern bei 3V eine 
Helligkeit, die nicht mehr abgedimmt werden muß. Die Stromaufnahme liegt 
hier bei <80mA für 6 Stellen. Man könnte die Reihenwiderstände auch auf 
220 Ohm reduzieren, wenn man gerne Sonnenbrille trägt :-)

Dann noch der Extremtest: bei 1,8V leuchtet die Anzeige noch erkennbar 
(470 Ohm), obwohl das schon außerhalb der Datenblattangaben liegt.

Fazit: auch mit geringerer Versorgungsspannung lohnt die statische 
Ansteuerung mit Schieberegistern. Einen passenden µC vorausgesetzt, ist 
die Ausführung mit HC4094 für den Bereich von 2,4 -> 5V gut brauchbar 
und bietet optimale Voraussetzungen für einen Batteriebetrieb.
Positiv anzumerken ist noch, dass der Wirkungsgrad mit sinkender 
Versorgungsspannung steigt, da die Verluste an den Serienwiderständen 
abnehmen.
Oben wurde der MAX7219 erwähnt: laut Datenblatt macht er bei VCC < 4V 
schlapp. Ein 3V Betrieb wäre mit ihm nicht möglich.

von V.B. (Gast)


Lesenswert?

Moin,

ich hab mal kleinere Fragen bezüglich der Schaltung in Fmeter_SCH.png.

Mir fällt auf, dass das 7-Segment ganz links mit LSD und das ganz rechts 
mit MSD bezeichnet ist.

Für gewöhnlich ist ja (bei normalen Zahlen) links das MSD und rechts das 
LSD.

Erste Frage:

Ist in der Schaltung "bottom view" bezogen auf die 7-Segmente?
Dann würde es natürlich wieder hinkommen.

Zweite Frage:

Oder ist die Bezeichnung völlig egal? Da wie beschrieben:

M. N. schrieb:
> die
> unterschiedliche Zuordnung der Segmente wird per Software erledigt

Letzte Frage:

Oder hat die Bezeichnug etwas damit zu tun, in welcher Reihenfolge die 
auszugebenden Digits (oder vielleicht auch Daten) in das Schieberegister 
"geschoben" werden? Das Rechte zuerst (deswegen MSD) und das Linke zum 
Schluss (nun halt LSD).

Ich frage das hier, da ich gerade eine Stoppuhr baue mit 4 7-Segmenten. 
Eins für Minuten, zwei für Sekunden und eine für Zehntel-Sekunden. D. h. 
maximale Anzeige 9:59.9. Danach fägt sie wieder von vorne an.

Ich habe vor das Schaltungsprinzip von M.N. zu benutzen und möchte aber 
vermeiden, dass ich später in der Software komplizierte Routinen 
schreiben muss, um die Reihenfolge meiner Zahlen hinzubasteln.

Gruß
V.B.

von Michael B. (laberkopp)


Angehängte Dateien:

Lesenswert?

V.B. schrieb:
> Ist in der Schaltung "bottom view" bezogen auf die 7-Segmente?

Schau dir mal die Platine an, da sitzen die Chips hinten drauf.

LSD ist die Einerstelle, die von der Software zwar das erste 
rausgeschobene bit bekommt, welches dann aber weiter durchgeschoben 
werden muss bis es beim letzten digit landet, die zuletzt von der 
Software rausgeschobene bits werden also in die LSD Einerstelle 
gelatcht.

Falls du es aus Versehen andersrum verdrahtet hast, kein Problem, 
einfach die Sowfatre ändern.

Der Text

"und der auf Grund seiner 'schlappen' CMOS-Ausgänge die Segmente direkt 
ansteuern kann. Die Ausgänge begrenzen ihren Strom durch ihren 
Innenwiderstand. Bei Vcc = 5V stellt sich ein Segmentstrom von ca. 5mA 
ein."

soll suggerieren, daß man keine Widerstände braucht. Die dienen aber 
nicht nur dem Schutz, sondern auch der gleichmässigen Helligkeit. So wie 
im Bild (TDSC1150 ohne Vorwiderstände an CD4094) sieht es einfach nach 
Murks aus, auch wenn unser Held M.N. natürlich solchen Murks baut. 
Beitrag "Re: Selbstbau Armbanduhr: absolut kriminelle LED Ansteuerung"

von m.n. (Gast)


Lesenswert?

V.B. schrieb:
> Für gewöhnlich ist ja (bei normalen Zahlen) links das MSD und rechts das
> LSD.

Das ist ja zunächst einmal der Schaltplan, der für gewöhnlich von links 
nach rechts gezeichnet wird, was die Richtung der Daten angeht: Eingänge 
-> Ausgänge. Das Layout ist so, daß beim Blick auf die Digits sich das 
MSD ganz links befindet.

Die Software schiebt gemäß Schaltplan zunächst die Daten für MSD heraus. 
Das hat den Vorteil, daß man das Display auch kaskadieren kann, um mehr 
Stellen (Vorzeichen, oder auch mehrere Anzeigen) zu verwenden. Die 
zuletzt herausgeschobenen Daten landen immer an der richtigen Position.

V.B. schrieb:
> Ich habe vor das Schaltungsprinzip von M.N. zu benutzen und möchte aber
> vermeiden, dass ich später in der Software komplizierte Routinen
> schreiben muss, um die Reihenfolge meiner Zahlen hinzubasteln.

Das ist kein Problem.

von V.B. (Gast)


Lesenswert?

Vielen Dank für Eure Antworten. Ich merke schon, man ist hier in 
kompetenten Händen.
Ich habe die Schaltung mal mit Multisim simuliert. D.h. ich habe mir 
serielle Daten ausgedacht z.B. "01100000 01100111", diese mit einem 
interaktiven Digitalschalter an das erste Schieberegister angelegt, nach 
jedem einzelnen Bit einen Takt erzeugt und zum Schluss den "enable 
output" mit 5 V versorgt. Und siehe da, es stand "14." in den ersten 
beiden 7-Segment-Anzeigen. Danach ist Multisim dann meistens mit einem 
Laufzeitfehler ausgestiegen. Allerdings habe ich eine andere 
Verdrahtungsreihenfolge zwischen den Schieberegistern und den 
7-Segment-Anzeigen verwendet als es in der Fmeter_SCH.png und der 
Digit_6LED_4094.png gezeigt wird. Es ging mir auch nur um das 
Funktionsprinzip. Der Strobe-Eingang hat bei Multisim irgendwie keine 
Funktion, aber das werde ich dann später bei der Programmierung schon 
herausfinden, wie der arbeitet.

von Harry (Gast)


Lesenswert?

Tany schrieb:
> Mikel M. schrieb:
> na ja der Max für 64 Leds oder 8*7 Segmentanzeigen kostet auch nur unter
> 1Euro.
>
> hab kein gesehen! Max7219 kostet immer noch über 5 Mäuse!

ebay China 50 Stück für 12€ + (4 Wochen vorher) 30 Stück. Davon bisher 
28 verbaut: alle funktionieren.

von Tany (Gast)


Lesenswert?

Harry schrieb:
> ebay China 50 Stück für 12€ + (4 Wochen vorher) 30 Stück. Davon bisher
> 28 verbaut: alle funktionieren.

Das war von fast 5 Jahre, wo ich die Platine noch selbst ätzen wollte 
und es noch nicht soviel Nachbau von Chinesen gab.
Und ja, selbst wenn der jetzt bei Chinesen nur noch paar Cent kostet, 
würde ich immer noch meiden. Heutzutage gibt es schon viel besseres. :-)

von m.n. (Gast)


Lesenswert?

Tany schrieb:
> Das war von fast 5 Jahre, wo ich die Platine noch selbst ätzen wollte

Wie die Zeit vergeht!
Ich nehme immer noch 4094 ;-)

von Jens G. (jensg)


Lesenswert?

Da dieses Forum auch über Google gefunden wird. .. möchte ich etwas 
Software dazu tun. Für den Fan eines Arduino wird es so noch leichter.

https://github.com/Electromed/EmSevenSegment

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Jens G. schrieb:
> https://github.com/Electromed/EmSevenSegment

Die dort gezeigte Schaltung wird auch für einen MC74HCT4094A empfohlen. 
Das ist aber nicht im Sinne des Erfinders: es fehlen die 
strombegrenzenden Widerstände. Siehe oben!
Oberflächlich angesehen, wird im Programm ein vollständiger Zeichensatz 
A - Z angeboten. Ein lesbarer Zeichensatz ist auf einer 7-Segmentanzeige 
nicht möglich. Das muß man einfach akzeptieren oder auf LCD-Module 
wechseln!

von Jens G. (jensg)


Lesenswert?

m.n. schrieb:
> Die dort gezeigte Schaltung wird auch für einen MC74HCT4094A empfohlen.
> Das ist aber nicht im Sinne des Erfinders: es fehlen die
> strombegrenzenden Widerstände. Siehe oben!
Stimmt genau - der MC74HCT4094A hat etwa .. 42 Ohm Ri. Die "alten" CMOS 
begrenzen den Strom durch etwa .. 680 Ohm Ri. Sehr aufmerksam bemerkt. 
Ich bin nicht der Urheber der genannten Quelle.

von m.n. (Gast)


Lesenswert?

Jens G. schrieb:
> Ich bin nicht der Urheber der genannten Quelle.

Na dann is gut ;-)

von Jens G. (jensg)


Lesenswert?

m.n. schrieb:
> Oberflächlich angesehen, wird im Programm ein vollständiger Zeichensatz
> A - Z angeboten. Ein lesbarer Zeichensatz ist auf einer 7-Segmentanzeige
> nicht möglich.
Wer mit einem Zeichensatz etwas probieren möchte kann es mit Excel tun 
.. 
https://github.com/JensGrabner/snc98_Slash-Number-Calculator/tree/master/Software/Arduino/Projekte/snc98/Document 
"7segmentdesign_new.xls"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.