#include <Adafruit_NeoPixel.h>
#define NUM_ROWS 8 // Total number of rows
#define NUM_LEDS_PER_ROW 64 // Number of LEDs in each row
Adafruit_NeoPixel strips[NUM_ROWS] = {
Adafruit_NeoPixel(NUM_LEDS_PER_ROW, 0, NEO_GRB + NEO_KHZ800),
Adafruit_NeoPixel(NUM_LEDS_PER_ROW, 1, NEO_GRB + NEO_KHZ800),
Adafruit_NeoPixel(NUM_LEDS_PER_ROW, 2, NEO_GRB + NEO_KHZ800),
Adafruit_NeoPixel(NUM_LEDS_PER_ROW, 3, NEO_GRB + NEO_KHZ800),
Adafruit_NeoPixel(NUM_LEDS_PER_ROW, 4, NEO_GRB + NEO_KHZ800),
Adafruit_NeoPixel(NUM_LEDS_PER_ROW, 5, NEO_GRB + NEO_KHZ800),
Adafruit_NeoPixel(NUM_LEDS_PER_ROW, 6, NEO_GRB + NEO_KHZ800),
Adafruit_NeoPixel(NUM_LEDS_PER_ROW, 7, NEO_GRB + NEO_KHZ800)
};
uint32_t colors[] = {
Adafruit_NeoPixel::Color(0xb6, 0xe4, 0x30), // Color 1
Adafruit_NeoPixel::Color(0x42, 0xd1, 0xe0), // Color 2
};
int colorCount = sizeof(colors) / sizeof(colors[0]);
void setup() {
for(int i = 0; i < NUM_ROWS; i++) {
strips[i].begin();
strips[i].show(); // Initialize all pixels to 'off'
}
}
void loop() {
static int pixelIndex = 0;
static int colorIndex = 0;
for(int i = 0; i < NUM_ROWS; i++) {
strips[i].setPixelColor(pixelIndex, colors[colorIndex]);
strips[i].show();
}
pixelIndex++;
if (pixelIndex == NUM_LEDS_PER_ROW) {
pixelIndex = 0;
colorIndex = (colorIndex + 1) % colorCount; // Cycle through the colors
}
delay(10);
}