Forum: Mikrocontroller und Digitale Elektronik 7-Segment-Anzeigen multiplexen...


von Sascha Biedermann (Gast)


Lesenswert?

Hallo Leute!

und schon nerve ich wieder mit einer meiner Fragen g

Ich habe schon ein wenig gesucht, aber nix so richtig passendes
gefunden.
Ich möchte gern viele 7-Segment-Anzeigen (30-40) an meinen AVR hängen.
Bis jetzt wollte ich das statisch mit schieberegistern machen das wird
aber schon von der verdrahtung her zu aufwendig.

Deshalb beschäftige ich mich jetzt doch mit dem Multiplexen.

Sagt mit doch bitte erstmal ob mein Verständniss davon richtig ist:
1. Ich verbinde die entspr. Segmente mehrerer Anzeigen mit einander.
Also z.B. a von Anzeige 1 mit a von Anzeige 2 mit a von Anzeige 3 usw.
2. Ich bastel Transistoren an die Kat. der einzelnen Anzeigen.

Nun Lade ich per Software das 1. Zeichen in das Schiebergister. Dann
schalte ich den Transistor der 1. Anzeige an und den rest aus. Dann das
2. Zeichen und den 2. Transistor... usw.

Nun meine Fragen:
Wie "schnell" muss das gehen, damit man das flimmer nicht sehen
kann?
Wieviele Anzeigen sollte ich maximal zusammen schalten...?
Wie sieht es mit der Helligkeit aus?

von leo9 (Gast)


Lesenswert?

als grobe Richtwerte:
Wiederholung schneller als 50Hz, Ansteuerzeit der einzelnen LED > 10%
(entspricht also zehn Anzeigen, für deine 40 mußt du halt immer vier
gleichzeitig ansteuern).

grüsse leo9

von Rüdiger (Gast)


Lesenswert?

Hi, Sascha

Also das mit den 30-40 anzeigen ist überhaupt kein problem
Ich würde dir empfehlen einen 1aus16 dekoder zu verwenden
das spart i/o leitungen.
Angenommen du verwendest 40 Anzeigen dann brauchst du
8 leitungen für die 7 Segmentanzeige + Dezimalpunkt
4 Leitungen für den BCD decoder
und 3 leitungen für den cs der decoder

wenn du dann noch mit einen 1 aus 16 decoder die cs der anderen dekoder
ansteuerst, kannst du mit dieser methode mit 16 i/o Leitungen bis zu
256 anzeigen ansteuern.

Um vorzustäuschen das alles Leds gleichzeitig leuchten rate ich dir
eine wiederholfrequenz von ca 60Hz.
Es gibt jedoch 1 Problem
Die Helligkeit
Du solltest von vorhinein Leds mit einer höheren Helligkeit verwenden.
Und den Strom der Led erhöhen.
Dazu musst du das Datenblatt der Led´s studieren.

Ich hab mal vor Jahren mit dieser Methode 110 7-Segment anzeigen
angesteuert.
Der Strom der sich ergab war 100mA
Helligkeit der Leds 2,2mcd

Hoffe dir geholfen zu haben

Ciao, Rüdiger

von Sascha Biedermann (Gast)


Lesenswert?

Hallo!

Danke für die Antworten!

@Rüdiger
"Also das mit den 30-40 anzeigen ist überhaupt kein problem
Ich würde dir empfehlen einen 1aus16 dekoder zu verwenden
das spart i/o leitungen.
Angenommen du verwendest 40 Anzeigen dann brauchst du
8 leitungen für die 7 Segmentanzeige + Dezimalpunkt
4 Leitungen für den BCD decoder
und 3 leitungen für den cs der decoder

wenn du dann noch mit einen 1 aus 16 decoder die cs der anderen
dekoder
ansteuerst, kannst du mit dieser methode mit 16 i/o Leitungen bis zu
256 anzeigen ansteuern."

Bahnhof ?!

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo beisammen

also das mit dem Multiplexen is wohl nur in der Theorie so einfach.
Beim Multiplexen so vieler Displays wird jede nur noch sehr kurz
angesteuert. Das geht auf die Helligkeit. Ich bezweifle, daß man bei 40
Displays noch was lesen kann. Beispiel Durchlauf 0.5s = 0.5:40 =
12.5ms. Das wäre von der Einschaltdauer zwar ok, ist aber
wahrscheinlich zu langsam um ein "stehendes Bild" zu bekommen. Wie
oben angegeben 50 Durchläude pro Sekunde: 20ms :40 500us
Einschaltdauer. Erscheint mir jedenfalls zu kurz, der Strom durch die
Dioden muß auf jeden Fall sehr hoch sein.


Gerhard

von Sascha Biedermann (Gast)


Lesenswert?

...im Datenblatt steht:

Peak Forward Current: 155 mA
1/10 Duty Cycle, 0.1ms Pulse Width

Was genau bedeutet das mit dem 1/10 ?

von Gerhard Gunzelmann (Gast)


Lesenswert?

Duty cycle bedeutet Tastverhältnis, also bezogen auf 1 Sekunde wären das
100ms ein, 900ms aus. Vermutlich bezieht es sich auf die 155mA Strom -
die im Normalfall keine LED im Dauerbetrieb kann.

Gerhard

von Rüdiger (Gast)


Lesenswert?

Der 1 aus 16 Dekoder dekodiert den BCD Code
sprich er hat 4 eingänge und 16 Ausgänge
Kannst dir mal das Datenblatt von dem Teil ansehen
z.b HEF 4515B (aktiv low)
oder der 4514 (aktiv high)

Gerhard
Glaub mir das funktioniert einwandfrei mit den 40 Anzeigen
wie ich schon schrieb hab ich das mit 110 Anzeigen schon realisiert
und funktioniert heute noch trotz erhöhten strom
denn die Leds halten kurzzeitig 100mA aus

Sascha
die daten die du hast sind schon die richtigen
das heisst nichts anderes das du durch die led max 155mA 1/10 Sekunde
(=100ms) schicken darfst

Welche helligkeit besitzt die Anzeige
Werte über 2 mcd sind super
jedoch bei 40 Anzeigen denke ich mal nicht zwingend

Ciao, Rüdiger

von Rüdiger (Gast)


Lesenswert?

Hab noch was vergessen

Was willst du noch so nebenbei mit dem Controller machen
Denn in solchen fall sollte man einen eigenen Controller abstellen der
nur die Anzeige übernimmt.
Denn bei zu großen rechenaufgaben kann es passieren das die Anzeige
flackert

von Sascha Biedermann (Gast)


Lesenswert?

also im Datenblatt steht: 1,6 mcd @ 10mA
Forward Current ist 30mA
es handelt sich dabei um "Super Bright Red"
sollte also klar gehen, denke ich, oder ?

Ich sauge garde das Datenblatt des 4514. Da gibt es etwas, was mich
schon läger beschäftigt. Es gibt da einen "74HC4514" und einen
"74HCT4514". Wo ist da eigentlich der Unterschied.

Nebenbei soll der Controller eigentlich nur Drehimpulsgeber einlesen,
die Werte auf den Displays entsprechend verändern und per RS232 an
einen PC schicken. (Ein Mega8 dürfte reichen, oder ?)

Wenn ich es richtig verstanden habe, dann wird es mit diesem
BCD-Decoder wieder statisch. Aber da habe ich doch bei dieser Anzahl
von LEDs ganz schnell einen Verbrauch von >2A.

Mit dem Multiplexen könnte ich doch da ein wenig sparen, oder? Außerdem
könnte ich ja dann per Software noch ein wenig an der Helligkeit
drehen...

von Axel Rühl (Gast)


Lesenswert?

Hi Leute,

MAX7219???
Lässt sich kaskadieren, speichert selber zwischen usw. einziger Haken:
kostet ziemlich viel.

http://www.maxim-ic.com/quick_view2.cfm?qv_pk=1339

Gruß
AxelR

von Sascha Biedermann (Gast)


Lesenswert?

Hallo Axel!

Also die Dinger sind viieeelll zu teuer.

von Peter D. (peda)


Lesenswert?

Ich würde zum Segment-Multiplex raten. Dann ist das Tastverhältnis
(Stromspitzen) mit 1/8 noch beherrschbar.

Die Stellen (Anoden) dann mit 5* 74HCT595 und 40*
npn-Treibertransistoren + 40* Strombegrenzerwiderstände ansteuern und
die Segmente (Kathoden) mit 8* pnp-Treibertransistoren von einem
weiteren 74HCT595.

Dann brauchts nur 3 Leitungen vom MC.


Peter

von Sascha Biedermann (Gast)


Lesenswert?

Hallo Peter!

Ich verstehe deine Ausführungen nicht so ganz.

Bei 40 Anzeigen habe ich 40*8 = 320 Anoden. (mit dezi-punkt)

"Die Stellen (Anoden) dann mit 5*74HCT595 und
40*npn-Treibertransistoren + 40* Strombegrenzerwiderstände"
Wie kommst du auf 40 Anoden??

"die Segmente (Kathoden) mit 8* pnp-Treibertransistoren von einem
weiteren 74HCT595."
...und wie hier auf 8??

Was von welcher Anzeige soll ich nun miteinander verbinden??

von Sascha Biedermann (Gast)


Angehängte Dateien:

Lesenswert?

...also nochmal zur Verdeutlichung. Ich hätte mir das so gedacht. Ist
das in Ordnung, oder totaler Mist, oder sollte ich es irgentwie anders
machen?

Meine Frage wäre noch:
Wieviele Displays sollte/kannn ich so maximal "Zusammenfassen" ?

von leo9 (Gast)


Lesenswert?

vom Prinzip ist die Schaltung nicht schlecht, aber:

*) Welchen LED-Strom peilst du an ? Ein ULN kann ca. 500mA -> max. 60mA
pro LED.

*) 4094 kann (glaub ich) nur einzelne Milliampere, unbedingt mit
Datenblatt abklären.

Ansonsten würde ich die Schaltung so verwenden, mehr als zehn Digit
würde ich nciht parallel schalten und Refresh sollte über 50Hz liegen.

grüsse leo9

von Peter D. (peda)


Lesenswert?

@Sascha,

die 7S-Anzeigen haben doch keine 16 Anschlüsse, d.h. entweder alle
Anoden oder alle Katoden der 8 LEDs sind zusammen verbunden (meistens
die Anoden). Somit hast du einen Anodenanschluß je Digit und 40 bei 40
Digits.

Dann werden alle 40 "A"-Segmente zusammengeschaltet, alle 40
"B"-Segmente usw., daß ergibt dann 8 Segmentanschlüsse.

Und diese 8 Segmente werden gemultiplext, d.h. für 12,5% der Zeit
werden alle "A" angeschaltet (Low-Pegel, da Katode), dann alle "B"
usw.

Und nur dann wenn im Schieberegister die Anoden des Digits auf High
sind, leuchtet in diesem Digit Segment "A" usw.

Die Treibertransistoren arbeiten in Kollektorschaltung als
Stromverstärker.

Das ist das Prinzip des Multilplexens.


Peter

von Sascha Biedermann (Gast)


Lesenswert?

gut... jetzt habe ich's (glaube ich) verstanden. Die Anzeigen, die ich
bestellen möchte haben eine gemeinsame Kathode.

Dazu bräuche ich jetzt doch einen (40) pnp-Transistor(en) der/die ~1A
kann/können. Kann mir jemand einen Typ nennen? und dann gleich noch
einen npn mit ~150mA

MfG
Sascha

von Sascha Biedermann (Gast)


Lesenswert?

....fast vergessen:

gibt's sowas auch als fertigen IC (wie z.B. ULN2803A) aber mit halt
1A. oder gleich einen ULN verwenden und immer 2 Treiber zusammen
schalten?

von Sascha Biedermann (Gast)


Lesenswert?

...hhmmmm mist:
jetzt habe ich oben wieder PNP und NPN vertauscht grr

Also als NPN würde ich jeweils 2 Ausgänge eines ULN2803A'S nehmen und
damit die gemeinsame Kathode schalten.

Jetzt bräuchte ich nur noch einen PNP-Typ mit dem ich die ca. 150mA der
Anode (die einzelnen Segmente) schalten kann. Könnte mir da jemand
einen Typ nennen?

MfG
Sascha

von Peter D. (peda)


Lesenswert?

Hier nochmal die Rechnung:

Bei einem Mittelwert von 2mA ergibt sich:

Pulsstrom der 40 Digittreiber: 8 * 2mA = 16mA
Pulsstrom der 8 Segmenttreiber: 40 * 16mA = 640mA

Probe:    8  40    2mA
        =     40 *  16mA
        =          640mA

Als Segmenttreiber geht dann der BC368 (max 1A)

Und für Bastlerzwecke kann man die 16mA dem 74HC595 direkt entnehmen.


Peter

von Sascha Biedermann (Gast)


Lesenswert?

hm...

Bei einem Mittelwert von 2mA ergibt sich:

Pulsstrom der 40 Digittreiber: 8 * 2mA = 16mA
Pulsstrom der 8 Segmenttreiber: 40 * 16mA = 640mA

g verstehe ich nicht...

Also... du geht davon aus das eins der acht Segmente mit 2mA betreiben
wird. Das bedeudet das eine komplette Anzeige (digit?) maximal 16mA
braucht.
Aber wieso dann "40 * 16mA"?? Es ist doch immer nur eine Anzeige auf
einmal an und ein Segment braucht 2mA ?

Oder verstehe ich dich komplett falsch? Ich hätte den Pulsstrom für
eine LED (Segment) mit ~100mA angesetzt. Sonst wird's doch zu dunkel,
oder ??

von Axel Rühl (Gast)


Lesenswert?

Hi,
ich noch mal, wegens der MAX7219:

bei 40 Anzeigen brauchste 5 Stück, macht ca.50Euro, wirklich zu
teuer??

Brauchste keine PNP oder NPN transistoren, schon gar keine 40Stück.
Ausserdem sparste 'ne Menge Overhead im Controller. Sieh wenigstens
mal ins datenblatt.

Ich mein ja nur...

Gruß an alle
AxelR

PS.
Was kostet so ein BC368? Hab nachgesehen. Ja,gut: 6Cent bei Reichelt
-einverstanden- macht zusammen 2.40 Euro und keine 50.

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.