#include <Adafruit_NeoPixel.h>

#define DIN_PIN 6
#define NUM_PIXELS 8

Adafruit_NeoPixel pixels(NUM_PIXELS, DIN_PIN);

int32_t colors[] = {
  pixels.Color(255, 0, 0), //rosso
  pixels.Color(255, 255, 0), //giallo
  pixels.Color(0, 255, 0),//verde
  pixels.Color(0, 255, 255), //celeste
  pixels.Color(0, 0, 255), //blu
  pixels.Color(255, 0, 255), //viola
  
};
int numColors = sizeof(colors) / sizeof(int32_t); //calcola la variabile numcolors che definisce il numero di colori
int index = 0;

void setup() {
  Serial.begin(9600);
  pixels.begin();
  pixels.setBrightness(128);
  pixels.clear();
  pixels.show();
  Serial.println (numColors);
}

void loop() {
  for (int color = 0; color < numColors; color++) {
    for (int pixel = 0; pixel < NUM_PIXELS; pixel++) {
      index = pixel;
      if (color % 2 != 0) {
        index = NUM_PIXELS - 1 - index;
      }
      pixels.clear();
      pixels.setPixelColor(index, colors[color]);
      pixels.show();
      int ritardo;
      ritardo = random(50,200);
      delay(ritardo);
      Serial.println(ritardo);
    }
  }
}