www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 7 Segmentanzeige nur mit Port multiplexen (ohne Transistor)


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Sven H. (sven91)
Datum:
Angehängte Dateien:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo Zusammen,

aus vielen Gründen(Portables Gerät->Platz usw...) würde ich gerne 4 
Siebensegmentanzeigen nur mit den Ausgängen des AtMegas und einem 
Widerstand multiplexen.

Ich weiß das die Hellichkeit je nach Menge der angeschalteten LEDs 
abnimmt(bei Test mit einer Anzeige ist aber nur ein kleiner Unterschied 
aufgefallen).


Fragen:

Ist die Schaltung so OK ?
Funktioniert das Überhaupt wenn ich A = 1 und A1 = 0 schalte/hat das 
keine Auswirkungen auf die "Gesundheit" des Atmegas?


mit freundlichen Grüßen

Sven

Autor: MaWin (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
> aus vielen Gründen(Portables Gerät->Platz usw...) würde ich gerne 4
> Siebensegmentanzeigen nur mit den Ausgängen des AtMegas und einem
> Widerstand multiplexen.

Ein Widerstand ist Quatsch, denn der Strom ist dann nicht durch
den Widerstand definiert, sondern durch die Laune des ATMega
und der kann durchaus heute den doppelten Strom durchlassen wie
gestern, z.B. weil es wärmer ist oder die Akkus neu sind.

Bei einem batteriebetriebenen Gerät ist so eine Unsicherheit,
die unnötigerweise den Hauptstromverbraucher mal den doppelten
Strom gönnt, Unsinn.

Wenn du Platz für die Anzeige hast, hast du auch Platz für
7 Widerstände, es gibt schliesslich SMD.

Da im normalen Multiplex bei 5mA pro Segment bis zu 35mA
pro Anzeige gliessen, der ATMegae aber nur 20mA pro Ausgang
will, ist es möglich, 2 Ausgänge parallel zu schalten.

Also braucht man 15 Pins für 4 gemultiplexte 7-Segment Anzeigen.

Was deine Zeichnung bedeuten soll, weiss ich nicht.

Autor: Sven H. (sven91)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Danke für deine Antwort also:

Leider hab ich nicht wirklich die nötigen Geräte, SMD zu löten.
Die Platine wo nachher alles draufgelötet wird ist sehr klein und wird 
vorraussichtlich kein Platz für 8 Widerstände haben, weil es ein sehr 
kleines tragbares Gehäuse ist.

Zur Zeichnung:
Ich hatte schon eine 7 Segmentanzeige wie auf dem Bild angeschlossen nur 
mit der roten leitung auf +.
Jetzt wollte ich wissen, ob ich diese auch an einen Port vom Atmega 
anschließen kann, ohne das was passiert.(die Buchstaben sind in dem Bild 
nur als "beliebige Platzhalter")

Den Widerstand habe ich verwendet, um Strom zu sparen (in der jetzigen 
Schaltung braucht die Anzeige bei guter Helligkeit nur ca. 2,5 mA)

MFG

Sven

Autor: Bit (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Wenn du nachgemessen / berechnet hast, dass nur 5mA fließen, dann sollte 
das mit einem Atmega Ausgang gut möglich sein. Ich habe es genauso 
gemacht wie du, obwohl es eigentlich nicht empfehlenswert ist, denn:

Wenn du nur einen Widerstand nimmst, und den an die gemeinsame Anode in 
dem Fall anschließt, musst du diesen so dimensionieren, dass dir deine 
Segemente nicht durchbrennen, wenn nur eine einzige leuchtet (oder 2 
(Ziffer 1)).

Begrenzt du den Strom also auf 5mA, so teilt sich der Strom auf die 
Segmente auf (Parallelschaltung)!

Bei mir ist das zwar auch zu sehen, dass die 8 dunkler ist, als etwa die 
1, aber für meine Anwendung ist das nicht von Bedeutung.

Wenn du mit diesem Nachteil deiner Schaltung klar kommst, spricht im 
Prinzip nichts gegen deine "Sparschaltung".

Gruß

Autor: Ulrich (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Der Plan ist irgendwie falsch. Zum Multiplexen sind die Segmente jeweils 
parallel und die 4 Anoden oder kathoden (je nach Typ der Anzeigen) 
werden extra Gesteuert.  Wirklich gut geht es auch nur mit einem 
Widerstand je Segmentleitung - so groß ist der Unterschied zwischen 7 
bzw. 8 Widerständen für die Segmente und 4 Widerständen für die Stellen 
auch nicht.
Wenn die Helligkeit reicht, kann man das so machen.

Widerstände in SMD lassen sich wirklich leicht löten, auch für einen 
Anfänger, und zur Not auch noch mit einem 80 W Brateisen. Die 
Widerstände in Größe 1206 oder 0805 lassen sich gut mit einer Pinzette 
halten und die Vertragen auch viel Hitze, sind also auch bei längerem 
Löten kaum kaputt zu kriegen. Als Kurzanleitung:
1. Einen kleinen Zinntropfen auf einen Pad
2. Den Widerstand mit der Pinzette halte und an den Zinntropfen verlöten
3. ggf. die Position korrigieren bis es paßt
4. etwas warten zu abkühlen
5. den 2. Pad verlöten - hier nicht zu lange löten, damit die 1. 
Verbindung nicht schmilzt, alternativ den Widerstand gegen die Platine 
drücken.

Einfach mal probieren - danach hat man keine Lust mehr Drähte zu biegen 
und Löcher zu bohren.

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Sven H. schrieb:
> Ist die Schaltung so OK ?
Totaler Pfusch.

Warte bis MaWin das gesehen hat. Dann gibt das richtig was zwischen die 
Hörner.

mfg.

Autor: Sven H. (sven91)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
@Bit:
Vielen Dank genau so eine Antwort habe ich gebraucht - hat alle Fragen 
beantwortet.

@Ulrich
Danke für deine SMD Lötanleitung.
Werde ich auf jeden Fall mal ausprobieren.
Sorry wegen dem Plan - ich wollte erst mal fragen ob das grundsätzlich 
geht - später werden natürlich A1 und B1;  A2 und B2 zusammengefasst ;).

@Thomas Eckmann
Ich weiß, dass das zu 100% Pfusch ist - aber genau den brauche ich.
Die Schaltung sollte wie bei Bit beschrieben eine Spar- oder 
Minimallösung für ein kleines Projekt sein, das keinen Schönheitspreis 
gewinnen soll!!!

Danke für alle Antworten

MFG

Sven

Autor: Peter Dannegger (peda)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Sven H. schrieb:
> (bei Test mit einer Anzeige ist aber nur ein kleiner Unterschied
> aufgefallen).

Das Auge paßt sich an. Wenn Du nur ein Digit hast, fällt das daher kaum 
auf.

Wenn Du aber 2 Digits direkt nebeneinander hältst und die Zahl "18" 
anzeigst, fällt das extrem auf.

Und wenn Du multiplexen willst, sind das 7 Widerstände insgesamt, Du 
sparst mit der falschen Schaltung also nur 3 Stück ein.


Peter

Autor: Jens (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi,

wenn du die Anzeigen so anschließt, dann hast du für jedes Segment einen 
Pin am Prozessor verbraucht?

Dann habe ich eine Lösung die kein Pfusch bedeutet.

Lege die Gemeinsame Anode oder Kathode auf dauer + oder - über einen 
Widerstand.

Dann "multiplexe" die Segmente. Immer nur ein Segment nach dem anderen 
einschalten. So ist zu einem Zeitpunkt immer nur ein Segment an. Du 
kannst dann den Widerstand entsprechend der Multilex Regeln auslegen und 
hast eine gleichbleibende Helligkeit mit nur einem Widerstand pro Digit 
da innerhalb eines Digits immer nur ein Segment zu Zeitpunkt t 
eingeschaltet ist. Das Muxingverhältnis ist 1 zu 7 oder 1 zu 8 jenachdem 
ob du auch noch den Punkt dazu nimmst...

JJ

Autor: Jens (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
...am besten du nimmst dafür auch noch low current 7-Segment anzeigen.
Gibts bei ebay sehr günstig.

Suchwort "HDSP-F101"...

JJ

Autor: Bit (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Wenn du die Anzeigen multiplexen willst, hat Ulrich natürlich recht. Das 
habe ich erst überlesen.

Das mutliplexen hat ja gerade den Vorteil, dass Ausgänge gespart werden. 
Du brauchst die Segmentleitungen am µC nur einmal, denn diese werden 
dann zu den anderen Anzeigen durchgeschliffen, hängen also parallel am 
Port. Außerdem werden noch für jede Anzeige eine Steuerleitung 
verwendet. In deinem Fall wäre das dann die gemeinsame Anode der Anzeige 
mit dem Widerstand.

Guck dir mal diesen Artikel dazu an: 
http://www.mikrocontroller.net/articles/AVR-Tutori...

Wenn du unbedingt sparen willst, mach das. Achte aber immer auf den 
Strom ! Wenn dir die Anzeige dann doch zu dunkel sein sollte, rechne 
erst nach bevor du dir nen neuen Widerstand raussuchst, ob der Atmega8 
Ausgang den Strom auch liefern kann (max. 20mA / Pin) ;)

Gruß

Autor: JoachimB (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Das direkte Multiplexen der Anzeige ohne einen Transistor für die 
Dezimalstelle und ohne Vorwiderständen in den Segmentleitungen ist 
durchaus denkbar. Das Produkt gibt es fertig zu kaufen:
http://www.sparkfun.com/products/9766
Schaltung, Anleitung, etc. stehen zum Download zur Verfügung.
Gruß
Joachim

Autor: Sven H. (sven91)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Danke für eure Antworten :)

also ok ihr habt mich überedet...
Ich werde alle Vorwiderstände nehmen und diese so auswählen, das Imax 
bei einem Ausgang <20mA ist.

Die Low -current Anzeigen sind auch interessant...

MFG

Sven

Autor: Bit (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Du musst aber trotzdem aufpassen, denn wenn du den Strom der Segmente 
auf z.B. jeweils 10mA beschränkst (ich weiß nicht was für Anzeigen du da 
hast) und alle Segmente sind an (8), dann muss über die gemeinsame Anode 
70mA fließen, was ohne Transistor mit einem Atmega-Ausgang nicht zu 
realisieren ist.

Gruß

Autor: Sven H. (sven91)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Jep das habe ich verstanden und eig. mit Imax gemeint.^^

Gruß

Autor: Jens (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
...mit den low current Displays bekommst du 9 Anzeigen mit 9 
Widerständen ohne weitere Bauteile an 9 Pins.

...jetzt passen die Widerstände also doch mit rein?

Wieviel Pins hast du denn überhaupt zur verfügung?

Gruß,
JJ

Autor: Sven H. (sven91)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Sorry ich konnt erst jetzt wieder schreiben...

Pins hab ich erst mal genügend so etwa 12 noch.

Gruß

Sven

Autor: Johannes G. (gutenberg)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Sven H. schrieb:
> Leider hab ich nicht wirklich die nötigen Geräte, SMD zu löten.

Du hast keine Pinzette?
Das ist natürlich ein Problem. Sowas ist seeeeehr schwer zu beschaffen. 
Ich kann dir leider auch nicht helfen.

Autor: B.A. (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Sven H. schrieb im Beitrag #265089auf7:
> 4
> Siebensegmentanzeigen nur mit den Ausgängen des AtMegas und einem
> Widerstand multiplexen

Du brauchst 8 Widerstände an 8 Pins für die 8 Segmente (wenn du keine 
ständigen Helligkeitsschwankungen sehen möchtest) und für 4 Stück davon 
brauchst du noch 4 weitere Leitungen, macht also genau 12.

Du kannst dir SMD Widerstände der Bauform 0603 nehmen, die kannst du 
auch noch anlöten wenn du sie auf eine Seite (rechts links, also nicht 
die Lötseite ...) kippst. Die passen dann recht genau in eine 0.3 oder 
0.4mm Leiterbahn.

So verbrauchen die 8 Widerstände nur eine Fläche von 9x2mm, da du sie 
vorn und hinten noch anlöten musst sind es dann 9x3 oder eher 9x4mm.

Bei einer 4 Stelligen 7-Segment Anzeige (Grün, LTC-4620HG => 88:88 ) 
habe ich 8 Stück 1500 Ohm 0603 Widerstände genommen und damit leuchten 
die LEDs recht kräftig bei etwas über 2mA, der Strom der maximal von den 
"Multiplex-Pins" (bei dir A,B,C,D genannt) abgeleitet werden muss liegt 
bei ca. 17mA und liegt somit gut innerhalb der Spezifikation des 
Portpins.

Autor: Jens (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi,

>>Pins hab ich erst mal genügend so etwa 12 noch.

klasse, dann also vom Prinzip 8 für Segmente (a-g und dp) und 4 für die 
gemeinsamen Anschlüsse.

>>Du brauchst 8 Widerstände an 8 Pins...

das ist nicht zwingend der Fall,

Klassiches Muxing:

1)erster Durchlauf

Gemeinsamen 3 ausschalten
Segmentinfo (a-g/dp) für Stelle 0 anlegen
Gemeinsamen 0 einschalten

2)zweiter Durchlauf

Gemeinsamen 0 ausschalten
Segmentinfo (a-g/dp) für Stelle 1 anlegen
Gemeinsamen 1 einschalten

...bis 4) dann wieder bei 1) beginnen...

Es entsteht ein Muxing mit einem Tastverhältnis 1:4, dafür werden 8 
Widersände an den Segmenten benötigt...

Anders gedacht, mit Vorwiderständen an den Gemeinsamen:

1)erster Durchlauf

Segment dp ausschalten
Gemeinsame von den Digits einschalten in denen a an sein soll
Segment a einschalten

2)zweiter Durchlauf

Segment a ausschalten
Gemeinsame von den Digits einschalten in denen b an sein soll
Segment b einschalten

...bis 8) dann wieder bei 1) beginnen...

Es entsteht ein Muxing mit einem Tastverhältnis 1:8, dafür werden 4 
Widersände an den Gemeinsamen benötigt...

Der Maximalstrom pro pin wird verringert, da immer nur maximal 4 
Segmente einen Pin belasten und man spart Bauteile.

Es entstehen Helligkeitseinbussen die größer sind als bei einem 1:4 
Muxing, gleichzeitig kann man den Vorwiderstand jedoch halbieren...

Bei den LowCurrents ist es so überhaupt kein Problem, da sie eh wenig 
Strom benötigen.

JJ

Autor: MaWin (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
> Das Produkt gibt es fertig zu kaufen:

Es wird halt auch Schrott verkauft.

Man muß aber beim Einkauf nicht gezielt den Schrott auch noch suchen.

Autor: Sven H. (sven91)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
So da bin ich nochmal und wollte nur sagen das es perfekt 
funktioniert!!!
Ich habs bis jetzt nur auf dem Steckboard aufgebaut und später muss ich 
halt probieren alles in ein Gehäuse reinzupacken.

Der Gesamtstrom bei einem Pin liegt bei 8mA (und das nur 1/4 mal in der 
sekunde). Die Helligkeit reicht bei meinem Projekt locker aus.

@Jens: Das ist auch eine gute Idee...
Wird beim nächsten Projekt getestet ;)

Vielen Dank für euer Hilfe :)

MFG

Sven

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net