Forum: Mikrocontroller und Digitale Elektronik Bitte um Hilfe: Schaltung 7-Segment (Multiplexing +Treiber)


von Jhoropopo (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Ich möchte Euch um Rat und Hilfe bei meinem ersten uC-Projekt bitten. 
Für eine Funkuhr brauche ich ein 6-stelliges 7-Segment-Display 
anzusteuern. Ich möchte auf die bewährte Idee von Multiplexing 
aufsetzen, wie bei 
http://www.mikrocontroller.net/articles/DCF77-Funkwecker_mit_AVR.

Software ist kein Thema bei mir, bei Hardware habe ich ein paar mehr 
Schwierigkeiten. Meine Grundvorstellung habe ich in der angehängten 
Schaltung dargestellt (sorry für die Handzeichnung, Eagle muss ich noch 
lernen). Kurze Erklärung:

* Damit die Grafik einfacher ist, zeige ich nur 2 aus 6 Ziffern. Ich
  will jedes Segment einzeln ansteuern können, daher ist ein CMOS 4511
  als Treiber ausgeschlossen. Aber ein Treiber muss da sein, da ich noch
  andere Sachen im Projekt vorhabe, die auch Strom brauchen werden.

* Es handelt sich um 7-Segment-Displays mit gemeinsamen Kathode;
  die Vorwiderstände schalte ich also zwischen Treiber und Anoden.

* Fürs Multiplexen benutze ich pnp-Transistoren in der Basisschaltung
  (Basiswiderstand = 10k). Wenn bei enable_X 5V liegen, dann soll der
  Transistor Strom erlauben, sonst sperren.  Mit enable_1 bis _6 mache
  ich also das Multiplexen.


Trotz aufwändiger Forum-Recherche bleiben einige Fragen noch offen:

* Was für Treiber würde hier passen? Ich habe vor, bis zu 30-40 mA pro
  Segment  zu benutzen. Ich habe die Vermutung, dass ein Darlington-
  Array ULN2803 passend sein könnte, bin mir aber nicht sicher.

* Passt die Konfiguration der Transistoren? Darüber hinaus überlege ich
  mir, nicht einzelne Transistoren zu benutzen sondern ein Transistor-
  Array (IC). Ich kenne aber keinen solchen Bauteil.

Ich wäre für Hilfe und Anmerkungen seeehr dankbar :)
Viele Grüsse
Jhoro

von rayelec (Gast)


Lesenswert?

Hallo! Das ist alles im Prinzip i.O so. Falls du Anoden treiben willst, 
brauchst du nicht den ULN280x, sondern den UDN2981 (oder TD62783 von 
Toshiba). Hättest Du ein Common-Anode-Display, könntest du den ULN2803 
nehmen, dann müsten aber die Digit-Treiber PNP-Transistoren sein.

Gruss
rayelec

von Matthias L. (Gast)


Lesenswert?

Sieht gut aus. Das funktioniert.
Was für einen Treiber wilslt du da nehmen?

Wenn der Impulsstrom 20mA nicht überschreitet, kannst du den Treiber 
auch weglassen. zB falls du low-current 7-Seg nimmst. (HDN1075O)

Du kannst allerdings als Spaltentreiber auch pnp Transistoren in 
Kollektorschaltung nehmen, damit sparst du dir die Vorwiderstände für 
diese Transistoren...

von Jhoropopo (Gast)


Lesenswert?

@rayelec

Ich treibe definitiv die Anoden, also schaue ich mir im Detail das 
Datenblatt von UDN2981


@Matthias

> Was für einen Treiber wilslt du da nehmen?

Das war eigentlich meine Frage gewesen. Aber rayelec meint, UDN2981 
sollte passen.

> Wenn der Impulsstrom 20mA nicht überschreitet, kannst du den Treiber
> auch weglassen. zB falls du low-current 7-Seg nimmst. (HDN1075O)

Dadurch dass ich 6 Displays multiplexen muss, gehe ich davon aus, dass 
sie mit 20mA nicht hell genug sein werden. Also ich werde mehr als 20mA 
brauchen. Aber auch wenn die 20mA i.O. wären, würde das 140mA 
aufaddieren. Ich will aber mehrere Sachen ansteuern, nicht nur die, die 
in der Schaltung gezeigt wurden. Also ist der Treiber notwendig.

> Du kannst allerdings als Spaltentreiber auch pnp Transistoren in
> Kollektorschaltung nehmen, damit sparst du dir die Vorwiderstände für
> diese Transistoren...

Danke für den Hinweis! Geht es auch mit einer IC? Dann brauche ich keine 
6 Bauteile sondern nur einen!


Danke für Eure extrem schnelle Antworten!
Jhoro

von Matthias L. (Gast)


Lesenswert?

>Danke für den Hinweis! Geht es auch mit einer IC? Dann brauche ich keine
>6 Bauteile sondern nur einen!

Ja, nimm drei Portpins und gehe auf einen 74HC138. Der hat acht 
ausgänge. (also max acht Spalten). Jeder Ausgang ist LOW-Aktiv und 
treibt DIREKT (ohne R_vor) die Basis eines pnp-Transistor, dessen 
Kollektor! auf GND und Emitter! an den Kathodenanschlüssen liegt.
Das funktioniert immer bestens..

Aso. falls du die sechs Transistoren weglassen willst. Wird schwer. Evtl 
einen zweiten Treiber a la UDN..
Aber ich würde eher die Transistoren einsetzen. BC857, was will man 
mehr...

von Jhoropopo (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe nochmals die Schaltung gezeichnet, so wie ich jetzt die Sache 
verstehe. Ist sie so richtig?

Meine einzige Frage: BC857 ist ein SMD-Transistor. Kann ich stattdessen 
einen BC 636/640 nehmen? Laut 
http://www.mikrocontroller.net/articles/Standardbauelemente hält so ein 
Transistor bis zu 500 mA, was bei mir ausreichen sollte.

Zwischendurch habe ich übrigens entdeckt, dass hier 
http://www.mikrocontroller.net/mc-project/Pages/Projekte/Funkuhr/Funkuhr.pdf 
die Bauteile ULN2803 und UDN2981 benutzt werden. Sieht so aus, dass die 
LEDs mit ULN2803 getrieben werden und dann die Transistoren mit UDN2981. 
Ich kann aber nicht erkennen, ob die 7-Segment-Displays gemeinsame 
Kathode oder gemeinsame Anode haben. Aber meine ideale Lösung würde so 
ähnlich aussehen: die Displays + Widerstände + 2 ICs (eine zum Treiber, 
andere fürs Multiplexen)

Viele Grüsse
Jhoro

von Holger K. (krulli) Benutzerseite


Lesenswert?

Jhoropopo wrote:
> Sieht so aus, dass die
> LEDs mit ULN2803 getrieben werden und dann die Transistoren mit UDN2981.
> Ich kann aber nicht erkennen, ob die 7-Segment-Displays gemeinsame
> Kathode oder gemeinsame Anode haben.
Es steht sogar dran, dass es gemeinsame Anoden sind... (CA)

von Jhoropopo (Gast)


Lesenswert?

> Es steht sogar dran, dass es gemeinsame Anoden sind... (CA)

Ups, als Laie habe ich das übersehen...

Heisst das also bei mir, dass ich die Anoden mit UDN2981 treiben kann 
und die Transistoren mit ULN2803 schalten kann?

Danke!!

von Matthias L. (Gast)


Lesenswert?

Die Schaltung sieht doch gut aus. Klar kannst du auch andere 
Transistoren nehmen, wenn sie von ihren Daten passen.

von Jhoropopo (Gast)


Lesenswert?

Könnte ich also statt einzelnen Transistoren einen ULN2803-Bauteil 
verwenden? Das wäre aus meiner Sicht einfacher zu schalten, auch wenn 
ein bisschen teurer.

Jhoro

von Matthias L. (Gast)


Lesenswert?

Klar geht das auch.

von Andreas K. (a-k)


Lesenswert?

Obacht mit den Spannungen, nachrechnen empfohlen. Der UDN kommt an den 
Ausgängen nicht annähernd an die Versorgungsspannung ran (=> Datasheet) 
und an der Kathode geht bei dieser Schaltung noch Ube der Transistoren 
weg, so dass es bei 5V für die LEDs knapp werden könnte.

PS: ULN statt BC an der Kathode macht's da auch nicht besser, im 
Gegenteil, geht noch mehr weg.

von Josef Warta (Gast)


Lesenswert?

Hallo,
es geht doch noch einfacher mit einem IC beispielsweise von AMS:
http://www.austriamicrosystems.com/03products/products_detail/AS1107/description_AS1107.htm
AS1107 kann direkt eine 8 stellige 7-segment Anzeige ansteuern. Es 
muessen nur noch die Daten ueber SPI in den IC getaktet werden und man 
spart sich das gesamte Multiplexen und Decodern.

Und kostenlose Muster kann man direkt ueber die Website anfordern.

von Jhoropopo (Gast)


Lesenswert?

> Obacht mit den Spannungen, nachrechnen empfohlen. Der UDN kommt an den
> Ausgängen nicht annähernd an die Versorgungsspannung ran (=> Datasheet)
> und an der Kathode geht bei dieser Schaltung noch Ube der Transistoren
> weg, so dass es bei 5V für die LEDs knapp werden könnte.

> PS: ULN statt BC an der Kathode macht's da auch nicht besser, im
> Gegenteil, geht noch mehr weg.

So wie ich das sehe, brauche ich dann aber nur kleinere Vorwiiderstände, 
oder? Die Erfahrung hatte ich schon mit dem CMOS 4511 gemacht, der kann 
nur 4,4 V oder so an den Ausgang schalten. Das reicht aber für meine 
LEDs vom 7-Segment-Display

Jhoro

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.