Tut mir leid, wenn das zu einfach ist, aber ich verstehe dieses Problem nicht.
Im Moment ändere ich mit einer MCU die RGB-Farben eines LED-Streifens mit 3 PWM-Signalen. Alle Farben funktionieren super. Die Sache ist, wenn ich versuche, die Intensität des Lichts einzustellen, weiß ich nicht, wie ich das machen soll.
Wenn ich also zum Beispiel RGB (15,170,230) habe, möchte ich die Intensität des Lichts langsam reduzieren und dabei die gleiche Farbe beibehalten. Wie würde ich das RGB ändern, um das zu erreichen?
Beginnen Sie damit, R, G und B mit dem Intensitätswert zu skalieren, für Ihr Beispiel bei 50 % Intensität würden Sie 15*0,5, 170*0,5, 230*0,5 (7, 85, 115) einstellen.
Die LEDs haben möglicherweise unterschiedliche nichtlineare Reaktionen, sodass Sie möglicherweise die Skalierung für die wahrgenommene Farbe anpassen müssen
Insbesondere bei sehr niedrigen Pegeln treten Rundungsfehler auf. Es gibt keine einfache Möglichkeit, dies zu umgehen, außer die Farbauflösung zu erhöhen (z. B. auf 0-1000 statt 0-250) oder Geräte mit einem geeigneteren Dynamikbereich für die Anwendung auszuwählen (hellere oder dunklere LEDs).
Eine andere Alternative, wenn Sie mehrere Geräte verwenden, besteht darin, eine Teilmenge der Geräte einzuschalten, um unterschiedliche Intensitätsstufen zu geben. Wenn Sie beispielsweise 6 RGB-LEDs haben, können Sie 3 auf (1,10,10) und 3 auf (0,10) umschalten ,10), um die Auflösung effektiv (0,5, 10, 10) insgesamt hinzuzufügen.
In Ihrem Fall:
(1) Ich würde den AKTUELLEN Antrieb der Hardware + Software proportional zum PWM-Ausgangswert festlegen. Strom- und nicht Spannungssteuerung ist wichtig, da Lumen: mA ungefähr konstant ist, Lumen: Volt jedoch sehr nicht linear ist. Sehr.
(2) Ich würde den maximal zulässigen Strom pro Farbe festlegen und
(3) Helligkeit von jedem bei diesem Strom.
Beachten Sie, dass das Maß Lumen/mA sein muss. Da Lumen eine auf der Augenreaktion basierende Einheit sind, würden sich die Lumenwerte pro mA unterscheiden, selbst wenn LEDs gleich light_mW/mA hätten. Auch - wenn Sie Farben mischen, selbst wenn die Sonne von (Red)lumen + green_lumen + blue_lumen) konstant ist, wenn sich die Helligkeit ändert, werden Sie möglicherweise feststellen, dass die wahrgenommene Helligkeit variiert. Wenn jedoch zwei LEDs einzeln betrachtet werden, ist ein Unterschied in der Lichtleistung von fast 2:1 erforderlich, bevor eine Helligkeitsänderung von den meisten Menschen wahrgenommen werden kann. Nebeneinander vielleicht 1,5:1. Wallwashing angrenzend - vielleicht 1,2:1.
(4) Dann würde ich die Helligkeit pro PWM-Schritt festlegen.
Dadurch kann die gewünschte Helligkeit pro PWM-Schritt verwendet werden, um eine RGB-Mischung auszuwählen.
Sie könnten
Skalieren Sie in der Software so, dass alle Farben den Wert 0-100 für 0-100% Helligkeit verwenden, oder
0-100 für absolute Intensitäten (Einstellung der empfindlichsten Farbe auf 100 bei mx-Helligkeit, damit sie nicht übersteuert wird ODER
Daten "on the fly" nutzen.
B. SAY
Rot = maximale Helligkeit 200 Einheiten bei 25,0 mA
Grün = maximale Helligkeit 120 Einheiten bei 20,0 mA
Blau = maximale Helligkeit 80 Einheiten bei 20,0 mA
So Rot = 8 Helligkeiten pro mA, max. 25 mA So Grün = 6 Helligkeiten pro mA, max. 20 mA So Blau = 4 Helligkeiten pro mA, max. 20 mA
Es gibt verschiedene Möglichkeiten, dies zu steuern.
Wenn Sie IMMER wollen, dass oben gleiches RGB verwendet werden kann, dann setzt Blau (das weniger hell ist) Rot die Grenze auf 80bu, 20 mA.
Also Grün max = 80bu/6 mA/bu = 13,333 mA max
Rot max = 80bu/8 = 10 mA Blau = 80bu/4 = 20 mA (wie oben).
Sie können diese Skalierungswerte im laufenden Betrieb verwenden ODER wenn beispielsweise PWM max = 250 = 25 mA ist, können Sie Helligkeiten von 0 bis 100 pro Farbe verwenden, sodass: Rot 100 = 10 mA -> Skalierungsfaktor = 1 Grün 100 = 13,333 mA -> Skalenwerte um 1,33 aufwärts skalieren
Blau 100 = 20 mA -> Skalenwerte um 2,0 aufwärts skalieren
Ein Wert von beispielsweise RGB 50 50 50 erzeugt also "weißes" Licht mit gleicher RGB-Helligkeit.
Tatsächliche PWM-Werte sind 50 67 100.
Tatsächliche mA sind 5 6,7 10.
Also ergibt auch 25 25 25 Helligkeiten Weiß bei der Hälfte der oben genannten Gesamthelligkeiten und Ströme.
Ein Wechsel auf 50 20 80 oder auf 50 80 20 erzeugt eine neue Farbe und UNGEFÄHR unveränderte Helligkeit, WENN unabhängige Lumenwerte hinzugefügt werden. Was das Auge-Hirn-System sieht, kann unterschiedlich sein.
Wie hat Ihr ursprüngliches Experimentieren funktioniert?
Ich bin dabei, mit einigen LED-Streifen, die ich erworben habe, zu "spielen".
Führen Sie einfach eine lineare Interpolation durch. Angenommen, über 100 Zeitschritte beginnen Sie mit der ursprünglichen Farbe und verringern Sie dann jede Komponente um 1 % bei jedem Zeitschritt. Sie müssen das Verhältnis zwischen den Komponenten beibehalten, um die Gesamtfarbe zu erhalten. Solange Sie alle Elemente um denselben Betrag skalieren, bleibt die Farbe gleich.
Andi aka
Schlimm
Paul
Andi aka
Paul
Paul
dfsg76