mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Multiplexer für 10 7-Segmentanz.


Autor: ferdl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Welchen Multiplexer braucht man für 10 7-Segment Anzeigen?

Danke für eure Hilfe

Autor: Menno (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was willst denn machen? Du kannst einen 7-Segment Treiber und einen BCD
zu Dezimal Decoder nehmen. Dann brauchst du nur noch nen 8-BIT breiten
Steuerbus. Alternativ gibts auch noch diverse serielle
Ansteuer-Schaltkreise, die z.T. aber sehr kostenintensiv sein können.

MfG

Autor: ferdl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C515 mit 10 7-Segmentanzeigen koppeln
mfg

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntest auf einem Port die 7-segment Signale ausgeben und mit
weiteren 10 Ausgabeleitungen die jeweils aktuelle Stelle multiplexen.
Ggf. muß noch ein Leitungstreiber (ULN-Serie) dazwischen, da ich nicht
weiß, was der Prozessor strommäßig hergibt.

MfG Paul

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich denke ferdl hat den richtigen Ansatz. BCD to 7 Segment Dekoder an 4
Bit ran und die anderen an einen 4 to 15 Dekoder und gut ist.
Mux macht MCU ich denke ne ISR wäre nagebracht.
Die Stellen in den RAM schreiben und in der ISR einfach 1:1 ausgeben.
In jeder ISR eine Stelle weiter.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
10 x 74HC595?

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Oliver,
lange Weile oder baust Du gern TTL Gräber ????
Solche Sachen hat man zu Z80 Zeiten schon mit BCD Dekoder und
Stellendekoder gebaut 3 zu 8 oder 4zu 15 oder für ne Uhr auch die
Stellen direkt.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier wurde nach Möglichkeiten gefragt.
Ist simpel anzusteuern, braucht wenig Ressourcen, ist billig.
Also wohl eine Möglichkeit, SSA anzusteuern und kein Grund, mir
Langeweile zu unterstellen.

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nu nimms mal nicht ganz so ernst :-/
Sicher ist das ne Möglichkeit....Aufwand ???
Dann wohl ehr MAX7219-7221 oder SAA1064

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@stephan

"Solche Sachen hat man zu Z80 Zeiten schon mit BCD Dekoder und
Stellendekoder gebaut 3 zu 8 oder 4zu 15"


Ja früher, da hatten wir auch nen Kaiser. Aber heutzutage sind
Schieberegister die einfachere Lösung, besonders von der benötigten
Pinzahl her.

So ein uralt "4zu 15" (74154) ist ja ein riesen Flatschen. Die
Stellen müssen ja eh nacheinander angesteuert werden also einfach 2 *
74HC164 hintereinander und gut is.
Für 10 Digits bietet sich aber auch der Johnson-Zähler 74HC4017 an.

Und die Daten braucht man auch nicht extern dekodieren, einfach in ein
74HC595 reinschieben und gut is.

Das sind dann insgesamt nur 3-4 Pins statt 8 für die alte Variante.
Die Zeiten ändern sich eben.


Die statische Variante mit 10 SRGs hat aber auch ihre Vorzüge, nämlich
ein einfacheres Layout.
Man macht sich nen Block aus einem SRG, 8 Widerständen und dem Digit
und dann 9* copy+paste.


Peter

Autor: Sebastian Heyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde nen mega8 (der ist zwar ott aber hat genug I/O) nehmen. der
kann laut datasheet insgesamt 300mA, und per port 40mA. Da kannst du
dir die treiber sparen, wenn du es nicht allzuhell brauchst. Der
controller hat dann genug resourcen um scrolling in alle richtungen und
evtl auch buschstaben anzuzeigen. die daten gibst du ihm per rs232....

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es gibt wohl viele Wege nach Rohm.....

Nur sehne ich mich nicht gerade nach Bitschieberein.
Einen Port zu beschreiben geht eben schneller als 8 Bit auszutakten.
Wenn man die RS232 außen vor läßt.

Jo die Stellen mit nem 164er  ist ne gute Idee.
Trotzdem würde ich nen Decoder nehmen.
Den IC braucht man ja eh, ob Register oder sonstwas.

Autor: Egon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"... und per port 40mA. Da kannst du dir die treiber sparen,... "

Das würde bei 10 Stellen bedeuten: 40mA/10 = 4mA pro Digit und 4mA/8 =
0,5mA pro Segment. Ein Wenig wenig, nicht wahr ?

Bei 13mm LED-Anzeigen kann man die Schieberegister (SMD) auf der
Lötseite unterhalb der Anzeigen platzieren; bei CMOS4094 und 5V braucht
man keine strombegrenzenden Widerstände ! Das Layout wird erleichert,
wenn man die Pins so verbindet, wie sie liegen, und anschließend das
Bitmuster für Ziffern und Zeichen entsprechend anpaßt. Die Helligkeit
kann man am gemeinsamen OE-Anschluß per PWM einstellen.

Autor: Sebastian Heyn (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
SORRY mein fehler
40mA PER I/O pin!

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ICM7218  2x kombinieren, nach angaben im datasheet

ICM7211 plus ICM7226

MFG Martin

Autor: ferdl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lol
Es gibt wirklich viele Wege nach Rom

Danke schonmal für eure Mühe!

Kann mir jetzt nochmal jemand sagen, was das unkomplizierteste ist?
(es kann ruhig ein paar Euro mehr kosten)

mfg

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das wird im wesentlichen vom Gesamtprogramm und Deinen
Programmierkenntnissen abhängen. Bei Schieberegistern wirst Du viele
Bitrotationen machen müssen. Für I2C braucht Du auch ne Routine.
Alles was seriell läuft braucht wenige Leitungen dafür aber etwas mehr
Rechenzeit. Im Gegensatz dazu brauchst Du bei parallelen Ausgaben
weniger Rechenzeit aber mehr Portpins. Suche Dir die Datenblätter der
genannten IC´s raus und überlege mit welchen Du das Problem wie lösen
könntest. Es gibt nich "den" Weg.... leider...

Autor: ferdl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würde mein Vorhaben wesentlich vereinfacht, wenn ich nur 8
7segmentanzeigen ansteuern würde?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für 8 Anzeigen reicht ein MAX7219 aus, darüber mußt Du noch einen
nehmen.

Das Schieben ist so aufwendig nicht. Außerdem haben viele MCs ja schon
ein Hardware-SPI.


Peter

Autor: ferdl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aaaahhhh

Ich habe dummerweise übersehen, dass ich eigentlich 10 mal 5
Siebensegmente ansteuern will.

also 10 Anzeigen für 10 5stellige Zahlen

Autor: Philipp Burch (nicht einglogt) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pro Zahl ein kleiner µC, Ansteuerung der Digits nach einem oben
genannten Weg und Ansteuerung der einzelnen Controller über SPI. Ist
wohl die einfachste Variante für sowas.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch kein Problem.

Wenn se alle zusammen sind reichen 7 * MAX7219 (8 * 7 = 56 Stellen).


Peter

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...man sollte schon wissen was man will...bevor man fragt...

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.