Hallo Liebe Freunde,
seit einigen Wochen bastele ich mir ein kleines Gerät.
Ich bin jetzt bei der Anzeige : 10 7Segmente im Multiplexbetrieb, es
funktioniert auch.
Der Controller ist ein MSP430 (3.3 Volts).
Timer Interrupt routine für display update erfolgt ca. alle 5
Millsekunden.
Leider sind die Dioden total gedimmt.
Ich brauche also mehr Strom :
Ich habe eine weiter 12 Volts Quelle auf der Platine. Die werde ich
jetzt als Versorgungsspannung für die 7segemente Dispays
benutzen. Das ganze in Verbindung mit einem BC327-40 pnp Transitor.
Die Schaltung im Anhang habe ich vor zu benutzen, aber einige Sachen
beunruhigen mich noch deswegen möchte ich hier
ein Paar Fragen stellen bevor ich alle Displays verbrenne.
1) Der "Peak Current" für jede Diode im 7Segment Display beträgt: 140mA
( ca. 0.1ms ).
Ich habe vor ca. 350mA am BC327 Kollektor zu erzeugen.
So, wenn alle 8 LED eines Segments leuchten, werden die 350mA durch 8
geteilt, so
würde jede Diode ca. 43mA sehen für ca. 5ms
Problem 1 : Wenn nur 2 Segments leuchten dann sind es ca. 175mA pro
Segment, also mehr als erlaubt
und sogar für eine längere Zeit !!!
2) Problem 2 : Im BC327-40's Datasheet steht, dass die Verstärkung sich
verringert, wenn man höhere Kollektorströme flissen lässt.
ab 300mA würde die minimale Verstärkung (hFe) nur noch
170 betragen.
in der simulation sehe ich das nicht....LTspice rechnet
weiter mit hFe(min)=250.
3) Problem 3 : Um denn PNP (BC327-40) zu steuern benutze ich den NPN (
BC337-40), die minimale Verstärkung von BC337-40 beträgt ca. 250.
das zwingt mich höhe Basis widerstände zu werwenden (312K
zu beispiel).
Soll ich einen anderen PNP mit einer kleineren
Verstärkung nehmen,damit die Basis Wirderstand kleiner wird, oder
es ist egal ?
Vielen Dank im voraus.
Mike schrieb:> 1) Der "Peak Current" für jede Diode im 7Segment Display beträgt: 140mA> ( ca. 0.1ms ).> Ich habe vor ca. 350mA am BC327 Kollektor zu erzeugen.
Die erzeugst du nicht, sondern die kommen in Summe zusammen.
> So, wenn alle 8 LED eines Segments leuchten, werden die 350mA durch 8> geteilt, so> würde jede Diode ca. 43mA sehen für ca. 5ms
Jede LED hat ihren eigenen Vorwiderstand (der im Falle einer gemeinsamen
Anode dann eben 'unterhalb' der LED sitzen muss. Und der wird so
eingestellt, dass der Strom rinnt, den du für diese 1 LED haben willst.
Bei 8 eingeschalteten LED addiert sich dieser Strom dann eben zu den von
dir berechneten 350mA. Bei nur 2 eingeschalteten LED sind es dann eben
nur 86mA
> 2) Problem 2 : Im BC327-40's Datasheet steht, dass die Verstärkung sich> verringert, wenn man höhere Kollektorströme flissen lässt.> ab 300mA würde die minimale Verstärkung (hFe) nur noch> 170 betragen.> in der simulation sehe ich das nicht....LTspice rechnet> weiter mit hFe(min)=250.
Da würde ich dem Datasheet mehr vertrauen als der Simulation.
> 3) Problem 3 : Um denn PNP (BC327-40) zu steuern benutze ich den NPN (> BC337-40), die minimale Verstärkung von BC337-40 beträgt ca. 250.> das zwingt mich höhe Basis widerstände zu werwenden (312K> zu beispiel).
Versteh ich nicht.
Wenn dir ein viertel aufgedrehter Wasserhahn reicht, damit die
Wassermenge durchkommt, die du mindestens haben willst, dann kannst du
den Wasserhahn auch halb aufdrehen. Nur weiter zu darfst du nicht
drehen, auf aber immer.
> Leider sind die Dioden total gedimmt.
Ach.
> Ich habe vor ca. 350mA am BC327 Kollektor zu erzeugen
Man rechnet wohl nicht vom Transistor und guckt was an dem Display übrig
bleibt, sondern man rechnet was das Display braucht um ausreichend hell
zu sein bis zum Transistor zurück.
Dein Diplay will 20mA püro Segemnt Dauerstrom für normale Helligkeit.
Wenn man eine Stelle nach der anderen im Multiplex betriebt, bleibt für
jede der 10 Stellen nur 1/10 der Zeit übrig, also müsste in der zeit
200mA fliessen. Dein Display verträgt nur 140mA, also ist es für 1:10
Multiplex nicht geeignet, sondern nur für 1:7.
Macht nichts, das geht auch, segmentweise. Du multiplext als
segmentweise, erst Segment A von den Stellen die leuchten sollen, dann
Segment B von den Stellen wo es leuchten soll, bis Segment G.
Also schickst du 1/7 der Zeit den 7-fachen Strom durch, also 140mA, das
verträgt dein Display auch (na ja, korrekterweise nur 1/10 der Zeit wenn
man die Fussnote des Datenblatts liest).
Da du NATÜRLICH nicht geschrieben hast, ob dein Display common anode
oder common kathode hat, kann man nur raten: Glauben wir common anode.
Dann musst du die Verbindung nach GND schalten, mit einem NPN, der BC337
schafft die 140mA problemlos und bekommt dazu 7mA Basisstrom, also einen
Basisvorwiderstand von ca. 560 Ohm. Diene Schaltung zeigt da den völlig
falschen Q1 als PNP.
Die 10 Segment A Leitungen von allen Displays zusammen muß man an +5V
schalten (nicht an +12V, was willst du mit +12V ? Hast du eine
Grossziffernazeige mit 3 LEDs in Reihe ? So sieht dein Datenblatt nicht
aus). Es können 10 x 140mA = 1.4A fliessen. Da raucxht deine BC327
Winzling einfach ab. Du brauchst schon etwas leistungsfähige
Transistoren, und ein 1.4A 5V Netzteil. Ich würde P-Kanael-MOSFETs wie
IRF7304 verwenden, da braucht man nur 5 von und keine Widerstände, aber
rechnen wir das für deine Schaltung weiter durch:
Ein BD136 für Q1 schafft 1.4A, und braucht dafür 140mA Basisstrom, also
R1 mit 27 Ohm. Der Q3 BC337 kjann diese 140mA schalten und braucht
seinerseits dazu 7mA Basistrom, also 560 Ohm für R3, nicht deine 312k.
Du musst bei Bipolartransistoren im Shcaltbetrieb mit 1/10 bis 1/20 des
Kollektrostromes als Baisstrom rechnen, nicht mit der Stromverstärkung
hFE im glücklichsten Fall, damit er voll durchschaltet, möglichst
kleinen Spannungsabfall hatk, wenig warm wird und seine
Datenblattmaximaelwerte auch schafft (hier 1.5A für den BD136, eben nur
wenn er korrekt bedient wird).
Dann bleibt der Widerstand R1. Er kommt nicht i die Zuleitung, in der
der grössere Strom fliesst, die 1.4A. Sonswdern er kommt in die Leitung
vom Display, in der der kleinere Strom fliesst, also vor den Q2. Damit
lösen sich auch alle deine Probleme, daß angeblich unterschiedlich viel
Strom über ihn fliesst, je nach dem wie viele LEDs leuchten. Er ist für
nur 1 LED zuständig, also für 140mA, also 18 Ohm.
Nochmal:
http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1
Hallo Karl Heinz Buchegger,
Hallo Mawin,
Vielen Dank für euren Tipps und Hilfe.
Mawin,
ich habe vor Segmentweise zu multiplexen, wie du mir empfohlen hast.
Aber einige Punkte sind mir noch nicht ganz klar.
>Da du NATÜRLICH nicht geschrieben hast, ob dein Display common anode>oder common kathode hat, kann man nur raten: Glauben wir common anode.
genau "Common anode" ist richtig.
>Die 10 Segment A Leitungen von allen Displays zusammen muß man an +5V>schalten (nicht an +12V, was willst du mit +12V ? Hast du eine>Grossziffernazeige mit 3 LEDs in Reihe ? So sieht dein Datenblatt nicht aus).
warum +12V ?
Später möchte ich die Helligkeit der ganzen Anzeige regelbar machen.
Also einen Poti auf ADC-Eingang wird dann die PWM ändern.
Die PWM Ausgangpin des uCs wird als Basis Signal eines NPN
transistor's,dessen Kollektor auf +12V
hängt benutzt.
ICh dachte mit +12V würde ich dann einen großeren Spielraum für die
Helligkeitsregelung haben.
Aber , das nicht wichtig ich mache erst mal mit 5V weiter, wie du mir
empfohlen hast.
> Es können 10 x 140mA = 1.4A fliessen.
Also 1.4A hier, weil man zwei mal multiplexen muss, richtig ?
1) Segmentweise ( 7segmente==>jeder Segment leuchtet 1/7 der Zeit )
20mA x 7 Segment = 140mA
2) Ziffernweise ( 10 Ziffer ==>Jedes Ziffer leuchtet 1/10 der zeit)
140mA x 10 = 1.4A
>Dann bleibt der Widerstand R1. Er kommt nicht i die Zuleitung, in der>der grössere Strom fliesst, die 1.4A. Sonswdern er kommt in die Leitung>vom Display, in der der kleinere Strom fliesst, also vor den Q2. Damit>lösen sich auch alle deine Probleme, daß angeblich unterschiedlich viel>Strom über ihn fliesst, je nach dem wie viele LEDs leuchten. Er ist für>nur 1 LED zuständig, also für 140mA, also 18 Ohm.
Diese Formel hast du benutzt um die 18 Ohm zu finden, richtig ?
Segmentwiderstand:
(Ausgangsspannung - Spannungsabfall an der LED - Spannungsabfall am
Transi) / (Nennstrom der LED * Stellenanzahl)
(5 -2,1-0,5) / (20mA x 7) = ca. 18
Noch ein Mal Vielen Dank.
Mike schrieb:> warum +12V ?> Später möchte ich die Helligkeit der ganzen Anzeige regelbar machen.> Also einen Poti auf ADC-Eingang wird dann die PWM ändern.> Die PWM Ausgangpin des uCs wird als Basis Signal eines NPN> transistor's,dessen Kollektor auf +12V
Das funktioniert sowieso nicht.
> ICh dachte mit +12V würde ich dann einen großeren Spielraum für die> Helligkeitsregelung haben.
Quatsch.
Eine LED ist Stromgesteuert. Über der fällt immer dieselbe Spannung (bei
einem bestimmten Strom) ab. Das sind so um die 1.7V (bei roten LED). die
restlichen ca 11V vernichtest du im Widerstand. Mehr tust du nicht, wenn
du da 12V anlegst.
> Aber , das nicht wichtig ich mache erst mal mit 5V weiter, wie du mir> empfohlen hast.
Gut.
>> Es können 10 x 140mA = 1.4A fliessen.>> Also 1.4A hier, weil man zwei mal multiplexen muss, richtig ?
Nein.
Es fliessen maximal 1.4A weil in einem Multiplexdurchgang maximal 10 LED
Segmente gleichzeitig leuchten können.
> 1) Segmentweise ( 7segmente==>jeder Segment leuchtet 1/7 der Zeit )>> 20mA x 7 Segment = 140mA
No. Du schaltest von allen 10 Segmenten zb das Segment links/oben ein,
wenn es für die Zahl an dieser Stelle notwendig ist. Die leuchten dann
an allen Stellen gleichzeitig. Da wird nix gemultiplext.
Danach kommen die nächsten 10 Segmente drann: zb die rechts/oben (sofern
sie an der jeweiligen Stelle benötigt werden)
usw. usw.
d.h. jedes Segment leuchtet nur 1/7 der Zeit. Daher vergrößert man den
Strom auf das 7-fache, damit sich das wieder ausgleicht.
>>Strom über ihn fliesst, je nach dem wie viele LEDs leuchten. Er ist für>>nur 1 LED zuständig, also für 140mA, also 18 Ohm.
Genau
> Diese Formel hast du benutzt um die 18 Ohm zu finden, richtig ?>> Segmentwiderstand:> (Ausgangsspannung - Spannungsabfall an der LED - Spannungsabfall am> Transi) / (Nennstrom der LED * Stellenanzahl)>>> (5 -2,1-0,5) / (20mA x 7) = ca. 18
Genau
Der Rechengang stimmt jetzt grundsätzlich. Nur sitzen die Widerstände an
der falschen Stelle. Du du jetzt über die Segmente multiplext und an
jeder Stelle immer nur 1 Segment zu einem beliebigen Zeitpunkt leuchtet,
reicht pro Stelle 1 Widerstand, der jetzt an die Anode der Anzeige
kommt.
Hallo Karl Heinz,
Vielen Dank erstmal für deine schnelle Antwort.
Ich muss es zugeben, deine Antwort verwirrt mich ein bisschen.
Das Problem ist, dass ich mir Segmentweisenmultiplexen nicht richtig
verstehe.
>>Es fliessen maximal 1.4A weil in einem Multiplexdurchgang maximal 10 LED>>Segmente gleichzeitig leuchten können.>>No. Du schaltest von allen 10 Segmenten zb das Segment links/oben ein,>>wenn es für die Zahl an dieser Stelle notwendig ist. Die leuchten dann>>an allen Stellen gleichzeitig. Da wird nix gemultiplext.>>>Danach kommen die nächsten 10 Segmente drann: zb die rechts/oben (sofern>>sie an der jeweiligen Stelle benötigt werden)
Stellenweise Multiplexen mache ich so ( es funktioniert auch ).
=============================================================
ich habe eine funktion (DisplayController), die eigentlich wie ein
"State Machine" gebaut ist.
Weil ich Zehn Stellen habe, hat meine " State Machine" auch zehn
Zustände.
State1:
1) PNP Transistor der ersten Stelle (i.e 7Segment) aktivieren.
2) Die "OR" Kombination der Segmente die leuchten sollen als 1Byte
per
SPI an Shift Register Senden.
3) Ausgang des Shift Register freischalten
4) State2 aktivieren
5) Return ;
.
.
.
so bis .
.
State10
Segmentweise Multiplexen habe ich mir so vorgestellt.
=====================================================
State1:
1) PNP Transistor der aktuellen Stelle ( ie erste Stelle) aktivieren.
2) Hier Sende ich nicht die OR Kombination der Segmente die leuchten
sollen.
Sondern,
Ich bringe die Segmente hinter einander in einer FOR Schleife zum
leuchten.
Das heisst , dass ich 7 Mal die Segmente Daten per spi schicken
muss.
3) Ausgang des Shift Registers, wird im Punkt 2) für jeden
Schleifendurchgang freigeschaltet.
4) State2 aktivieren
5) Return ;
.
.
.
so bis> .
.
.
State10
Was mache ich falsch ?
Widerstand:
===========
>>Der Rechengang stimmt jetzt grundsätzlich. Nur sitzen die Widerstände an>>der falschen Stelle. Du du jetzt über die Segmente multiplext und an>>jeder Stelle immer nur 1 Segment zu einem beliebigen Zeitpunkt leuchtet,>>reicht pro Stelle 1 Widerstand, der jetzt an die Anode der Anzeige>>kommt.
Mawin sagt das Gegenteil:
<<
>>Dann bleibt der Widerstand R1. Er kommt nicht i die Zuleitung, in der>>der grössere Strom fliesst, die 1.4A. Sonswdern er kommt in die Leitung>>vom Display, in der der kleinere Strom fliesst, also vor den Q2. Damit>>lösen sich auch alle deine Probleme, daß angeblich unterschiedlich viel>>Strom über ihn fliesst, je nach dem wie viele LEDs leuchten. Er ist für>>nur 1 LED zuständig, also für 140mA, also 18 Ohm.>>>>>
Vielen Dank für deine Mühe.
Mike schrieb:> Segmentweise Multiplexen habe ich mir so vorgestellt.> =====================================================>> State1:>> 1) PNP Transistor der aktuellen Stelle ( ie erste Stelle) aktivieren.
Nicht der aktuellen Stelle.
Es gibt keine aktuelle Stelle!
Statt dessen gibt es das aktuelle Segment.
Das ist zb das Segment links/oben in JEDER Stelle.
Die Frage ist also, bei welchen Stellen sollen jeweils die Segmente
links/oben einegschaltet werden und bei welchen nicht.
Es ist ganz einfach die Umkehrung des Prinzips vom Stellenweisen
Multiplex
(anzuzeigen sind die Zifferrn 0123456789)
Beim Stellenweisen Multiplex hast du 10 Stellen ...
1
.. .. .. .. .. .. .. .. .. ..
2
. . . . . . . . . . . . . . . . . . . .
3
.. .. .. .. .. .. .. .. .. ..
4
. . . . . . . . . . . . . . . . . . . .
5
.. .. .. .. .. .. .. .. .. ..
im ersten Zeitschritt wird die erste Stelle mit allen Segmenten
angezeigt
1
0 1 2 3 4 5 6 7 8 9
2
3
-- .. .. .. .. .. .. .. .. ..
4
| | . . . . . . . . . . . . . . . . . .
5
.. .. .. .. .. .. .. .. .. ..
6
| | . . . . . . . . . . . . . . . . . .
7
-- .. .. .. .. .. .. .. .. ..
im nächsten Zeitschritt die nächste
1
.. .. .. .. .. .. .. .. .. ..
2
. . . | . . . . . . . . . . . . . . . .
3
.. .. .. .. .. .. .. .. .. ..
4
. . . | . . . . . . . . . . . . . . . .
5
.. .. .. .. .. .. .. .. .. ..
dann wieder die nächste
1
.. .. -- .. .. .. .. .. .. ..
2
. . . . . | . . . . . . . . . . . . . .
3
.. .. -- .. .. .. .. .. .. ..
4
. . . . | . . . . . . . . . . . . . . .
5
.. .. -- .. .. .. .. .. .. ..
usw.
1
.. .. .. -- .. .. .. .. .. ..
2
. . . . . . . | . . . . . . . . . . . .
3
.. .. .. -- .. .. .. .. .. ..
4
. . . . . . . | . . . . . . . . . . . .
5
.. .. .. -- .. .. .. .. .. ..
Für das sgementweise Multiplexing, drehst du die Multiplexrichtung um,
und fragst dich, für das Segment links/oben, bei welchen Stellen ist es
im ersten Zeitschritt einzuschalten?
1
0 1 2 3 4 5 6 7 8 9
2
3
.. .. .. .. .. .. .. .. .. ..
4
| . . . . . . . | . | . | . . . | . | .
5
.. .. .. .. .. .. .. .. .. ..
6
. . . . . . . . . . . . . . . . . . . .
7
.. .. .. .. .. .. .. .. .. ..
im nächsten Zeitschritt: das Segment oben quer, bei welchen Stellen ist
es einzuschalten
1
-- .. -- -- .. -- -- -- -- --
2
. . . . . . . . . . . . . . . . . . . .
3
.. .. .. .. .. .. .. .. .. ..
4
. . . . . . . . . . . . . . . . . . . .
5
.. .. .. .. .. .. .. .. .. ..
dann das Segment rechts/oben
1
.. .. .. .. .. .. .. .. .. ..
2
. | . | . | . | . | . . . . . | . | . |
3
.. .. .. .. .. .. .. .. .. ..
4
. . . . . . . . . . . . . . . . . . . .
5
.. .. .. .. .. .. .. .. .. ..
mitte/quer
1
.. .. .. .. .. .. .. .. .. ..
2
. . . . . . . . . . . . . . . . . . . .
3
.. .. -- -- -- -- -- .. -- --
4
. . . . . . . . . . . . . . . . . . . .
5
.. .. .. .. .. .. .. .. .. ..
usw. usw.
An jeder Stelle leuchtet immer nur 1 LED!
Aber: Bei allen Stellen leuchtet jeweils dasselbe Segment (wenn für die
darzustellende Zahl benötigt)
Was hast du dadurch gewonnen?
Wieviele Zeitschritte hast du im ersten, im stellenweisen Multiplex
gebraucht, bis du einmal durch die komplette Anzeige durch bist?
Du hast 10 Zeitschritte gebraucht!
Wieviele im 2.ten, im segmentweisen Multiplex?
Da sind es nur 7 (mit dem Dezimalpunkt 8) Zeitschritte.
Stell dir das Multiplexing vor, wie wenn du auf durchsichtige Folien
schreibst, wobei jeder Zeitschritt eine Folie ist. Wenn du die Folien
dann übereinander legst, dann muss die komplette Anzeige in voller
Pracht vor dir sein.
Im Stellenweisen Multiplex hast du die erste Folie
1
-- .. .. .. .. .. .. .. .. ..
2
| | . . . . . . . . . . . . . . . . . .
3
.. .. .. .. .. .. .. .. .. ..
4
| | . . . . . . . . . . . . . . . . . .
5
-- .. .. .. .. .. .. .. .. ..
legst du da die 2.te Folie drüber, dann steht da
1
-- .. .. .. .. .. .. .. .. ..
2
| | . | . . . . . . . . . . . . . . . .
3
.. .. .. .. .. .. .. .. .. ..
4
| | . | . . . . . . . . . . . . . . . .
5
-- .. .. .. .. .. .. .. .. ..
3. Folie drüber
1
-- .. -- .. .. .. .. .. .. ..
2
| | . | . | . . . . . . . . . . . . . .
3
.. .. -- .. .. .. .. .. .. ..
4
| | . | | . . . . . . . . . . . . . . .
5
-- .. -- .. .. .. .. .. .. ..
usw. usw. bis am Ende da steht
1
-- .. -- -- .. -- -- -- -- --
2
| | . | . | . | | | | . | . . | | | | |
3
.. .. -- -- -- -- -- .. -- --
4
| | . | | . . | . | . | | | . | | | . |
5
-- .. -- -- .. -- -- .. -- --
also die Ziffern 0123456789.
Passt soweit. genau das wolltest du ja auch.
Jetzt anders rum. Segmentweises Multiplex.
erste Folie: alle Segmente links/oben
1
.. .. .. .. .. .. .. .. .. ..
2
| . . . . . . . | . | . | . . . | . | .
3
.. .. .. .. .. .. .. .. .. ..
4
. . . . . . . . . . . . . . . . . . . .
5
.. .. .. .. .. .. .. .. .. ..
darüber die Folie mit den Segmenten oben/quer
1
-- .. -- -- .. -- -- -- -- --
2
| . . . . . . . | . | . | . . . | . | .
3
.. .. .. .. .. .. .. .. .. ..
4
. . . . . . . . . . . . . . . . . . . .
5
.. .. .. .. .. .. .. .. .. ..
da drüber dann die Folie rechts/oben
1
-- .. -- -- .. -- -- -- -- --
2
| | . | . | . | | | | . | . . | | | | |
3
.. .. .. .. .. .. .. .. .. ..
4
. . . . . . . . . . . . . . . . . . . .
5
.. .. .. .. .. .. .. .. .. ..
Die Folie mitte/quer
1
-- .. -- -- .. -- -- -- -- --
2
| | . | . | . | | | | . | . . | | | | |
3
.. .. -- -- -- -- -- .. -- --
4
. . . . . . . . . . . . . . . . . . . .
5
.. .. .. .. .. .. .. .. .. ..
links/unten
1
-- .. -- -- .. -- -- -- -- --
2
| | . | . | . | | | | . | . . | | | | |
3
.. .. -- -- -- -- -- .. -- --
4
| . . . | . . . . . . . | . . . | . . .
5
.. .. .. .. .. .. .. .. .. ..
rechts/unten
1
-- .. -- -- .. -- -- -- -- --
2
| | . | . | . | | | | . | . . | | | | |
3
.. .. -- -- -- -- -- .. -- --
4
| | . | | . . | . | . | | | . | | | . |
5
.. .. .. .. .. .. .. .. .. ..
unten/quer
1
-- .. -- -- .. -- -- -- -- --
2
| | . | . | . | | | | . | . . | | | | |
3
.. .. -- -- -- -- -- .. -- --
4
| | . | | . . | . | . | | | . | | | . |
5
-- .. -- -- .. -- -- .. -- --
und das Endergebnis ist wieder dasselbe. Alle Segmente an allen Stellen
haben so aufgeleuchtet, dass die Ziffern 0123456789 sichtbar sind. Aber
an keiner einzigen Stelle haben alle dazu notwendigen Segmente
gleichzeitig aufgeleuchtet. Immer nur hintereinander. Dafür aber die
jeweiligen Segmente an allen Stellen gleichzeitig.
Mike schrieb:> Mawin sagt das Gegenteil:
Mawin hat sich aber auch auf eine andere Schaltung bezogen.
Machst du stellenweisen Multiplex, dann
* leuchten an jeder Stelle 0 bis 7 Segmente auf
* aber es leuchtet immer nur 1 Stelle
-> Die Widerstände müssen auf die Seite der Anzeigen, auf denen
die Segmentleitungen zusammengefasst werden.
In jede Segmentleitung muss ein Widerstand
Machst du segmentweisen Multiplex, dann
* leuchtet an jeder Stelle nur EINE Led auf
* aber es kann an jeder Stelle eine derartige LED geben
-> die Widerstände kommen auf die Seite der Anzeige, auf der
die Stelle ausgewählt wird.
In jede 'Stellenzuleitung' kommt ein Widerstand.
Mike schrieb:> Timer Interrupt routine für display update erfolgt ca. alle 5> Millsekunden.
5 ms sind vieeel zu langsam: bei 10 Digits ergibt dies 20 Hz. Das
flimmert ganz schön... Auch bei segmentweiser Ansteuerung sind die 35 Hz
noch grenzwertig.
Gruß Anja
Hallo Karl Heinz,
Danke dafür, dass du so viel Zeit nimmt alles sehr ausführlich zu
erklären.
jetzt habe ich es verstanden.
Ich habe mich ein paar Gendanken über die Änderungen, die gemacht werden
um müssen es zum Laufen zu bringen.
Programmieren wird kein Problem sein, aber über die Schaltung habe ich
noch einige Sorgen.
Die Schaltung, die ich in die vorherige Post gezeichnet habe kann nicht
so für Segmente weise Multiplex funktionieren.
Du hast recht, pro Segment brauche ich nur einen Widerstand an der
Anode.
(Da Maximal nur einen Segment Pro Stelle leuchten darf, teilen sich die
Ströme Gleichmäßig).
Karl Heinz Buchegger schrieb:> Machst du segmentweisen Multiplex, dann>> * leuchtet an jeder Stelle nur EINE Led auf> * aber es kann an jeder Stelle eine derartige LED geben>> -> die Widerstände kommen auf die Seite der Anzeige, auf der> die Stelle ausgewählt wird.> In jede 'Stellenzuleitung' kommt ein Widerstand.
Jetzt kommt das Problem:
Die Displays sind "Common Anode".
Jedes Segment muss unabhängig von alle anderen an- oder ausgeschaltet
sein.
Ich brauche also 10 Schiebregister und 80 Transistoren!!!
oder
10 Schiebregister und 10 uln2803 !!!
gibt es da keinen besseren Weg?
Vielen Dank und viele Grüße.
Anja schrieb:> 5 ms sind vieeel zu langsam: bei 10 Digits ergibt dies 20 Hz. Das> flimmert ganz schön... Auch bei segmentweiser Ansteuerung sind die 35 Hz> noch grenzwertig.>
Hallo Anja,
es flimmert nicht...aber du hast Recht.
Meine Angabe ist falsch!
Display Update erfolgt nicht alle 5ms sondern jeder 1ms,
das sind 100Hz.
Danke für den Hinweis
Mike schrieb:>> Machst du segmentweisen Multiplex, dann>>>> * leuchtet an jeder Stelle nur EINE Led auf>> * aber es kann an jeder Stelle eine derartige LED geben>>>> -> die Widerstände kommen auf die Seite der Anzeige, auf der>> die Stelle ausgewählt wird.>> In jede 'Stellenzuleitung' kommt ein Widerstand.>>>> Jetzt kommt das Problem:>> Die Displays sind "Common Anode".
Passt
> Jedes Segment muss unabhängig von alle anderen an- oder ausgeschaltet> sein.
Nur innerhalb einer Stelle.
Nicht über viele Stellen gesehen.
> Ich brauche also 10 Schiebregister und 80 Transistoren!!!
Nope.
Du kannst die Segmentleitungen aller Stellen ja zusammenfassen. Es
werden ja sowieso immer dieselben Segmenten bei allen Stellen gemeinsam
erleuchtet (wenn sie erleuchtet werden)
-----+-----+-----+-----+
| | | |
T0 T1 T2 T3
| | | |
+--+ +--+ +--+ +--+
| | | | | | | |
+--+ +--+ +--+ +--+ ...
| | | |
+-+---+-----+-----+
|
|
Schieberegister
Mit dem Schieberegister stellst du (im Prinzip) die Verbindung des
jeweiligen Segments bei allen Stellen nach Masse her. D.h. die jeweilige
LED könnte im Prinzip leuchten, weil sie ja eine Masseverbindung hat.
Ob sie tatsächlich leuchtet oder nicht, wird mit dem jeweiligen
Schalttransistor an der Anode geregelt (T0, T1, T2, ...) der die
jeweilige Anzeige dann auch noch Anodenseitig an die Versorungsspannung
anhängt. Ist der Transistor einer Stelle nicht durchgeschaltet, dann hat
diese Anzeige an der Anode auch keine Spannung und wo keine Spannung
ist, kann auch keine LED leuchten.
D.h. unten (beim Schieberegister) brauchst du nur 8 Pins (7 Segmente +
Dezimalpunkt). Da aber dort die Ströme aller 10 Segmente im
ungünstigsten Fall zusammenkommen, muss der Baustein dort diesen
Gesamtstrom auch aushalten.
Hallo!
@Mike
> Die Displays sind "Common Anode".> Jedes Segment muss unabhängig von alle anderen an- oder ausgeschaltet> sein.> Ich brauche also 10 Schiebregister und 80 Transistoren!!!> oder> 10 Schiebregister und 10 uln2803 !!!
Du hast es immer noch nicht begriffen! Auch im segmentweisen Multiplex
ergeben die LEds (die Segmente der Anzeigen) eine Matrix. Hier 10 mal
sieben (oder acht mit Dp). Also zehn Stellentreiber und acht
Segmenttreiber - niemals 80.
> Ich brauche also 10 Schiebregister und 80 Transistoren!!!> oder> 10 Schiebregister und 10 uln2803 !!!
Frag dich doch einfach mal:
Wenn du sowieo jedes Segment unabhängig von allen anderen
ein/ausschalten kannst .... wozu machst du dann eigentlich noch einen
Multiplex?