ULN2803 o.ä. mit Latch gesucht

Gast #278834
Lesenswert?

Hallo, allerseits!

Ich habe eine Schaltung, bei der ca. 100 LEDs unabhängig voneinander
von einem AVR angesteuert werden sollen. Es könnte dabei theoretisch
auch der Fall eintreten, daß alle gleichzeitig leuchten müssen.

Hintergrund des ganzen Projektes:
Ich möchte bei mir an die Wand eine Seekarte hängen, bei
der jede Leuchttonne durch eine passende LED markiert ist.
Diese LEDs sollen aber nicht nur statisch leuchten, sondern
auch die entsprechende Leuchtfeuerkennung abgeben. Insgesamt
geht es wohl um ca. 100 LEDs. Programmiert werden soll das ganze auf
einem oder mehreren AVRs. Gedimmt werden muß nicht, lediglich
ein- und ausgeschaltet.

Ich hatte überlegt, mit LS273-Bausteinen zu arbeiten; nur leider
übersteigt der maximale Strom von 8 LEDs die Grenzwerte vom LS273.

Nun meine Frage, um den externen Bauteilaufwand möglichst gering zu
halten: gibt es ein ULN2803 oder vergleichbar, bei dem bereits eine
Latch (oder "Register")-Funktion eingebaut ist? Ich suche
quasi eine Kombination aus einem LS273 und einem ULN2803 in einem
Baustein zusammen. Oder alternativ ein dem LS273 vergleichbarer
Baustein, der 8 LEDs gleichzeitig mit je 20mA treiben kann, ohne in die
Luft zu fliegen.

Hat jemand eine Idee dazu?

Vielen Dank im Voraus!
Greetz
Kai Markus
Gast #278837
Lesenswert?

du solltest schon dimmen. Sieht nicht besonders schön aus, wenn die
Lichter schlagartig an und aus gehen.
Mit nem Tiny2313 habe ich das mal für einen gemacht, es gibt mehrere
Teilkarten. Pro Platine werden werden 24 LEDs angesteuert (Matrix 3x8),
8x sink direkt vom Tiny2313, 3xsource über pnp-Transistoren.
Gast #278838
Lesenswert?

Nimm Low Current Leds und Schieberegister zB. HCT4094. Dieses kann
Leds direkt treiben. Vorwiderstand ca 1K.
Mit den Schieberegistern brauchst du nur 3 Leitungen. Du kannst
später auch leicht erweitern. Würde die Platinen segmentieren (zB.
jede treibt 16 - 32 Leds.
Ansonsten fällt mir noch eine Matrix ein. Zb. 16 x 7 (2 ULN , 7 Trans).
Da kannst du auch dimmen.


SG Lumpi
Gast #278840
Lesenswert?

Zunächst erst einmal vielen Dank für Eure Antworten.
Ich werde dann wohl den Vorschlag aufgreifen und die
LEDs wirklich dimmen. Wird natürlich bei ca. 100 LEDs etwas
umfangreich, das ganze...

@crazy horse:
hattest Du dann bei Deinen Teilkarten die Dimmvorgänge per Soft-PWM
implementiert?

Schaltungstechnischer Vorteil einer Matrix wäre natürlich: sobald etwas
mit Dimmvorgängen im Spiel ist, hat sich das mit einem Latch so oder so
erledigt, oder sehe ich das falsch?!? Ich werde auf jeden Fall mal den
Gedanken mit einer Matrix weiterverfolgen...

Bei Low-current-LEDs bin ich mir nicht sicher, ob die die nötige
Leuchtstärke erreichen. Und (wenn ich den Reichelt-Katalog richtig
durchgelesen habe) es dürfte nicht so einfach sein, weiße
Low-Current-LEDs 3mm zu bekommen?!?

Greetz
KMT
Gast #278841
Lesenswert?

Hab mich gerade bei Maxim noch mal etwas schlauer gemacht. Insbesondere
die Treiber MAX6962 und MAX6967 sehen für meine Zwecke recht
interessant aus... mit dem simplen SPI-Interface, das die bereits drin
haben, würde man sich die zeitkritische Implementation von Software-PWM
ja glatt sparen :-)

Greetz
KMT
Gast #278843
Lesenswert?

Vielen Dank für den Tipp, Werner!
Ich habe gerade mal das Datenblatt vom MAX7219 überflogen.
Der scheint zwar primär dafür gemacht zu sein, 7-Segment-Anzeigen
zu treiben, aber wenn ich das richtig verstehen, kann man jedes Segment
auch einzeln ansteuern?!?

Greetz
Kai Markus
Gast #278844
Lesenswert?

Hallo,
es ist schon ein Unterschied, ob man eine Multiplex-Ansteuerung der
Verbraucher (LEDs) hat oder ob die statisch leuchten (müssen).
Mit dem MAX7219 hat man ein Mux-Ansteuerung, auch wenn das vom Bauteil
selbst so gemacht wird und vom uP aus "statisch" aussieht.

Wirklich statische Ansteuerungen muß man aufwendiger "selbst" bauen,
bestehend beispielsweise aus Schieberegisterketten ( 8 x 74HC595 für 64
Ausgänge, ggf. zusätzlich ULN Treiber, oder gleich die bereits
vorgeschlagenen TPIC6B595). Hierzu braucht man vom uP nur drei
Ausgangspins, evtl. noch einen Eingang zur Selbsttest-Rücklesefunktion.

Lösungen mit (8 mal bei 64 LEDs) 74HC259 bzw. TPIC6B259 sind auch
möglich ; zusätzlich Decoder 74HC138 erforderlich; dann Ansteuerung
über "Adresse" bestehend aus 6 Bit + Datenbit + "enable" = 8 Bit
Ausgabeport (z.B.).  Verdrahtungsaufwand höher, Software-Ansteuerung
dafür äußerst simpel.
Noch mehr Aufwand macht die Lösung über LS273 bzw. HC273 , HC574 etc.

Für 100 LEDs braucht man entsprechend mehr Bauteile.
Und sowieso jede Menge Widerstände.
Das Bauteil "259" gibt's auch als "AC", also 74AC259
("MC74AC259" von www.onsemi.com , evtl. schwierig zu beschaffen.
Macht mehr Strom als das HC, preiswerter als TPIC).

Klaus
Gast #278845
Lesenswert?

Im Prinzip hätte ich gegen eine Multiplex-Ansteuerung nichts
einzuwenden. Der 7219 bietet aber leider nicht die Möglichkeit,
einzelne LEDs in ihrer Helligkeit zu regeln. Da scheint mir der
MAX6966/6967 eher geeignet zu sein.

@Klaus:
wenn ich dich richtig verstehe, bietet Deine Lösung aber nicht die
Möglichkeit, einzelne LEDs in ihrer Helligkeit zu regeln?!? Zumindest
dürfte eine Software-PWM über ein solches serielles Interface
softwaretechnisch nicht gerade trivial zu realisieren sein, oder
übersehe ich da was?!?

Greetz
KMT
Gast #278846
Lesenswert?

Ja, korrekt erkannt.
"Dimmen" geht nur, wenn man das immer fortlaufend aktualisiert, in
einemr "unsichtbaren" Rasterfrequenz ( >= 100 Hz  / komplette
Ausgabesequenz ).
Das erfordert dann geringen SW-Aufwand, jedoch auch zeitmäßige
Belastung des uP. Steuerung durch Timer-INT o.ä. vorsehen.
Müsste man mal konkret durchrechnen, wenn max. Geschwindigkeit auf SPI
bekannt ist und wieviel Dimmstufen genötigt werden etc.
Leider habe ich keine Zeit nachzuforschen, ob's nicht schon Bauteile
gibt die auch jeden Ausgang mit PWM dimmen können.
Klaus
Gast #278847
Lesenswert?

Ich würde ein paar SAA1064 nehmen. Ein SAA1064 kann 32 LEDs als 2*16
Matrix ansteuern. Der LED-Strom ist in 8 Stufen bis max. 21mA pro LED
digital einstellbar. Vorwiderstände werden nicht benötigt. Durch das
1:1 Multiplexing bleiben die LEDs schön hell. Der SAA wird über I2C
angesteuert und ist viel billiger und viel besser verfügbar als die
Maxim-Teile. Man kann bis zu vier SAA1064 an einem I2C-Bus betreiben.
Gast #278848
Lesenswert?

@Horst-Otto:
Wenn ich das Datenblatt vom SAA1064 richtig interpretiere, ist der
LED-Strom aber nur gesamt für alle Segmente gleichzeitig einstellbar,
und nicht für jedes Segment (also nicht nur jedes Digit, sondern jeder
Ausgang separat). Ich lese aus dem Datenblatt heraus, daß
der Strom der gesteuerten Stromquellen über die Control-Bits C4-6
festgelegt wird. Von diesen Control-Bits scheint es aber nur 3 zu
geben; insofern wird das vermutlich für alle LEDs gleichzeitig sein.
Das scheint aber bei vielen Bausteinen das Problem zu sein: vielfach
sind die einfach dafür ausgelegt, eine 7-Segment-Anzeige zu treiben, wo
man eine einstellbare Helligkeit maximal pro Digit benötigt, und nicht
für jede LED einzeln...

Besser geeignet wäre vermutlich ein Chip für die RGB-Ansteuerung von
Großdisplays. Da müßte ja dann auch eigentlich eine Helligkeitsregelung
pro "Pixel" machbar sein...

Greetz
KMT
Gast #278849
Lesenswert?

Der MAX6966 ist zwar nett, aber wo gibts den zu kaufen? Ich denke aber,
für diesen Fall, wo nur einzelne LEDs ein- und ausgeschaltet werden,
dürfte es nicht allzu schwierig sein eine Software-PWM zu schreiben.
Oder Du verzichtest halt auf das Faden und schaltest die LEDs einfach
'hart' ein und aus.
Gast #278850
Lesenswert?

Hallo, Horst-Otto!

Ich nehme mal an, daß man den MAX6966 bei Maxim selbst bestellen kann,
die haben ja ein "buy online"-System.
Ich befürchte, daß ein einzelner AVR mit der Rechenarbeit für ein
Software-PWM doch überfordert sein könnte; immerhin geht es bei dieser
Seekarte um ca. 100 LEDs, die alle zu unterschiedlichen Zeiten (aber
teilweise eben auch zur gleichen Zeit) gedimmt werden müssen.
Was glaube ich am ehesten meine Zwecke trifft, ist der MAX6964 mit 17
Ausgängen, die alle voneinander unabhängig in 16 Stufen (das dürfte zum
Dimmen von LEDs reichen) gedimmt werden können.
Wo man den Chip dann herbekommt, muß man schauen; ich bin da aber ganz
guter Hoffnung...

Greetz
KMT
Gast #278852
Lesenswert?

Würde die Lösung von Lumpi wählen (2 ULN2803 und 7 Transistoren -
Matrix). Mit LC Leds und 100 Ohm Vorwiderständen leuchten sie auch
schön. Ein Mega8515 reicht leicht. Multiplexfrequenz ca 100 Hz.
Würde in der Software für jede Led einen Helligkeitswert im RAM ablegen
(ZB 10 Helligkeits - Werte).
Das Multiplexen würde ich in einem Timer-Interrupt erledigen.
In einer netten for -Schleife würde ich alle 100 Led-Helligkeitswerte
PWM-like bearbeiten/ vergleichen. Helligkeitswert erreicht - Led-Bit
freischalten. Led geht im Timerinterrupt ein/aus. Wo liegt das Problem
?
Vergesst die Spezial-ICs.

SG Baldwin

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren