Frage:
Sie möchten 36 PWM-Steuerungskanäle für die LED-Skulptur erstellen
the_koo
2012-02-22 12:52:43 UTC
view on stackexchange narkive permalink

Ich bin ein Bildhauer, kein EE, aber ich versuche, steuerbare LEDs in ein Stück zu integrieren, an dem ich arbeite, und ich könnte einige Ratschläge gebrauchen, um einen praktischen Ansatz zu finden. Ich möchte in der Lage sein, 12 separate Kanäle (das Stück ist ein Dodekaeder) von RGB-Streifen zu steuern, und das bedeutet, dass ich 36 PWM-Ausgänge benötige, was mehr ist, als ich auf einem Arduino haben kann. Soweit ich das beurteilen kann, brauche ich einen Schild, so etwas wie TLC5940 Breakout - obwohl ich nur 16 PWMs habe, müsste ich drei davon verketten, von denen ich weiß, dass sie durchgeführt werden können , aber ich würde gerne wissen, welche Probleme sich daraus ergeben könnten. So etwas wie Brilldea LED Painter könnte auch eine Lösung sein, aber ich bin relativ unter Zeitdruck, daher wäre etwas Vormontiertes ein netter Vorteil.

Ich bin neu in Daher bin ich mir nicht sicher, ob das, was ich gerade gesagt habe, korrekt ist, aber hoffentlich können einige von Ihnen mir mitteilen, was ein vernünftiger Ansatz sein könnte. Vielen Dank für Ihre Hilfe.

Aber müssen Sie wirklich alle Streifen und alle Farben unabhängig voneinander fahren? Wenn Sie eine Regel finden, die die Anzahl der Variablen verringert, können Sie dies vereinfachen.
Es ist ein Kunstprojekt, also muss ich nichts tun. Aber ja, in einem idealen Szenario (und es klingt wie ein realistisches Szenario) kann ich jeden Streifen einzeln fahren, um die gewünschten Effekte zu erzielen. Durch das Zurückskalieren werden die Visualisierungen eingeschränkt, die ich erstellen kann.
Sieben antworten:
vicatcu
2012-02-22 20:37:55 UTC
view on stackexchange narkive permalink

Es gibt eine ausgefallene Arduino-Bibliothek für PWM über Schieberegister namens ShiftPWM. Es wurde mehr oder weniger speziell für das entwickelt, was Sie tun möchten (viele RGB-LEDs mit einem Arduino steuern). Ich habe das vor einigen Monaten am Hack-a-Day gesehen. Es sieht sehr cool aus und bietet das Potenzial, 768 LEDs (oder 256 RGB-LEDs) mit 5 Bit (d. H. 32 Helligkeitsstufen) pro Farbkanal (d. H.> 32000 mögliche Farben) zu steuern. Ich freue mich darauf, diese Bibliothek irgendwann selbst zu nutzen. Und es werden nur drei Pins auf Ihrem Arduino benötigt - für Seriennummer, Uhr und Verriegelung des anfänglichen Schieberegisters (in der Kette). Diese Bibliothek soll so etwas wie das 74HC595-Schieberegister steuern, das verdammt viel billiger ist als das TLC5940.

Der TLC5940 ist nicht "verdammt viel teurer" als die 3 74HC595-Schieberegister (in kleinen Mengen erhältlich), die Sie ersetzen müssten, und der TLC5940 verwendet die gleiche Anzahl von Pins und nimmt viele zeitliche Einschränkungen auf des Mikrocontrollers.
Muss man die Schalthebel wirklich 256 Mal pro Frame füttern, um 256 Helligkeitsstufen zu erhalten? Einige andere Ansätze scheinen es einem zu ermöglichen, mit viel weniger auszukommen.
Ich mag diese Idee, aber ich habe genug finanzielle Unterstützung, dass die Kosten für den TLC5940 kein großes Problem sein sollten. Ich hätte auch gerne 256 Ebenen, wenn ich ein Programm schreibe, das Bewegung (es konvertiert Daten von einem Kinect) in eine Farbe umwandelt. Ein größerer Bereich macht den Algorithmus also interessanter. Trotzdem danke. Könnte immer noch nützlich sein.
Dan
2012-02-22 15:44:38 UTC
view on stackexchange narkive permalink

Meiner Meinung nach klingt Ihr Ansatz bei der Verwendung von diesem Breakout-Board von sparkfun wirklich gut :)

Die großen Vorteile sind, dass dieses Board 16 PWM-Kanäle bietet, über die programmiert werden kann Als verkettete serielle Daisy-Schnittstelle sind alle LED-Eingänge leicht zugänglich und leicht zu verfolgen.

Außerdem - Sie wissen wahrscheinlich bereits, ob Sie Arduino verwenden möchten, eine Bibliothek, die hilft Ihnen bei der Manipulation des bereits vorhandenen Treibers.

Falls Sie dies nicht getan haben, sollten Sie sich auch das Projekthaus ansehen.

Da Sie sagten, dass Sie unter Druck stehen, würde Ihnen diese Lösung dies ermöglichen schnell und einfach zu arbeiten, um diese LEDs so zum Laufen zu bringen, wie Sie es möchten - Viel Glück bei Ihrem Projekt! :)

Der LED-Maler sieht perfekt für sein Projekt aus.
Danke, ich mag das Aussehen des TLC5940. Tatsächlich verwendet der LED-Maler tatsächlich drei davon (NT im Gegensatz zu RHB beim Ausbruch). Wie ich am besten beurteilen kann, teilt der Maler die Farben auf die drei Treiber auf, während beim Ausbrechen die Kanäle nicht aufgeteilt würden. Können Sie mir sagen, ob beide Ansätze Nachteile haben und was noch wichtiger ist, für die es schwieriger ist, sie zu programmieren? Vielen Dank für die Hilfe!
(Teil 1): Ja, Sie haben Recht, der LED-Maler teilt RGB auf die drei TLCs auf, aber es gibt keinen Grund, warum Sie die Breakout-Boards nicht auf die gleiche Weise verwenden können. Ich halte dies für eine wirklich gute Idee Auf dem Breakout Board wissen Sie wahrscheinlich bereits, dass auf den Bildern die 0,1,2 ... 15-Anschlüsse so sind, wie sie sind, um RC-Servoanschlüsse aufzunehmen. Ein ERD-, ein BATTERIE- (+ 5V) und ein PWM-Ausgang. Bei der Verkabelung müssen Sie nur den PWM-Ausgang und natürlich den GROUND von einer Karte verwenden (vorausgesetzt, GROUND ist für alle 3 Karten gleich).
(Teil 2): ​​Über Vor- und Nachteile ... Ich denke, dass das Aufteilen der Farben es Ihnen ermöglichen würde, viel besser zu arbeiten, und das ist eine wirklich gute Sache, sowohl aus Software- als auch aus Hardwaresicht, abgesehen davon kann ich nicht denken über etwas zu sagen wie "das ist viel besser, weil ..." Finnaly, das RGB über die 3 TLCs aufteilt und die Breakout-Boards verwendet, scheint aus meiner Sicht der richtige Weg zu sein. LED-Maler ist auch toll, aber sie sind ausverkauft :)
Der Hauptgrund, jede Farbe mit einem eigenen TLC5940 zu betreiben, besteht darin, dass Sie jede Farbe mit einer anderen Strommenge betreiben können (alle Konstantstromsenken eines einzelnen TLC5940 verbrauchen dieselbe Strommenge). Es ist nicht schwieriger, auf die eine oder andere Weise zu programmieren.
spearson
2012-02-22 13:31:53 UTC
view on stackexchange narkive permalink

Sie benötigen kein PWM. Jeder Ausgangs-Pin (IO) eines Mikrocontrollers funktioniert.

Mit einem PWM können Sie einen Arbeitszyklus (Ein / Aus-Zeit) einstellen und diesen dann unbegrenzt wiederholen, was zu einer variablen Helligkeit führt. E / A-Pins können basierend auf einem Timer ein- und ausgeschaltet werden, um das gleiche Ergebnis zu erzielen. Die PWM ist technisch präziser und kann sich schneller ändern als die E / A-Pins, aber das menschliche Auge kann den Unterschied nicht erkennen. Das Ergebnis ist genau das gleiche.

Sie benötigen also einen Mikrocontroller mit 36 ​​E / A-Pins.

Wenn Sie versuchen, externe Hardware zu vermeiden, muss diese auch in der Lage sein, genügend Strom zu verbrauchen, um diese 36 LEDs anzusteuern ...
Ja, 100 Hz oder so wären schnell genug, um kein sichtbares Flackern zu erzeugen. Die Uhr eines Arduino läuft mit 8.000.000 Hz, Sie können dies also in Software tun.
Das ist nützlich zu wissen, aber mein Arduino hat immer noch keine 36 Ausgangsstifte, daher muss ich immer noch herausfinden, wie ich all diese Stifte am besten aneinanderreihen kann. Trotzdem danke!
@the_koo: Arduinos sind ziemlich klein - vielleicht finden Sie Platz, um 3 oder 4 Arduinos einzudrücken, von denen jeder einige der RGB-Streifen steuert. Oder aktualisieren Sie auf ein Arduino Mega 2560 mit 54 Ausgangspins.
mikeselectricstuff
2012-02-23 03:23:22 UTC
view on stackexchange narkive permalink

(Entschuldigung für Werbepost, aber keine Möglichkeit, den Benutzer direkt zu kontaktieren) Ich stelle einen 48-Kanal-DMX-Dimmer her, der zum Ansteuern von LED-Streifen ausgelegt ist und Ihnen möglicherweise eine Standardlösung bietet. mailen Sie mir über whitewing.co.uk

Jeff
2012-02-23 05:11:42 UTC
view on stackexchange narkive permalink

Eine weitere Option, die Sie möglicherweise in Betracht ziehen sollten, ist:

http://thingm.com/products/blinkm

Ich habe keine Verbindungen dazu Firma, ich habe gerade das Produkt verwendet.

supercat
2012-02-22 21:59:29 UTC
view on stackexchange narkive permalink

Ich würde vorschlagen, Schieberegister mit gesteuertem Strom zu verwenden und zuzulassen, dass das Stromsteuerkabel CPU-gesteuert wird (möglicherweise indem ein oder mehrere nicht stromgesteuerte Schalthebel in die Kette aufgenommen werden und sie Widerstandsteiler steuern). Wenn Sie eine 6-Bit-Helligkeitsregelung und eine maximale Nachladegeschwindigkeit von 10-facher PWM-Rate (z. B. maximal eine Nachladegeschwindigkeit pro Millisekunde, um eine Bildrate von 100 Hz zu erreichen) wünschen, würde ich empfehlen, die sechs Bits jedes PWM-Werts zu teilen unter sechs Verschiebungspuffern (also wäre Bit N von Puffer B Bit B von LED Ns Helligkeit). Dann wäre das Nachlademuster alle 10 Zyklen:

 Zyklus 0: Alle Schalthebel mit Puffer 5 laden, voller Strom Zyklus 1-3: Gleiche Daten in Schaltern behalten Zyklus 4: Alle Schalthebel mit Puffer 4 laden, voller Stromzyklus 5: Gleiche Daten in Schalthebeln behalten Zyklus 6: Laden Sie alle Schalthebel mit Puffer 3, voller Strom Zyklus 7: Laden Sie alle Schalthebel mit Puffer 2, Halbstrom Zyklus 8: Laden Sie alle Schalthebel mit Puffer 1, Viertelstrom Zyklus 9: Laden Sie alle Schalthebel mit Puffer 0, 1 / 8 current 

Mit diesem Ansatz kann der durchschnittliche Strom von 1/80 des maximalen Peaks auf 63/80 des maximalen Peaks in Einheiten von 1/80 eingestellt werden, wobei nur eine Nachladerate verwendet wird 10x die Bildrate. Wenn man 256 Helligkeitsstufen wünscht, kann man Nachladungen mit 1/16 und 1/32 Strom hinzufügen (12 Nachladungen pro Frame anstelle von 10). Dies würde es ermöglichen, den durchschnittlichen Strom von 1/384 auf 255/384 mit nur einer bescheidenen Erhöhung der Nachladerate einzustellen.

Hellonearthis
2012-02-23 02:59:09 UTC
view on stackexchange narkive permalink

Diese http://www.adafruit.com/products/306 könnte eine Option sein. Es hat 32 RGB-adressierbare LEDs pro Streifen und Sie können den Streifen schneiden (ja, dies ist ein Tutorial dafür), damit Sie sie platzieren

Während dies theoretisch die Frage beantworten kann, [wäre es vorzuziehen] (http://meta.stackexchange.com/q/8259), die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Ich versuche nicht, einzelne LEDs auf einem Streifen zu adressieren. Ich muss eine ganze Reihe separater Streifen ansprechen.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...