Wir benutzen keine sketche, bei uns ist das ein normales C Programm, welches in einer main() ist.
// LED init
NeoPixelBegin(nLED); //Anzahl nLED z.B 10
setBrightness(bright); //hier wird die Helligkeit gesetzt
setColor(); // hier werden die Farben der jeweiligen LEDs gesetzt
NeoPixelShow();
und die setColor() funktion schaut wie folgt aus:
void setColor() {
switch(colorMode) { // Verschiedene Farbmodis
case 0:
rgb[0] = 255;
rgb[1] = 0;
rgb[2] = 0;
break;
case 1:
rgb[0] = 0;
rgb[1] = 255;
rgb[2] = 0;
break;
case 2:
rgb[0] = 0;
rgb[1] = 0;
rgb[2] = 255;
break;
case 3:
rgb[0] = 255;
rgb[1] = 255;
rgb[2] = 255;
break;
default:
rgb[0] = 0;
rgb[1] = 0;
rgb[2] = 0;
break;
}
/* Setzen der LEDs */
int i = 0;
for(i; i < nLED; i++) {
setPixelColor(i, rgb[0], rgb[1], rgb[2]);
}
}
und die setPixelColor(arg..) schaut so aus:
void setPixelColor(
uint16_t n, uint8_t r, uint8_t g, uint8_t b) {
if(n < numLEDs) {
if(brightness) { // See notes in setBrightness()
r = (r * brightness) >> 8;
g = (g * brightness) >> 8;
b = (b * brightness) >> 8;
}
uint8_t *p;
if(wOffset == rOffset) { // Is an RGB-type strip
p = &pixels[n * 3]; // 3 bytes per pixel
} else { // Is a WRGB-type strip
p = &pixels[n * 4]; // 4 bytes per pixel
p[wOffset] = 0; // But only R,G,B passed -- set W to 0
}
p[rOffset] = r; // R,G,B always stored
p[gOffset] = g;
p[bOffset] = b;
}
}