www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 7 Segment Anzeige an Atmega8


Autor: Eike (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter war schneller ;-)

Autor: Eike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal für die Vorschläge.

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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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....

Autor: Sebastian K. (basti)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

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

Bewertung
0 lesenswert
nicht 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.)

Autor: Sebastian Heyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: unsichtbarer WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.