Einen LED-Ring gleichmäßig aufleuchten lassen?

Ich arbeite an einem Projekt, das wirklich cool aussehen würde, wenn ich in der Lage wäre, einen Ring aus LEDs (ähnlich wie der auf den TRON Identity Discs) gleichmäßig in einem Kreis aufleuchten zu lassen, anstatt Teile der LEDs aufleuchten zu lassen einzeln. Ich weiß, dass EL-Draht das glatte, einheitliche Aussehen erzielen wird, das ich will, aber ich kann EL-Draht nicht dazu bringen, nach und nach in einer Schleife zu leuchten.

Gibt es Ideen? Ich habe darüber nachgedacht, ein Skript auf einem Mikrocontroller zu schreiben, der sie reibungslos beleuchtet, aber ich bin mir nicht sicher, welche Art von LEDs ich dafür benötigen würde oder ob es möglicherweise eine einfachere Lösung gibt.

Meinen Sie, dass alle LEDs sofort zusammen aufleuchten sollten (parallel zu ihnen), sie sollten in einer visuell linear ansteigenden Intensitätsrampe aufleuchten (dazu habe ich zuvor eine Antwort gepostet) oder nacheinander aufleuchten, jedoch mit einem sanften Anstieg Profil für jedes aufeinander folgende?
Ich werde mir die visuell linear ansteigende Intensitätsrampe ansehen. Ich glaube, ich fand keine Worte dafür. Danke Anindo.
Siehe den letzten Teil dieser Antwort , die gewünschte PWM-Kurve ist y = x ^ 2,5. Ich kann es in eine Antwort auf diese Frage schreiben, wenn Sie möchten.
Ich habe Tron noch nie gesehen, aber es sieht so aus, als hätte Anindo es abgedeckt
Sparkfun verkauft einige Lichtleiter, die Sie möglicherweise von einer Seite beleuchten können.
Kannst du einen Link/Video posten, der den Effekt zeigt, den du suchst? Ich konnte Tron noch nie durchstehen :(
@angelatlarge Hier ist einer , der den Tron-Disc-Effekt ein wenig einfängt - obwohl er eher diskret als ein glatter Übergang ist. Sehen Sie sich die Lichter des inneren Rings an.

Antworten (1)

Das Problem in mehrere Blöcke aufteilen:


Hardware:

  • Leuchtdioden:

    Die einfachste Implementierung würde 16 LEDs umfassen. Wenn ein weicherer Übergang erwünscht ist, könnten mit geeigneten LED-Treiber-ICs 32 oder sogar noch mehr LEDs verwendet werden.

  • Konstantstrom-LED-Treiber mit integrierter PWM-Dimmunterstützung

    Der LED-Treiber TLC5940 von Texas Instruments unterstützt 16 LEDs mit jeweils 12-Bit-PWM-Dimmung (4096 Schritte). Das PWM-Tastverhältnis für jede LED wird intern vom IC generiert, wodurch der Mikrocontroller von intensivem Timing und PWM-Erzeugungsaufwand entlastet wird. Das Teil wird über eine serielle Schnittstelle gesteuert, und es gibt Open-Source-Bibliotheken für viele gängige Mikrocontroller und Entwicklungsboards. Die Ausgänge sind Konstantstromsenken, sodass man die Stromsteuerwiderstände pro LED einspart.

    Wenn 32 LEDs oder mehr für einen reibungsloseren Übergang gewünscht werden, unterstützt der TLC5940 Kaskadierung, sodass ein einziger Satz von Steuerleitungen das gesamte Array von LED-Treibern programmieren kann.

    Wenn man es mit einer gleichmäßigen LED-Beleuchtung weit übertreiben möchte, dann ist der Austria MicroSystems AS1130 132 LED-Treiber oder sogar der 144 LED-Treiber ( AS1119 ) mit seiner integrierten Ladungspumpe zum Ansteuern von LEDs von einer Stromschiene niedriger als die Vorwärtsspannung Ihrer LED, könnte von Interesse sein.

  • Mikrocontroller:

    So ziemlich jeder Mikrocontroller, der in der Lage ist, eine serielle Leitung (normalerweise SPI) mit einer angemessen hohen Datenrate anzusteuern, würde ausreichen. Ein Arduino Uno wäre zum Beispiel ausreichend.

  • Leistung:

    Beachten Sie, dass einzelne LEDs zwar anscheinend keine stromhungrigen Bestien sind, aber 16 oder 144 von ihnen parallel zu schalten, bedeutet, dass sie irgendwo zwischen einem Watt und 10 oder mehr Watt liegen, wenn man von normalen 20-mA-Anzeige-LEDs ausgeht. Hinzu kommt der Stromverbrauch der LED-Treiber selbst (z. B. 60 mA typisch pro TLC5940), und der Strombedarf wird ziemlich hoch.


Software:

  • Zeitliche Koordinierung:

    Der Mikrocontroller muss in der Lage sein, das/die LED-Steuerpaket(e) für alle LED-Treiber besser als die Persistenz der Sichtraten zu übertragen: Vorzugsweise mehr als 20 Mal pro Sekunde für eine statische Anzeige und 200 Mal pro Sekunde oder besser für etwas das soll sich bewegen. Außerdem reagiert das menschliche Auge sehr empfindlich auf selbst geringfügige Störungen in einem sanften Übergang der Lichtintensität, sodass die Übertragung von Steuerdaten idealerweise von einem stabilen Zähler-Interrupt gesteuert werden sollte und keine andere Mikrocontroller-Aufgabe einer LED-Controller-Aktualisierung zuvorkommen sollte.

  • Intensitätsberechnung:

    Die Berechnung einer einigermaßen linearen (für das menschliche Auge) Folge von PWM-Arbeitszyklen für einen glatten Übergang beinhaltet ungefähr die folgende vereinfachte Formel: wobei die gewünschte Intensität für die y = (x ^ 2.5) / kSchrittzahl yeine Konstante ist x, kdie von der verfügbaren Bittiefe (Auflösung) der PWM abgeleitet wird Generator.

    Einfach ausgedrückt: Bei niedrigen Intensitäten ist ein kleinerer Anstieg des Tastverhältnisses erforderlich, bei hoher Intensität größere Sprünge, um im Übergang linear zu erscheinen.

    64 verschiedene Intensitätsstufen sollten für einen vernünftigen Übergang ausreichen, 256 wenn Over-the-Top der Geschmack der Woche ist. Für 64 Schritte, die 4096 PWM-Werten (12-Bit-PWM) zugeordnet sind, funktioniert die obige Formel wie folgt:

    PWMvalue = (StepNumber ^ 2.5) x 0.125

    Es ist nicht perfekt, aber ziemlich nah dran.

    Für 256 Schritte und 12 Bit PWM lautet die FormelPWMvalue = (StepNumber ^ 2.5) x 0.00390625

    Obwohl diese Berechnung trivial genug ist, ist es für die beste Leistung sinnvoll, die PWM-Werte für jeden Schritt im Voraus zu berechnen und sie als statisches Array, eine Nachschlagetabelle (LUT), in den Code einzufügen. Dies spart wertvolle Zyklen während der Laufzeit, indem Daten aus einem Array abgerufen werden, anstatt Exponentialwerte zu berechnen.

  • Implementierungslogik:

    Aktualisieren Sie in jedem Auffrischungszyklus die PWM-Arbeitszyklen für jede LED gemäß der LUT und lassen Sie beispielsweise 64 / 4 = 16 stepszwischen aufeinanderfolgenden LEDs eine Lücke. Somit wird die erste LED innerhalb von 64 Auffrischungszyklen glatt von Null auf Voll übergehen, die zweite LED wird beim 16. Auffrischungszyklus beginnen und die 3. LED beim 32. Auffrischungszyklus und so weiter. Bei 16 LEDs 64 x 4 = 256 cyclesbleiben alle LEDs voll erleuchtet. Berechnen Sie die maximale Zeit pro Aktualisierung, indem Sie die gewünschte Übergangszeit für den vollen „Tron-Ring“ durch 256 dividieren, und stellen Sie Ihren Aktualisierungs-Interrupt-Zähler entsprechend ein.


Wenn Sie tatsächlich einen Tron-Ring implementieren, teilen Sie bitte ein Video. Die derzeit auf YouTube zu findenden Videos von DIY Tron Disc Light-up-Implementierungen sind viel zu rudimentär.

Könnten Sie einige Referenzen angeben, woher Sie diese Formel genommen haben: y = (x ^ 2,5) / k ?
@m.Alin Bitte lesen Sie dies und Ihre vorherige Anfrage zum selben Thema und meine Antworten. :-)
Danke Anindo und Entschuldigung, ich habe vergessen, dass ich dir die gleiche Frage bereits gestellt habe.. :)