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


von Sven H. (sven91)


Angehängte Dateien:

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

von MaWin (Gast)


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.

von Sven H. (sven91)


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

von Bit (Gast)


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ß

von Ulrich (Gast)


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.

von Thomas E. (thomase)


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.

von Sven H. (sven91)


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

von Peter D. (peda)


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

von Jens (Gast)


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

von Jens (Gast)


Lesenswert?

...am besten du nimmst dafür auch noch low current 7-Segment anzeigen.
Gibts bei ebay sehr günstig.

Suchwort "HDSP-F101"...

JJ

von Bit (Gast)


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-Tutorial:_7-Segment-Anzeige#Mehrere_7-Segment_Anzeigen_.28Multiplexen.29

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ß

von JoachimB (Gast)


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

von Sven H. (sven91)


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

von Bit (Gast)


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ß

von Sven H. (sven91)


Lesenswert?

Jep das habe ich verstanden und eig. mit Imax gemeint.^^

Gruß

von Jens (Gast)


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

von Sven H. (sven91)


Lesenswert?

Sorry ich konnt erst jetzt wieder schreiben...

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

Gruß

Sven

von Johannes G. (gutenberg)


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.

von B.A. (Gast)


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.

von Jens (Gast)


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

von MaWin (Gast)


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.

von Sven H. (sven91)


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

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.