mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 12 Stk. 7Seg.-Anzeigen Multiplexen


Autor: Micha (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Moin, ich bin am Basteln eines Winkelmessers. Dieser muss jeweils die 
rechte und linke Neigung  eines Schenkels und dann den Gesamtwinkel 
anzeigen. Dazu brauche ich 12 LED-Anzeigen. Kann ich das von der Hardwar 
so machen ? oder seht Ihr Fehler, Probleme oder andere Lösungsansätze 
???
Grüße Micha

Autor: Micha (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
so müsste man jetzt sehen

Autor: Sven L. (svenl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist soweit kein Problem.

12 7-Segment-Anzeigen sind 84 LEDs, die es zu multiplexen gilt. Zur Zeit 
bastle ich an einem Projekt mit 2x VQC10 wo es insgesamt 280 LEDs sind 
und es funktioniert auch gut.

Du solltest das Zeichnen der Anzeige über einen Timer-Interrupt 
auslösen. In die ISR würde ich nur ganz wenig Code hineinpacken.

Gruß!

Sven

Autor: Sven L. (svenl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, das sind ziemlich viele Drähte und Ports die Du da verschwendest.

Ich würde einen BCD-zu-7-Segment-Decoder für die 7 Segmente nehmen. Die 
12 Stellen würde ich über einen BCD-zu-1-aus-16-Decoder (K155 ID3) 
ansteuern und danach mit ULN2003 oder ULN2803 puffern.

Der Vorteil von den Decodern liegt darin, dass Du nicht nur Ports sparen 
tust, sondern ein Wert auf 4 Portpins direkt ausgegeben zeigt den 
korrekten Wert auf der Stelle an. Ebenso ist durch den zweiten Decoder 
immer nur eine Stelle zu einem Zeitpunkt darstellbar und Du kannst ganz 
bequem mit einem Zahlenwert zwischen 0 und 11 (oder 1 und 12) zwischen 
den Anzeigen umschalten.

Das ganze benötigt dann nur noch 2x 4 Leitungen, also ein ganzer Port + 
2 weitere Leitungen für die Enable-Eingänge der Decoder, falls Du das 
ganze Display oder einzelne Stellen dunkeltasten möchtest.

Sven

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit SCH können die wenigsten was anfangen, machn PDF oder PNG draus.

Ne einfache Lösung wären 2* MAX7219.


Peter

Autor: Sven L. (svenl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beispiel:
// Gebe Wert auf den 4 niederwertigsten Bytes auf PORTB aus
PORTB |= wert & 0x0f;
// Gebe Wert auf den 4 höherwertigsten Bytes auf PORTB aus
PORTB |= wert & 0xf0;

Bereits jetzt brauchst Du 27 IO Leitungen (!), was auch 
programmiertechnisch bestimmt nicht einfacher zu handhaben ist wie nur 
10.

Die 7-Segmente würde ich von allen 12 Anzeigen parallel schalten, über 
den 1-aus-16-Decoder wählst Du Dir die Stelle aus. Den Rest baust Du Dir 
mit einem String im Programm zusammen.

Gruß!

Sven

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Q Sven, ok ich spare Ports, aber brauche 2 ICs mehr... der ATMega kostet 
doch nichts und hat genug Ports ?
ja und wenn ich alle 12 Anzeigen zusammen schalte, flimmert das dann 
nicht ??

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>wenn ich alle 12 Anzeigen zusammen schalte, flimmert das dann nicht ??

Wenn du schnell genug bist, flimmert nichts.

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Q Peter, wenn du mir sagen kannst wie ich aus Eagle-Schaltungen ne Pdf 
mache, mach ich das gerne. ich weiß leider nicht wie das geht

Autor: pdf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
im zweifelsfall freepdf installieren und dann als pdf drucken

Autor: Wegstaben Verbuchsler (wegstabenverbuchsler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
im schlechtesten Falle einen Screenshot machen, dann das Bild mit Irfan 
auf erträgliche Größe und Farbtiefe reduzieren.

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>wenn du mir sagen kannst wie ich aus Eagle-Schaltungen ne Pdf
>mache, mach ich das gerne. ich weiß leider nicht wie das geht

Bei Eagle unter Datei den Menupunkt exportieren anclicken.
Dort Image auswählen. Und dann das PNG Format auswählen.

Gruss Helmi

Autor: Micha (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
danke "pdf"

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alle 12 Anzeigen zusammen muß nicht flimmern, aber man kann Probleme mit 
der Helligkeit kriegen. Zumindestens wird man wohl extra Treiber 
brauchen, und bei einem Hänger im Programm besteht die Gefahr das LEDs 
durchbrennen.
Bei 12 Stellen wäre zu überlegen lieber ein LCD Mudul zu nehmen.

Wie man nach PDF kommt, kann ich nicht sagen, aber nach .PNG geht recht 
einfach:

Unter Eagle auswählen: datei - Exportieren Image und dann mit den 
Default 150 DPI Speichern, z.B. als BMP (wenn PNG nicht direkt geht).
Das BMP-File kann man dann z.B. mit Paint ins PNG Format wandeln. Mit 
einem anderen Programm vielleicht auch nach PDF.

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Q Ulrich und Peter, und wenn ich 2 Max7219 nehme, hätte ich doch keine 
Probleme bei einem Hänger im Programm ?? Oder sehe ich das falsch ?

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die 7-Segmente würde ich von allen 12 Anzeigen parallel schalten,

Man braucht aber den 12-fachen Strom wenn man so multiplext. Das mögen 
nicht alle Anzeigen nach Datenblatt, um nicht zu sagen, ich kenne keine. 
2 x 6 wäre besser, aber das SA10-21G ist gar für 20mA nominal, 140mA 
maximal spezifiziert, kann also nur 7 fach gemuliplext werden
Ausserdem hat es die scheussliche Eigenart, 2 LEDs in Reihe zu 
enthalten, so dass diese Scahltung mit nur 5V gar nicht hinkommt.
Da bracuht man sich über die gnadenlos überbelasteten 
ATMega-Segment-Ausgänge gar keine Gedanken mehr zu machen.

Gibt es eigentlich einen Grund, warum Multiplexanzeigen prinzipiell erst 
mal falsch gebaut werden? Warum glauben die Leute, dass sich wundersam 
die Energie vermehrt und aus dem Strom für 1 Display mal locker der 
Strom für 6 wird?

Also: Das Kingbricht-Display mit ULN2003 braucht deutlich über 8V als 
Betriebsspannung !

Der ATMega braucht auch bei den Segmenten stromverstärkende Bauteile, 
z.B. Transistoren !

Schaut doch einfach mal ins Datenblatt, bevor ihr was zusammenbaut, 
leider weiss ich aus dem Schaltplan die Farbe der Displays nicht.

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Q MaWin
die Anzeigen lt. Eagle sind nur Symbolisch. Ich hätte wohl noch dazu 
sagen müssen das ich VQB28 nehmen will. 
http://jirky.webz.cz/zobraz_katalog_n.php?id=481
Das sind welche aus dem DDR RFT-Programm. Die habe ich mal bei Ebay 
gekauft. Die höhere Betriebsspannung die ich dann nehmen sollte,  ist 
doch aber dem ULN Bockwurst? Oder ?

Autor: Sven L. (svenl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der ULN enthält doch Darlington-Transistoren, oder täusche ich mich da?

Der Strom müsste schon erhöht werden, jedoch kommt es auch darauf an wie 
lange eine Anzeige leuchtet. Wenn er einen BCD-zu-7-Segement-Decoder 
nimmt, leuchten ja alle angesteuerten Segmente gleichzeitig und er muss 
nur über 12 Anzeigen multiplexen.

Nehmen wir mal 100 Hz Refresh-Frequenz für die Anzeige, dass heißt, dass 
die Ansteuerfrequenz für die gemeinsamen Anoden bei 12 * 100 Hz = 1,2 
kHz liegt. Bei 1,2 kHz könnte er jede Stelle maximal 0,83 ms lang 
eingeschaltet lassen. - Auf den VQC10 lasse ich die Zeilen 100 µs (!) 
bei ausreichender Helligkeit leuchten.

Du musst ein wenig experimentieren und ein gutes Verhältnis zwischen 
Helligkeit, Strom, Verlustleistung und Flimmerfreiheit finden.

Das Flimmerfrei hinzubekommen ist nicht das Problem.

Sven

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> die Anzeigen lt. Eagle sind nur Symbolisch.

Ach Leute, ihr macht's immer so schwer, richtig zu antworten.

Die VQB28 hat einen Nennstrom von 10mA und Maximalstrom von 150mA, 
könnte also 1:12 gemultiplext werden, für deine 1:6 reichts. Ob 
allerdings die Helligkeit von diesem uralten Zeugs irgendwie der Hit 
ist, mag ich bezweifeln. Zudem ist die Spannung nicht definiert, schon 
bei Nennstrom benötigt sie zwischen 2 und 2.6V, sie kann also leicht bei 
3.5V liegen. Da der ULN2003 schon bei 420mA auch 1.8V brauchen könnte, 
blieben 5V - 1.8V - 3.5V = nichts übrig. Knappe Sache, aber nichts 
genaues weiss man nicht.

60mA für die Segmente kommen aber aus einem ATMega-Ausgang nicht raus. 
Du brauchst so oder so Verstärker für die Segmente. Entweder 3 Ausgangs 
Pins parallel (dann wird aber der VCC-Anschluss offiziell überlastet), 
oder einen PNP Transistor pro Pin, z.B. ein BC328 mit 
Basis-Vorwiderstand.

Bei Multiplex 1:12 würde der ULN2003 nicht ausreichen (840mA).

Ich würde an deiner Stelle bei Multiplex 1:6 bleiben, die Displays mit 
18mA Durchschnittsstrom fahren, statt dem ULN ordentliche Transistoren 
nehmen, wie in Beitrag "LED 8x8 Matrix Schaltplan mit ULN2803 BC337"

Autor: Micha (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
so, habe das mal mit dem Max7219 gezeichnet. Sollte doch so gehen ? 
Oder?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Micha schrieb:
> so, habe das mal mit dem Max7219 gezeichnet. Sollte doch so gehen ?
> Oder?

Besser wäre eine gleichmäßige Belastung, also 2 * 6 Digits.

Es reicht der LOAD-Anschluß getrennt je IC.
Die DIN an MOSI, die CLK an SCK.

Wenn das wirklich 4,4V Anzeigen sind, könnts knapp werden bei 5V.


Peter

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein die Anzeigen sind andere. Es sind alte DDR- RFT Anzeigen.
Der 8er Pack sind VQE 23 und der 4er sind VQB27
http://jirky.webz.cz/zobraz_katalog_n.php?id=489
http://jirky.webz.cz/zobraz_katalog_n.php?id=480
da ich bei einer 2*6 Teilung bedenken wegen der Helligkeit der einzelnen 
Segmente hatte, habe ich das so geteilt.

die Anzeigen habe ich mal für ein Butterbrot bei eBay abgegriffen.
sollte doch mit denen gehen ?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Micha schrieb:
> da ich bei einer 2*6 Teilung bedenken wegen der Helligkeit der einzelnen
> Segmente hatte, habe ich das so geteilt.

Dann ist Deine Schaltung richtig. Verschiedene Typen sollten nicht am 
gleichen MAX hängen.

Was steht denn für ein Buchstabe hinter der Bezeichnung (A..F)?
Dieser gibt die Helligkeit an.


Peter

Autor: Micha (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke Peter, das wäre dann so wie Bild 3 ?

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VQE 23 F
VQB 27 E

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.