Forum: Mikrocontroller und Digitale Elektronik 7 Segment Anzeige an Atmega8


von Eike (Gast)


Lesenswert?

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?

von Peter D. (peda)


Lesenswert?

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

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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 ;-)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Peter war schneller ;-)

von Eike (Gast)


Lesenswert?

Danke erstmal für die Vorschläge.

Ich möchte/muss es aber mittels Multiplexer und Bcd decoder machen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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

von Sebastian K. (basti)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Eike (Gast)


Angehängte Dateien:

Lesenswert?

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.)

von Sebastian Heyn (Gast)


Lesenswert?

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

von unsichtbarer WM-Rahul (Gast)


Lesenswert?

@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.

von Michael U. (Gast)


Lesenswert?

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

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.