I'm initializing my strips as an array:
// Declare NeoPixel strip array:
Adafruit_NeoPixel strip[] = {
Adafruit_NeoPixel(LED_COUNT[0], LED_PIN[0], NEO_RGBW + NEO_KHZ800),
Adafruit_NeoPixel(LED_COUNT[1], LED_PIN[1], NEO_RGBW + NEO_KHZ800),
Adafruit_NeoPixel(LED_COUNT[2], LED_PIN[2], NEO_RGBW + NEO_KHZ800),
Adafruit_NeoPixel(LED_COUNT[3], LED_PIN[3], NEO_RGBW + NEO_KHZ800),
Adafruit_NeoPixel(LED_COUNT[4], LED_PIN[4], NEO_RGBW + NEO_KHZ800)
};
and when I pass Color to a function, I'm arbitrarily using my first strip to create the Color:
everyother( strip[0].Color( 0, 255, 0), strip[0].Color( 255, 0, 0), 500);
but in the subroutine I use those colors to set pixels to every strip of the array in a loop:
// set every other color to color1 or color2
void everyother( uint32_t color1, uint32_t color2, int wait) {
for(int k=0; k<NUM_STRIPS; k++) {
for( int j=0; j<LED_COUNT[k]; j++) {
if( j%2 == 0) strip[k].setPixelColor(j, color1);
else strip[k].setPixelColor(j, color2);
}
}
for(int k=0; k<NUM_STRIPS; k++) strip[k].show();
delay(wait);
}
Is there another way to define Color that isn't using a real Adafruit_NeoPixel? Yes, it works this way but it feels sloppy.