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
Hallo Kai, wenn du Low Current LEDs verwendest, sollte ein normales Latch wie z.B. 74XX573 genügen. Gruß Kai
wie wäre es mit serieller Ansteuerung (SPI)? Dann würden die TPIC6B595 von TI passen. Es gibt auch noch Matrix-Treiber (von Maxim z.B.), mit denen kannst Du bis zu 64 LEDs steuern und sparst Dir sogar die Vorwiderstände. Bin aber nicht so sicher, ob eine Matrix für Deine Anwendung praktikabel ist ... Gruß, Stefan
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.
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
Was hälst Du vom 74HC259? Der hat acht Ausgänge, die einzeln adressiert werden und den Zustand behalten. Mit low current LEDs (siehe oben) und Vorwiderstand sollte das gut funktionieren. Gruß Joachim
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
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
MAX7219 oder 7221 ist zwar recht teuer, kann aber 64 LED in einer 8x8 Matrix multiplex ansteuern. Hat auch SPI und ausserdem 16 Helligkeitsstufen. Man muss nur die Daten reinschreiben, alles andere wickelt der Baustein selbst ab. Dieter
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
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
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
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
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.
@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
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.
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
Lass dann mal hören wie die Bestellung gelaufen ist, ich denke das dürfte hier einige interessieren.
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
Hi Falls du immer noch Treiber mit Latch suchst sieh mal beim Hersteller "Allegro" nach. Die haben eine grosse Auswahl an Treibern (mit Latch und auch seriell). Mfg HG
Eine ander Variante währe: 1. Low Current LED's verwenden 2. PCF8574 verwenden. Die PCF8574 kannst du an über I2C ansteuern. Mit Jedem PCF8574 kannst Du 8 Leds ansteuern.
Hallo, allerseits! Ich habe mir jetzt erst einmal die MAX6964 und bei Texas die TLC5923 bestellt. Ich denke mal, das dürfte die einfachste Variante sein... Greetz KMT
@Furzer: kannst du deine Worte mit Fakten hinterlegen ? Gruß Hagen
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.