Forum: Mikrocontroller und Digitale Elektronik Zehn 7Segmente im Multiplexbetrieb : Hilfe !


von Mike (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von MaWin (Gast)


Lesenswert?

> 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

von Mike (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Mike (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

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.

von Anja (Gast)


Lesenswert?

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

von Mike (Gast)


Lesenswert?

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.

von Mike (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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.

von Route_66 (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

> 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?

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.