LEDs über große Entfernungen ansteuern

7

Ich möchte 52 LEDs ( Datenblatt ) um ein großes aufblasbares Zelt fahren. Die LEDs haben eine Durchlassspannung von 3,3 V bei maximal 20 mA.

Ich denke an die Verwendung des 16-Kanal-LED-Controllers NXP SAA1064 I²C ( Datenblatt ), der genau das zu sein scheint, wonach ich suche, da ich einen als Master und einen weiteren 3 als Slave fahren kann, was mir insgesamt 64 ergibt Kanäle. All dies wird von einem Arduino gesteuert.


Update: Nach dem Lesen des Controller-Datenblattes scheint es nicht möglich zu sein, die Ausgänge einzeln zu steuern - es wird erwartet, dass ein 7-Seg angesteuert wird. Ist das wahr? Wenn ja, gibt es nette Alternativen?


Was ich nicht so sicher bin, ist, wie ich mit der Distanz umgehen soll. Das Zelt ist etwa 25 Fuß lang und 10 Fuß hoch, und die LEDs sind um die Kuppel herum angebracht. Die Steuerplatine läuft an einer Ecke, was bedeutet, dass die am weitesten entfernte LED etwa 30 Fuß vom Gerät entfernt ist. Die Kabel zu den LEDs müssen relativ dünn sein, da das aufblasbare Zelt nicht viel Gewicht tragen kann. Ich kann sehen, dass Widerstand ein Problem ist.

So wie ich es mir vorstelle, werde ich wahrscheinlich ~ 100Ω an den längeren Kabeln haben, was diese LEDs so gut wie unsichtbar macht. Ich habe darüber nachgedacht, die Steuerungen für Schieberegister und Transistoren näher an den LEDs zu platzieren, aber das bedeutet mehr Kabel, mehr Gewicht, mehr Komplexität und mehr Kosten.

Gibt es eine gute Lösung dafür?

Polynom
quelle
In Bezug auf die Steuerung: Selbst wenn sie für 7-Seg-Displays ausgelegt ist, können Sie immer noch 7 einzelne LEDs an die Steuerung anschließen, um eine "benutzerdefinierte Anzeige" zu bilden. Dem Controller ist es wahrscheinlich egal, ob die LEDs in einem Display angeordnet sind oder nicht. Wenn Sie also eine "3" anzeigen, wird keine 3 angezeigt, sondern 4 LEDs leuchten auf.
PetPaulsen
1
Was ist mit der Erstellung von LED-Clustern, die mit den anderen Clustern kommunizieren, um sie für bestimmte Dinge zu synchronisieren? Betrachten Sie die PWN-Steuerung? Oder einfach nur digital? Der Arduino Mega verfügt über 54 digitale Pins.
Hellonearthis
@PetPaulsen Das habe ich mir gedacht, aber ich brauche eine individuelle Steuerung jeder LED.
Polynom
@Hellonearthis Wie würde ich 54 LEDs von einem Arduino Mega ansteuern? Ich hatte den Eindruck, dass die Gesamtstrombegrenzung für das Gerät ziemlich klein war. Geht es nur darum, die meisten nLEDs schnell hintereinander zu betreiben? Wie würde ich mit dem Fernproblem umgehen?
Polynom
1
@Polynomial - Ich denke du bist richtig. Das Ansteuern aller LEDs von einem einzigen IC aus ist unter dem Gesichtspunkt des Gesamtgehäusestroms und der Verlustleistung problematisch. Außerdem ist es nahezu unpraktisch, 54 Drähte um das Zelt zu verlegen. Selbst wenn Sie die MCU-Platine in der Mitte platziert und 27 Drähte in jede Richtung verlegt haben, ist dies ziemlich unpraktisch. Sie möchten in einer Art Busstruktur denken, in der Sie Dinge seriell über eine kleine Anzahl von Drähten senden.
Michael Karas

Antworten:

10

Wenn Sie jede LED individuell steuern möchten, benötigen Sie so etwas wie diesen Schieberegister-LED-Treiber. Der TLC5916-Chip kann Displays ansteuern, die an einen Spannungsbereich angeschlossen sind. Außerdem wird für jedes Segment eine Konstantstromtechnik verwendet, um die Helligkeit auch für alle LEDs aufrechtzuerhalten. Es kann ratsam sein, vor dem Anschließen an die TLC5916-Ausgänge noch einen Widerstand in Reihe mit jeder LED zu schalten, um einen Teil des Spannungsabfalls zu teilen und die Verlustleistung im Treiberchip zu verringern, wenn Sie mit einer höheren LED-Ansteuerspannung arbeiten.

Sie können die TLC5916-Chips von Mouser sowohl im DIP- als auch im SOIC- Paketstil erhalten . Das Datenblatt ist auch von dort erhältlich.

Ich glaube nicht, dass Sie sich zu viele Sorgen über die Länge des Drahtes machen müssen, die viel Widerstand verursacht. Für 20mA benötigen Sie keinen sehr großen Drahtdurchmesser. Sogar etwas Kleines wie 30 AWG Kabel kann weit über 100 mA verarbeiten und ist ~ 10 Ohm in 100 Fuß.

Wenn Sie den Treiberchip verwenden, den ich empfohlen habe, können Sie ein verteiltes Design verwenden, bei dem Sie die seriellen Datensteuerungen von Chip zu Chip im LED-Kabelbaum ausführen, der in Gruppen von jeweils 8 LEDs angeordnet ist. Eine lokale Kurzschlussverbindung zu jeder LED wäre möglich. Die Steuersignale CLK, DATA und LATCH sowie die Sätze von acht lokalen LED-Drähten können aus Gründen der Flexibilität problemlos mit kleinen Drähten wie Litzen mit 28 oder 30 AWG ausgeführt werden. Die verteilte POWER und GND würden einen größeren Draht benötigen, um die Gesamtleistung zu bewältigen. Ihre 52 LEDs mit jeweils 20 mA entsprechen etwas mehr als 1 Ampere plus die Summe von 7 LED-Treiberchips verbraucht ungefähr 15 mA pro Chip. Fügen Sie also weitere 105 mA hinzu. Scheint, als würde eine 1,5-A-Versorgung gut für Sie funktionieren. Für die beiden Versorgungsleitungen würde ich eine etwas größere Drahtgröße empfehlen, z. B. 18 AWG. Dies kann den erforderlichen Gesamtstrom führen und es kann insgesamt laufen, wenn 156 Fuß und nur 1 Ohm Widerstand haben. Dieses spezielle Kabelpaar ist wichtig, da Sie den Spannungsabfall an diesem Teil der Schaltung so gering wie möglich halten möchten.

Die V DD- Pins der LED-Treiberchips möchten an + 5V angeschlossen werden. Sie sollten auch in der Lage sein, die LEDs über dieselbe 5-V-Versorgungsleitung zu betreiben. Das Treiberdatenblatt (Abb. 14) zeigt, dass beim Einstellen der Konstantstromsenke auf 20 mA der Ausgangsabfall des Chips bei mehr als etwa 0,5 V gut funktioniert. Mit der LED V F von 3,3 V würde der Treiberchip mit einer Ausgangsspannung von (5 - 3,3) = 1,7 Volt arbeiten. Wenn alle 8 LEDs für einen Treiber gleichzeitig leuchten würden, wäre die Ausgangsleistung im Teil (1,7 x 0,020 x 8) = 0,272 W. Dies liegt gut innerhalb der Nennleistung für den Treiberchip und es wären keine Vorwiderstände für die LEDs erforderlich.

Mit diesem Schema hätte die Mikrocontrollerkarte eine sehr einfache Verkabelung mit nur drei E / A. Die Software würde die LED-Treiber-Schieberegisterkette mit einem langsamen bitgeschlagenen CLK- und DATA-Strom für 56 Impulse ausführen und dann das LATCH-Signal mit einem einzelnen Impuls ansteuern, um die Ausgänge der LEDs zu aktualisieren.

Jeder der LED-Treiber könnte auf einer schmalen kleinen PC-Platine entworfen werden, die mit einem Stück weißem Schrumpffolienschlauch abgedeckt werden könnte. Drei kleine frei hängende Kabelbäume mit Inline-Steckern könnten aus den Enden des Schrumpfschlauchs herausragen. Eine mit 9 Pins zum Anschluss an acht lokale LEDs und zwei weitere als Verkabelungskabel, um zum nächsten Treiber in der Kette zu gelangen. Eines der Kabelenden würde lang genug sein, um den Eingangsanschluss des nächsten Bildschirmtreibers zu erreichen.

Sie hatten eine Gesamtlänge von etwa 30 Fuß über 52 LEDs erwähnt. Dies führt zu einer Modularität von ~ 4,5 Fuß von Treibermodul zu Treibermodul. Das würde Ihnen eine Vorstellung davon geben, wie lang diese Kabelstummel an jeder Treiberbaugruppe sein müssten. Die Drähte im Schrumpfschlauch könnten direkt an Löcher in der kleinen Leiterplatte gelötet werden.

Michael Karas
quelle
Der TLC5916, den Sie oben empfohlen haben - haben Sie irgendwelche Gedanken darüber, warum seine Versorgungsstromaufnahme proportional zum Stromeinstellwiderstand ist? (Seite 9 des Datenblattes) Der vom IC allein für seine logische Operation gezogene Strom sollte eine Konstante (und eine ziemlich kleine) sein, nicht wahr?
Boardbite
@boardbite - Der Versorgungsstrom (I <sub> DD </ sub>) variiert entsprechend dem Wert des Stromeinstellungswiderstands, da der Chip Strom in den Stromeinstellungswiderstand leitet. Im Normalbetrieb setzt der Chip die Spannung an diesem Widerstand auf einen intern geregelten Wert, der dann einen Strom durch ihn induziert. Dieser Strom wird vom V-DD-Pin bezogen. In einer speziellen Betriebsart kann die Spannung am Stromeinstellwiderstand programmgesteuert eingestellt werden, um eine Feinabstimmung des Stroms im Stromkreis zu ermöglichen.
Michael Karas
4

Hier ist eine etwas alternative Idee, warum nicht eine fertige Lösung verwenden? Sie können Zeichenfolgen adressierbarer LEDs kaufen, und es gibt Arduino-Code, um sie zu steuern.

Adressierbares LED-Modul

Es stehen viele verschiedene Typen zur Verfügung. Große, kleine, Streifen, RGB, einzelne Farben, wasserdichte oder blanke Leiterplatte. Und sie sind super einfach zu bedienen. Sie sind in der Regel in 5 m Länge erhältlich, und Sie können problemlos mehrere aneinander reihen. Oder Sie können die einzelnen Module kaufen und selbst verkabeln. Sie sind ziemlich billig bei 1,05 $ pro Stück.

Adressierbare LED-Modulplatine

Sie können sie bei eBay oder direkt aus China im Geschäft von Ray Wu bei Aliexpress erhalten . Ich habe ihn schon einmal benutzt und war mit den Ergebnissen zufrieden.

Raketenmagnet
quelle
Oder This
rdivilbiss
1

Ich habe das schon mal gemacht. Am Ende habe ich 4 Drähte, gnd, vcc, clock und data (Sie können es wahrscheinlich mit drei machen und haben keine Uhr, aber eine Uhr ist einfacher). Bei jeder LED hatte ich einen winzigen AVR-8-Pin-Prozessor, der sich über Clock-Stobes in Bytes verschob. Jeder wurde mit einem anderen Wert programmiert, damit ich die LEDs einzeln steuern konnte.

Ich würde Daten an jeden senden und dann einen globalen Befehl ausgeben, damit alle gleichzeitig ihre LED-Zustände ändern können.

Sie könnten in der Lage sein, 1-Bit-Schieberegister mit serieller Verriegelung billiger zu bekommen als bei winzigen, aber ich fand, dass die Prozessoren normalerweise billiger waren.

Dies war viel besser als 50 Drähte zu verlegen.

Myforwik
quelle
1

Einen Aspekt ansprechen:

Wenn Sie LEDs mit konstantem Strom betreiben, wirkt sich dies nicht auf die Helligkeit aus - nur auf die Spannung, die zum Erreichen eines bestimmten Stroms erforderlich ist.

Die verfügbare Antriebsspannung ist die Versorgungsspannung - LED-Betriebsspannung.
Suchen Sie im Datenblatt nach VLED bei der gewünschten I_LED.
Die Anwendung grundlegender Konzepte des Ohmschen Gesetzes ergibt:

Vmin = (ILED_required x Rleads) - V_LED

und neu ordnen.

R_lead_Max = (Vsupply - V_LED) / I_LED


Alle LEDs, die identisch arbeiten, können in Reihe betrieben werden. Dies kann das erforderliche Drahtgewicht in Abhängigkeit von den relativen LED-Positionen reduzieren.


Wenn nicht alle LEDs gleichzeitig betrieben werden, sollten Sie einen starken Erdungsrücklauf und leichtere Stromkabel in Betracht ziehen.

Russell McMahon
quelle