#include <Adafruit_NeoPixel.h>

#define TIME_NEXT  500          // Zeit in ms wo eine nach der anderen LED eingeschaltet wird
#define LED_RGB    14           // DIN von LED-Ring ist an GPIO 14 angeschlossen
#define NUM_PIXELS 16           // Anzahl der LEDs

Adafruit_NeoPixel led_ring(NUM_PIXELS, LED_RGB, NEO_GRB + NEO_KHZ800);

unsigned char r[16] = {0 ,0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
unsigned char g[16] = {255 ,255 , 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255};
unsigned char b[16] = {0 ,0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
unsigned char i;
unsigned int j = 0;
bool toggle = true;

void setup() {
  Serial.begin(115200);
  Serial.println("\n\n=========================================================");
  Serial.println("Copyright by: Anonymous 2023");
  Serial.println("=========================================================");
  led_ring.begin(); 
}

void loop() {
  led_ring.clear(); 

  j++; 
  Serial.print("\nRound "); Serial.print(j, DEC); Serial.print(": ");
  for(i = 0; i < NUM_PIXELS; i++) { 
    Serial.print(" "); Serial.print(i, DEC);
    if (toggle == true) {
      toggle = false;
      led_ring.setPixelColor(i, led_ring.Color(r[i], g[i], b[i]));
    } else {
      toggle = true;
      led_ring.setPixelColor(i, led_ring.Color(g[i], r[i], b[i]));

    }
    led_ring.show();   
    delay(TIME_NEXT);
  }
}