Widerstandsnetzwerk für 7Segementanzeige

Gast #672526
Lesenswert?

Hallo,

mochte gern mehrere 7Segmentanzeigen mit jeweils einem Schieberegister 
ansteuern (74HC595).
Jetzt suche ich ein passendes Widerstandsnetzwerk mit 8 einzelnen 
Widerständen (nicht mit einem gemeinsamen Bezugspunkt).
Hab bei R. leider nur 3er und 4er Netzwerke in dieser Ausführung 
gefunden. Beim großem C gab es so was gar nicht.
Gibt es die überhaupt? oder muss ich zwei 4er nehmen?
Oder hat jemand noch eine, viel bessere, Idee? ;)

Gruß
Hans
#672539
Lesenswert?

Mach das lieber per Multiplexing! Den Murks mit Schieberegistern habe 
ich auch schon begangen, endete in Kabelsalat und nem Haufen 
Platzverschwendung durch die Schieberegister, mal abgesehen von der 
Lötarbeit.

Aber hier brauchst du doch keine Widerstandsnetzwerke ;-) du wirst doch 
noch 8 widerständchen pro Anzeige verlöten können! Wenn dus per 
multiplexing machst brauchst du sogar nur einmalig 8 verlöten.

mfg PoWl
Gast #672844
Lesenswert?

@powl
Ja, hatte ich auch erst überlegt. Aber ich würde gern PWM nutzen um die 
Helligkeit der Anzeige zu steuern. Das funktioniert dann mit Multiplexen 
ja nicht mehr.

@Alexander
Danke, die BCN16 sehen gut aus. Passt auch gut mit der Verlustleistung, 
noch die hälfte Reserve. Und die kann ich ja auch auf die Rückseite der 
Platine packen, dann sieht man die gar nicht :)
#672892
Lesenswert?

Bourns stellt DIL16 Widerstands-Netzwerke her, auch als SO16. Zu kaufen 
z.B: bei Schuricht oder Farnell oder...

Aber wenn es wirklich preiswert und SMD sein soll, kommen 4-er 
Chip-Netzwerke in Frage.
Wenn das Ganze maschinell bestückt wird, sind einzelne Widerstände 
geeigneter, da billiger und besser erhältlich.

> Ja, hatte ich auch erst überlegt. Aber ich würde gern PWM nutzen um die
> Helligkeit der Anzeige zu steuern. Das funktioniert dann mit Multiplexen
> ja nicht mehr.

Weshalb soll das nicht funktionieren?
#672908
Lesenswert?

> Aber ich würde gern PWM nutzen um die Helligkeit
> der Anzeige zu steuern. Das funktioniert dann mit
> Multiplexen ja nicht mehr.

Klar funktioniert das mit Multiplexing auch.
Du schaltest ja beim Multiplexing die einzelnen
Anzeigestellen zeitlich nacheinander einzeln ein.
Wenn es dunkler werden soll, schaltest du die
Anzeigen eben schon vor Ablauf der Zeit aus und
läßt sie aus bis die nächste Stelle dran ist. Je
zeitiger du ausschaltest, um so dunkler die Anzeige.

Gruß Reinhard
Gast #672920
Lesenswert?

Die DIL 16 variante gibt es leider bei R oder C nicht.

@severino
Nein, ist privat, wird auch keine Serie ;)
Wegen Multiplex: Habe 11 Anzeigen, wenn ich die multiplexe dachte ich 
mir das ich Unregelmäßigkeiten in der Helligkeit bekomme durch das 
Umschalten.
Es findet sich auch ein Hinweis im PWM Tutorial (ganz unten, leider ohne 
Angabe von Gründen).
Gast #672935
Lesenswert?

@reirawb
ach so, Du meinst also PWM nicht extra realisieren (für die Versorgung) 
und die Segmente start zu schalten, wie ich das gedacht hatte, sondern 
PWM und Multiplex verbinden.
Also eine feste Frequenz in der die Anzeigen durchgeschaltet werden, und 
innerhalb dieser Zeitspanne dann die Einschaltdauer ändern.
Hab ich das richtig verstanden? Klingt ja eigentlich ganz gut.

Nur welche Frequenz nehme ich da?
Für PWM nimmt man ja immer was um ein paar kHz oder?
Die bräuchte ich fürs Multiplexen dann ja auch, richtig?

Gruß
Hans
#672963
Lesenswert?

@Hans
Genau so. Sozusagen PWM in Software und mit dem
Multiplexing verwurschtelt :-)

Zu den Zeiten:
Du willst 11 Anzeigen multiplexen, da würde ich die
Multiplexfrequenz so bei 1000 Hz ansiedeln, also
1 Millisekunde Zykluszeit. Das ergibt eine Wiederholrate
von ca. 90Hz, ist immer noch flimmerfrei.

Nun kommt es darauf an, wozu die PWM dient.
Willst du die Anzeige langsam ein- und ausblenden,
dann müßtest du schon mit einer 8 Bit PWM rangehen.
Da kommst du auf eine Zykluszeit von ca. 4 µSekunden,
das wird schon arg eng mit der Ptrogrammierung.
Prozessor möglichst hoch takten und Assembler verwenden.

Soll die Anzeigenhelligkeit nur an die Umgebung
angepasst werden, dann würde ich eine 4 Bit PWM
vorschlagen. Zykluszeit ist dann 62,5 µSekunden.
Da hast du 16 Helligkeitsstufen, die sollten dafür
reichen.

Alles dazwischen ist natürlich auch möglich.

Gruß Reinhard
Gast #672989
Lesenswert?

Wieso so kompliziert?

Man nehme einen Timer im Fast PWM Modus, dessen Frequenz ausreichend 
hoch ist, um die Anzeige flimmerfrei darzustellen.

Im Overflow Interrupt macht man dann das Multiplexing und im Compare 
Interrupt schaltet man die Anzeige aus. Und schon hat man eine 
gemultiplexte Anzeige mit regelbarer Helligkeit.
Gast #673019
Lesenswert?

@Fritz
Auch eine Idee. Aber wenn ich das richtig sehe würde mann dann im PWM 
Takt multiplexen, oder? Ist das nicht etwas hoch?

Hatte gedacht evt. die Hardware PWM zu nehmen und die Signalleitungen 
mit Logik-Bausteinen mit dem PWM Pin UND zu verknüpfen. Und ein 
vielfaches der PWM Frequenz würde ich dann als multiplex Frequenz 
nutzen. Dann hab ich das Timing-Problem in der Software nicht. Ist das 
Sinnvoll oder gibt es da was besseres?

Gruß
Hans
Gast #673074
Lesenswert?

Eine PWM Frequenz muss nicht zwingend x kHz haben. Wenn du z.B. 5 
Anzeigen mit 100 Hz multiplexen willst, reicht hier eine PWM Frequenz 
von 500 Hz auch aus. Allerdings kann man LED Anzeigen auch problemlos 
schneller takten, ist aber in dem Fall nicht notwendig.

Die Lösung die du da vorhast würd ich nicht nehmen, ist nur ein 
unnötiger Hardwareaufwand und mir fällt da jetzt auch kein Vorteil ein.
Gast #673098
Lesenswert?

@Fritz
mmm, dann hab ich Dein vorheriges Posting nicht verstanden. Wenn PWM mit 
500Hz läuft und ich multiplex mit dem Overflow Interrupt mache, 
multiplexe ich doch auch mit 500Hz, oder hab ich da was falsch 
verstanden?
Gast #673117
Lesenswert?

Ok, da hab ich mich etwas unverständlich ausgedrückt. Mit der 
Multiplexfrequenz meinte ich eigentlich die Bildwiderholfrequenz.

Prinzipiell meinte ich das gleiche wie Reinhard Richter oben schon 
geschrieben hat. Eigentlich funktioniert das wie normales Multiplexing, 
nur wird der Timer eben im Fast PWM Modus genutzt, wodurch man mit dem 
Compare Interrupt die Anzeige bereits vorzeitig ausschalten kann.
#673334
Lesenswert?

@Fritz
Ist noch besser als meine Variante.
Ich hatte mal sowas aufgebaut mit 4 Anzeigestellen und 4 Bit PWM
ganz in Software mittels Timerinterrupt.
4 Anzeigen * 100 Hz = 2,5 mSek. / 16 (4Bit-PWM) = 156 µSek. Zykluszeit
Da habe ich für jeden Zyklus einen Timerinterrupt ausgelöst und
den Rest per Software geregelt. Hat prima funktioniert, ist aber
aus heutiger Sicht sehr umständlich. Da ist deine Lösung besser
weil weniger zeitkritisch.

Gruß Reinhard
#673369
Lesenswert?

du könntest auch per hardware-pwm einen transistor ansteuern über den 
die anodenspannungen der anzeigen laufen. somit kann sich deine software 
aufs multiplexing konzentrieren während die hardware-pwm die 
helligkeitsregulierung übernimmt. sollte dein prozessorchen allerdings 
nicht soviel zu tun haben ist die softwarelösung immernoch die 
zweckmäßigste.
Gast #673374
Lesenswert?

@Fritz
Ok, wenn ich das richtig sehe brauch ich den Timer gar nicht in den PWM 
Mode setzen. Einfach den Normal Mode, bei einem Compare
Interrupt schalte ich alle 8 Pins aus. Bei einem Overflow Interrupt 
wechsel ich zum nächstem Segment und schalte die Portpins entsprechend 
der Ziffer ein.
Soweit richtig?
(Firma: Promaxx.net) #673427
Lesenswert?

Die BCN-Netzwerke von Reichelt lötet man nicht wirklich gerne per Hand. 
Das sind super-kleine Netzwerke. Wir löten von Hand auch nur Fehler 
rein!

Die kosten zwar nix (2 Ct) aber bdeuten sehr aufwendige Handarbeit - 
besser ist da jedes SIL !

In der maschinellen Produktion ist er aber nicht zu schlagen ... außer 
bei der Verlustleistung. Da wundert mich der Einsatz bei LEDs schon !
Gast #673855
Lesenswert?

Das müsste auch mitm Normal Mode funktionieren, der Fast PWM Mode hat 
nur den Vorteil, dass das OCRx Register nicht sofort, sondern erst beim 
nächsten Durchlauf aktualisiert wird. Dadurch ist sichergestellt, dass 
der Compare Interrupt bei einer Änderung des Registers (von einen 
kleinen auf eine größeren Wert) nicht zweimal hintereinander aufgerufen 
wird. (Bezieht sich jetzt alles auf nur die AVRs)
Gast #674076
Lesenswert?

@Fritz
Ah, super. Danke. Daran hätte ich bestimmt nicht gedacht.

Hab da jetzt mal ein Schaltplan gemacht. Musste das aktivieren der 
einzelnen Segmente per Schieberegister umsetzen da die Portpins sonst 
nicht reichen.

Kann das so funktionieren? Oder ist da noch grobe Fehler drin. Hab mit 
Eagle noch nicht so die Erfahrung.
Ein Problem das mir grad aufgefallen ist, ich bekommen das alles gar 
nicht auf eine Europlatine. Gibt es da eine Möglichkeit das auf zwei 
aufzuteilen?
Ist aber wohl eher eine Frage fürs Eagle Forum...

Gruß
Hans
#677053
Lesenswert?

> Hab da jetzt mal ein Schaltplan gemacht. Musste das aktivieren
> der einzelnen Segmente per Schieberegister umsetzen da die
> Portpins sonst nicht reichen.

Da hast du 4 Pins benutzt, da kannst du alternativ auch zwei 74HC(T)138
kaskadieren, oder einen 74HC(T)154 einsetzen. Der Vorteil ist, das du
die anzuzeigende Stelle direkt binär ausgeben kannst und nicht erst eine
Schieberoutine programmieren mußt.

Ich vermisse übrigens in deinem Plan noch ein paar Segmentwiderstände,
aber die hast du sicher vorgesehen :-)

Gruß Reinhard

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren