Nachdem ich mich endlich mal in Platinen-Layout eingearbeitet hatte, habe ich als erstes einen Treiber für RGBW-Leds wie die XM-L Color entworfen:, mit 8*AMC7135, zwei (also 700mA) pro Farbe, gedacht für Lampen mit Taster.
In den letzten Wochen habe ich dann mal an der Firmware dafür gearbeitet, und die kann einiges (jaja, Eigenlob stinkt; aber der bekannte China-RGBW-Treiber stinkt dagegen ab ).
Da die 4 eigentlichen LEDs nebeneinander sitzen (und auch nicht in der Mitte des Reflektors), habe ich ordentlich d-c-fix-Diffusor verwendet.
PWM-Frequenz ist 2kHz, der Ruhestrom im ausgeschalteten Zustand ist etwa 0.3µA (was eine 18650er theoretisch in 1000 Jahren leersaugt...). Es gibt auch einen Tiefentladungsschutz (blinkt und schaltet ab).
Die Lampe kennt mehrere Hauptmodi, die sich durch unterschiedliche Klicks aus dem ausgeschalteten Zustand heraus aktivieren lassen. Innerhalb jedes Modus gibt es dann andere Klick-Befehle.
K (Anschalten durch einmal kurz Klicken) -> Farbkreis
In diesem Modus bewirkt ein Gedrückt-Halten (H) einen kontinuierlichen Farbwechsel durch den Farbkreis (rot-orange-gelb-grün-türkis-blau-violett-rot-... samt Zwischenfarben), ein kurzer Klick gefolgt von einem Halten (KH) das gleiche rückwärts, so dass man die gewünschte Farbe gut einstellen kann. Ein Doppelklick (KK) startet oder stoppt einen automatischen, langsamen Farbdurchlauf. Die Helligkeit lässt sich jedoch nicht ändern. Kurzer Klick (K) schaltet aus.
H (Taster drücken und halten) -> Weiß
Da leuchtet halt nur die weiße LED; der im Alltag nützlichste Modus, vor allem im Haus (wegen der nur 700mA und des Diffusors). H fährt die Helligkeit stufenlos hoch, KH runter, in einem dem Helligkeitsempfinden nach einigermaßen gleichmäßigen Tempo (naja, im Mondschein-Bereich nicht ganz), und dunkel ist wirklich schön dunkel geworden. K schaltet aus.
KK (Anschalten mit Doppelklick) -> Einfache und Blinkende Modi
Dieser Modus hat mehrere Sub-Modi, durch die man mit H und KH vorwärts und rückwärts wechseln kann: Rot, Grün, Blau, gelbes Doppelblitz-Warnblinken, blaues Doppelblitz-Warnblinken (Polizei... wahrscheinlich nehme ich den wieder raus), amerikanisches rot-blaues Polizeiblinken (weil das der China-Treiber auch hat, aber ist eigentlich auch sinnlos), wild-buntes Blinken, und türkis mit einem zusätzlichen, langsamen roten Blinken, wodurch rote Dinge besonders ins Auge fallen (inspiriert durch einen anderen Thread).
K schaltet aus.
KH (kurz drücken, dann Drücken und halten) -> Volles RGBW
In diesem Modus kann man die Helligkeit jeder einzelnen LED individuell einstellen. H und KH zum ändern der Helligkeit im aktuellen Kanal auf- und abwärts; KK zum wechseln in den nächsten Kanal (R,G,B,W), KKK zum vorigen; ein entsprechendes kurzes Blinken zeigt, in welchem Kanal man ist.
K schaltet aus.
KKK -> Batterie-Anzeige
Auch hier gibt es 2 Sub-Modi (H zum wechseln), der eine zeigt die Spannung an durch die Farbe (weiß:4.5V, blau:4.0V, grün:3.5V, rot 3.0V, Mischfarben entsprechend dazwischen), der andere den genauen Wert durch Blinken; rotes Blinken für ganze Volt, grünes für Zehntel, blaues für Hundertstel, z.B. 3*rot, 7*grün, 2*blau -> 3.72V. Aber Vorsicht...der Treiber ist bei weitem kein Präzisionsinstrument, der echte Wert kann um einige Prozent abweichen, die Hundertstel Volt sind allenfalls zum direkten Vergleich gut, aber entsprechen bei weitem nicht der absoluten Genauigkeit.
K schaltet aus.
Jeder dieser Modi besitzt seinen eigenen 'Memory', d.h. startet mit den Einstellungen von seiner letzten Benutzung.
Und dann gibt es noch 2 ganz besondere Modi:
KKKKKKKK - Messung der Kapazität
Die Lampe misst die Kapazität und den Energieinhalt der eingelegten Zelle (dazu sollte die voll sein) bei 700mA bis runter auf 3.0V. Das dauert seine Zeit. Die Leuchtfarbe zeigt grob an, bei welcher Spannung die Zelle gerade ist (grün: >4V, blau:>3.8V, weiß:>3.6V, darunter rot). Irgenwann geht sie dann aus und in den Tiefschlaf. Auf Tastendruck gibt sie dann die gemessenen Werte aus, erst die Kapazität in Ah (R,G,B für Ganze, Zehntel, Hunderstel Ah, 2*rot, 3*grün, 6*blau -> 2,37 Ah bzw. 2340mAh), dann den Energieinhalt in Wh auf die gleiche Weise. Die Aussagen über die Genauigkeit bei der Batterieanzeige gelten auch hier!
Zum Verlassen muss man die Batterie wechseln (sie ist sowieso leer). Dies ist der einzige Modus, der sich nicht durch K ausschalten lässt.
KKKKKK - Messung des Batterie-Innenwiderstands (Gleichstrom), allerdings inklusive der Kontaktwiderstände
Der DC-Innenwiderstand einer Zelle trifft eine wichtige Aussage darüber, wie 'hochstromfest' eine Zelle ist bzw. wie stark die Zellspannung unter Last einbricht. So bestimmt der Treiber auch den Innenwiderstand - allerings spielen hier auch die Kontaktwiderstände mit, und ich rate dazu, diese durch geeignete Maßnahmen zu reduzieren. Den Erfolg dieser Maßnahmen kann man dann ebenfalls messen.
Die Lampe leuchtet erst mal etwas über 10s rum, dann gibt sie den Innenwiderstand in Milliohm durch Blinken aus, z.B. 1*rot, 7*grün, 5*blau -> 175 mOhm.
Die Messung wird dauernd wiederholt, K zum Ausschalten.
Für die Messung muss die Batterie genug Spannung haben. Ist dies nicht der Fall, bricht der Treiber die Messung nach einigen Sekunden ab und signalisiert das durch ein schnelles rotes Blinken. Das kann auch bei recht vollen Zellen der Fall sein, wenn Innen- und/oder Kontakt-Widerstände zu hoch sind.
Auch hier gelten wieder die obigen Hinweise zur Genauigkeit.
Die letzteren Funktionen werde ich noch mal mehr testen, eine meiner älteren Zellen habe ich gerade durchlaufen lassen: 1.5Ah, klingt plausibel.
In den letzten Wochen habe ich dann mal an der Firmware dafür gearbeitet, und die kann einiges (jaja, Eigenlob stinkt; aber der bekannte China-RGBW-Treiber stinkt dagegen ab ).
Da die 4 eigentlichen LEDs nebeneinander sitzen (und auch nicht in der Mitte des Reflektors), habe ich ordentlich d-c-fix-Diffusor verwendet.
PWM-Frequenz ist 2kHz, der Ruhestrom im ausgeschalteten Zustand ist etwa 0.3µA (was eine 18650er theoretisch in 1000 Jahren leersaugt...). Es gibt auch einen Tiefentladungsschutz (blinkt und schaltet ab).
Die Lampe kennt mehrere Hauptmodi, die sich durch unterschiedliche Klicks aus dem ausgeschalteten Zustand heraus aktivieren lassen. Innerhalb jedes Modus gibt es dann andere Klick-Befehle.
K (Anschalten durch einmal kurz Klicken) -> Farbkreis
In diesem Modus bewirkt ein Gedrückt-Halten (H) einen kontinuierlichen Farbwechsel durch den Farbkreis (rot-orange-gelb-grün-türkis-blau-violett-rot-... samt Zwischenfarben), ein kurzer Klick gefolgt von einem Halten (KH) das gleiche rückwärts, so dass man die gewünschte Farbe gut einstellen kann. Ein Doppelklick (KK) startet oder stoppt einen automatischen, langsamen Farbdurchlauf. Die Helligkeit lässt sich jedoch nicht ändern. Kurzer Klick (K) schaltet aus.
H (Taster drücken und halten) -> Weiß
Da leuchtet halt nur die weiße LED; der im Alltag nützlichste Modus, vor allem im Haus (wegen der nur 700mA und des Diffusors). H fährt die Helligkeit stufenlos hoch, KH runter, in einem dem Helligkeitsempfinden nach einigermaßen gleichmäßigen Tempo (naja, im Mondschein-Bereich nicht ganz), und dunkel ist wirklich schön dunkel geworden. K schaltet aus.
KK (Anschalten mit Doppelklick) -> Einfache und Blinkende Modi
Dieser Modus hat mehrere Sub-Modi, durch die man mit H und KH vorwärts und rückwärts wechseln kann: Rot, Grün, Blau, gelbes Doppelblitz-Warnblinken, blaues Doppelblitz-Warnblinken (Polizei... wahrscheinlich nehme ich den wieder raus), amerikanisches rot-blaues Polizeiblinken (weil das der China-Treiber auch hat, aber ist eigentlich auch sinnlos), wild-buntes Blinken, und türkis mit einem zusätzlichen, langsamen roten Blinken, wodurch rote Dinge besonders ins Auge fallen (inspiriert durch einen anderen Thread).
K schaltet aus.
KH (kurz drücken, dann Drücken und halten) -> Volles RGBW
In diesem Modus kann man die Helligkeit jeder einzelnen LED individuell einstellen. H und KH zum ändern der Helligkeit im aktuellen Kanal auf- und abwärts; KK zum wechseln in den nächsten Kanal (R,G,B,W), KKK zum vorigen; ein entsprechendes kurzes Blinken zeigt, in welchem Kanal man ist.
K schaltet aus.
KKK -> Batterie-Anzeige
Auch hier gibt es 2 Sub-Modi (H zum wechseln), der eine zeigt die Spannung an durch die Farbe (weiß:4.5V, blau:4.0V, grün:3.5V, rot 3.0V, Mischfarben entsprechend dazwischen), der andere den genauen Wert durch Blinken; rotes Blinken für ganze Volt, grünes für Zehntel, blaues für Hundertstel, z.B. 3*rot, 7*grün, 2*blau -> 3.72V. Aber Vorsicht...der Treiber ist bei weitem kein Präzisionsinstrument, der echte Wert kann um einige Prozent abweichen, die Hundertstel Volt sind allenfalls zum direkten Vergleich gut, aber entsprechen bei weitem nicht der absoluten Genauigkeit.
K schaltet aus.
Jeder dieser Modi besitzt seinen eigenen 'Memory', d.h. startet mit den Einstellungen von seiner letzten Benutzung.
Und dann gibt es noch 2 ganz besondere Modi:
KKKKKKKK - Messung der Kapazität
Die Lampe misst die Kapazität und den Energieinhalt der eingelegten Zelle (dazu sollte die voll sein) bei 700mA bis runter auf 3.0V. Das dauert seine Zeit. Die Leuchtfarbe zeigt grob an, bei welcher Spannung die Zelle gerade ist (grün: >4V, blau:>3.8V, weiß:>3.6V, darunter rot). Irgenwann geht sie dann aus und in den Tiefschlaf. Auf Tastendruck gibt sie dann die gemessenen Werte aus, erst die Kapazität in Ah (R,G,B für Ganze, Zehntel, Hunderstel Ah, 2*rot, 3*grün, 6*blau -> 2,37 Ah bzw. 2340mAh), dann den Energieinhalt in Wh auf die gleiche Weise. Die Aussagen über die Genauigkeit bei der Batterieanzeige gelten auch hier!
Zum Verlassen muss man die Batterie wechseln (sie ist sowieso leer). Dies ist der einzige Modus, der sich nicht durch K ausschalten lässt.
KKKKKK - Messung des Batterie-Innenwiderstands (Gleichstrom), allerdings inklusive der Kontaktwiderstände
Der DC-Innenwiderstand einer Zelle trifft eine wichtige Aussage darüber, wie 'hochstromfest' eine Zelle ist bzw. wie stark die Zellspannung unter Last einbricht. So bestimmt der Treiber auch den Innenwiderstand - allerings spielen hier auch die Kontaktwiderstände mit, und ich rate dazu, diese durch geeignete Maßnahmen zu reduzieren. Den Erfolg dieser Maßnahmen kann man dann ebenfalls messen.
Die Lampe leuchtet erst mal etwas über 10s rum, dann gibt sie den Innenwiderstand in Milliohm durch Blinken aus, z.B. 1*rot, 7*grün, 5*blau -> 175 mOhm.
Die Messung wird dauernd wiederholt, K zum Ausschalten.
Für die Messung muss die Batterie genug Spannung haben. Ist dies nicht der Fall, bricht der Treiber die Messung nach einigen Sekunden ab und signalisiert das durch ein schnelles rotes Blinken. Das kann auch bei recht vollen Zellen der Fall sein, wenn Innen- und/oder Kontakt-Widerstände zu hoch sind.
Auch hier gelten wieder die obigen Hinweise zur Genauigkeit.
Die letzteren Funktionen werde ich noch mal mehr testen, eine meiner älteren Zellen habe ich gerade durchlaufen lassen: 1.5Ah, klingt plausibel.