Hallo,
wie gehe ich am Besten vor, wenn ich LEDs anhand einer Tabelle definierte Helligkeitswerte zuweisen möchte, ich aber ausschließlich mit CRGB-Arrays arbeite?
Wenn ich per for-Schleife und..
luma[i] = leds[i].getLuma();
..die Helligkeitswerte der einzelnen LEDs ausgelesen habe weiss ich nicht, wie ich diese Werte durch die in der o.a. Helligkeitstabelle hinterlegten Werte ersetzen kann, um den einzelnen LEDs einen angepassten Helligkeitsverlauf zu geben. Das arbeiten in RBG scheint hierbei nicht zweckmäßig zu sein.
Die Helligkeitstabelle soll aus einem Byte-Array bestehen und den Helligkeitsverlauf der LEDs anpassen, da mir die Helligkeitsverteilung momentan noch nicht homogen genug ist.
Mit napplyGamma_video aus der FastLED-Library bin ich zu keinen brauchbaren Ergebnissen gekommen, wobei ich hierbei nicht ausschließen möchte, dass ich hierbei das Problem war.
Gruß Chris
Wenn Du FastLED Funktionen nutzen möchtest, dann diese:
CRGB applyGamma_video (const CRGB &orig, float gamma)
oder diese:
CRGB applyGamma_video (const CRGB &orig, float gammaR, float gammaG, float gammaB)
Oder so für alle LEDs (ohne Schleife, count = NUM_LEDS):
void napplyGamma_video (CRGB *rgbarray, uint16_t count, float gamma)
void napplyGamma_video (CRGB *rgbarray, uint16_t count, float gammaR, float gammaG, float gammaB)
Wenn Du eine eigene Tabelle nutzen möchtest, dann schau Dir nochmal das Beispiel an, welches ich Dir im FastLED Forum geschickt habe. Tabelle gamma_curve definieren und dann
for (int i = 0; i < NUM_LEDS; i++) {
leds[i].r = gamma_curve[leds[i].r];
leds[i].g = gamma_curve[leds[i].g];
leds[i].b = gamma_curve[leds[i].b];
}
Bei Bedarf 3 Tabellen verwenden, um R, G und B einzeln einzustellen.
Gruß, Helmuth
1000 Dank! Werds ausprobieren. 
Gruß Chris
Gamma 2.2 funktioniert meist ganz gut...