Ich würde gerne 4 7 Segment Anzeigen an einen Atmega8 anschließen. Ich
habe mir schon mal den Max7219 angeschaut, aber der ist mir ein wenig zu
teuer und ich möchte die Schaltung bauen, um sie zu verstehen.
Jetzt habe ich an Bcd Decoder und einen Multiplexer gedacht. Weiß
jemand, was für einen Multiplexer mann da nehmen könnte und wie der
angeschlossen werden muss?
Alles was Du brauchst, sind die 8 Segmentvorwiderstände und 4
npn-Transistoren als Digittreiber.
Dekodieren kostet etwa 10 Words im Flash, wäre also Verschwendung, dafür
nen extra Dekoder-IC zu nehmen, zumal die meistens viel weniger
Treiberleistung haben, als der AVR.
Peter
Multiplexer ist gut, Schieberegister ist noch besser. Damit steuerst Du
die Transistoren für die Anoden oder Kathoden der 4 Stellen; wenn Du
genügen Portpins hast, kannst Du Dir auch das Schieberegister sparen.
Die Segmente der einzelnen Stellen schließt Du direkt über
Strombegrenzungswiderstände an einen Port vom ATMega, oder über einen
Treiber, wie den ULN2003 (7 Treiber) oder ULN2803 (8 Treiber), falls die
Segmente mehr als 20mA benötigen. Die Dekodierung der Zeichen kannst Du
mittels einer Tabelle im ATMega selber machen, dann kannst Du auch noch
Sonderzeichen verschlüsseln, was Dir bei einem externen BCD-Decoder
nicht möglich ist. Wenn Du nur sehr wenig Portpins zur Verfügung hast,
könntest Du auch eine weiteres Schieberegister nehmen, in welches Du
nacheinander Deine Segmentmuster schiebst. Nun hast Du ein paar
Möglichkeiten, suche Dir eine aus ;-)
Dann nimm einen Multiplexer und einen BCD-Dekoder und schalte diese
gemäß ihrer Wahrheitstabelle mit ihren Steuerleitungen an den
Controller. Die Beschaltung der LEDs an den Dekoder und Multiplexer
erfolgt, wie oben gesagt. Bauelemente sparst Du dadurch aber auf keinen
Fall, aber wenn Du sagst, Du mußt....
Hi!
Wie wär's mit einem C 4511 (CMOS BCD-to-7 Segment Latch/Decoder/Driver)?
Hat alles was man braucht...einen BCD-Decoder mit Treiber bis 25mA und
integriertem Latch.
Das Stück kostet bei CSD z.B. nur 22ct, wenn's nicht auf's Stromsparen
ankommt kann man davon 4 Stück verwenden (der Baustein verfügt über
einen Enable-Eingang). Oder eben nur einen Baustein und dann mit dem
ATMega die Anzeigen Multiplexen.
Eike wrote:
> Ich möchte/muss es aber mittels Multiplexer und Bcd decoder machen.
Das wird aber sehr schwer.
Ein Multiplexer kann nur aus mehreren Eingängen auswählen, wüßte nicht,
wie dammit ne Anzeige funktionieren soll.
Bestenfalls nen Demultiplexer könnte man nehmen, um die Digits
auszuwählen.
Da die Auswahl aber nicht zufällig, sondern immer der Reihe nach
erfolgt, ist natürlich ein Schieberegister viel besser und einfacher.
Peter
Ein 4051 kann 8 aus 1 oder 1 aus 8, den Com legt man auf +, an den
Auswahl-Ein/Ausgängen erscheint dann das +, je nach angelegtem Code.
Daran kann man npn Transen mit der Basis über Vorwiderstand anschalten
und schon hat man die 4 Digits angesteuert. Eine Möglichkeit.
Ich würde gerne mal wissen, ob diese Schaltung so funktionieren würde.
Ich glaube, das wäre ungefähr das was Peter meinet, nur mit nem Bcd
Decoder.
Ist meine erster am Pc erstellter Schaltplan, ist also wahrscheinlich,
dass meherere Fehler drin sind. (die Pin belegung stimmt nicht und die
Ausgänge an den Anzeigen sind an dp angeschlossen. Es gab da grade sonst
keinen Anschluss.)
ich habe ein einseituges platinenlayout, bei dem für jede 7 segment
anzeige ein eigene 595 schieberegister verwendet wird. ansteuerung per
spi.
die 595 sind smd, und sitzen hinter den 7 segment anzeigen, das board
ist nur gering größer als die segmente
@Eike:
Wenn der BCD-Decoder so herum funktioniert, sollte es gehen.
Manche von den Dingern können nämlich die "untere Seite" besser
schalten.
Dazu gibt es dann noch spezielle Beschaltungen.
Hallo,
wenn, wie Du schreibst, dp der "Ausgang" ist:
eine Siebensegmentanzeige hat keinen Ausgang, die hat entweder eine
gemeinsame Anode und die Segmente sind die Katoden oder umgekehrt.
Wenn wir annahemn, Du hast Anzeigen mit gemeinsamer Katode, dann wäre
die Digit-Ansteuerung mit npn gegen GND richtig, allerdings fehlen den
Transistoren die Basiswiderstände!
Mit H-Pegel am ATMega liegen dann 5V direkt an der Basis-Emitter-Diode
und der Transistor oder der ATMega beenden schlagartig ihr Leben.
In die Basisleitung also noch jeweils ca. 470 Ohm rein.
Weiter: zum Typ des BCD-Decoders schreibst Du nichts, aber da ja
gemeinsame Katode angenommen wird, muß er H-aktive Ausgänge haben und
bei H den Segmentstron treiben können. Sowas dürfte recht selten zu
finden sein.
Üblicher wäre genau umgekehrt: Decoder treibt L-aktiv Anzeigen mit
gemeinsamer Anode. Die Anoden bekommen H-side-Treiber mit
pnp-Transistoren, E an +5V, K an Anode Digit und Basis wie gehabt über
470 Ohm an ATMega. Klappt solange, wie die Anzeigen mit 5V klarkommen.
Außerdem muß der Decoder über Stromquellenausgänge für die Anzeigen
verfügen, sonst müssen in die Segmentleitungen noch passende
Vorwiderstände für die Strombegrenzung des Anzeigen-Segmente rein.
Gruß aus Berlin
Michael