ich übe gerade mit der FastLED Bibliothek und einem WS2812B 24 LED Ring.
Nun gibt es dort viele fertige Farbpaletten. z.B. OceanColors_p oder CloudColors_p
Wie kann ich das in die fertigen Beispiele einbinden?
void sinelon()
{
// a colored dot sweeping back and forth, with fading trails
fadeToBlackBy( leds, NUM_LEDS, 20);
int pos = beatsin16(13,0,NUM_LEDS);
leds[pos] += CHSV( gHue, 255, 192);
}
Hier werden ja alle Farben verwendet, wie kann ich nur die Farben einer Palette benutzen?
Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
So ist er auch auf portablen Geräten lesbar. Das kannst Du auch noch nachträglich ändern.
Es ist außerdem besserm kompletten kompilierfähigen Code einzustellen.
Um nicht immer irgendwo im Code suchen zu müssen oder wenn man während der laufzeit die Palette wechseln möchte, kann man sich auch eine Variable anlegen und die immer wieder neu befüllen.
Sieh dir dazu dann das "Colorpalette" Example von FastLED an.
ich bin jetzt schon etwas weiter. Die LEDs bestehen aus einem 24Bit Ring und einem 7bit Spot.
Zusammen funktioniert es ganz gut. Habe den Spot mit dem Eingang an den Ring am Ausgang angeschlossen. Nun möchte ich aber die LEDs 25-31 separat ansteuern.
Wie muss das gemacht werden?
#include "FastLED.h"
#if FASTLED_VERSION < 3001000
#error "Requires FastLED 3.1 or later; check github for latest code."
#endif
#define DATA_PIN 4
#define LED_TYPE WS2811
#define COLOR_ORDER RGB
#define NUM_LEDS 31
CRGB leds[NUM_LEDS];
#define BRIGHTNESS 200
#define FRAMES_PER_SECOND 120
void setup() {
delay(3000); // 3 second delay for recovery
// tell FastLED about the LED strip configuration
FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
//FastLED.addLeds<LED_TYPE,DATA_PIN,CLK_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
FastLED.setBrightness(BRIGHTNESS);
}
uint8_t gHue = 0; // rotating "base color" used by many of the patterns
void loop()
{
// random colored speckles that blink in and fade smoothly
CRGBPalette16 palette = CloudColors_p;
fadeToBlackBy( leds, 31, 10);
int pos = random16(31);
leds[pos] = ColorFromPalette(palette, gHue+random8(64), 255);
FastLED.show();
FastLED.delay(2000/FRAMES_PER_SECOND);
EVERY_N_MILLISECONDS( 60 ) { gHue++; } // slowly cycle the "base color" through the rainbow
}