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.
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ß
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.
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.
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!
Tany schrieb: > Der Layout bekomme ich somit locker auf eine Seite. Vielleicht hift Dir mein Layout weiter: Eagle 4.09.
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.
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.
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.
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"
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.
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.
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.
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. :-)
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 ;-)
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
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!
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.