#include <Adafruit_NeoPixel.h>

#define TIME_NEXT  500          // Zeit in ms wo eine nach der anderen LED eingeschaltet wird
#define BUTTON     1            // Taster ist an GPIO 1 angeschlossen
#define LED_RGB    4            // DIN von LED-Ring ist an GPIO 4 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;

void setup() {
  pinMode(BUTTON, INPUT_PULLUP);// Taster als Eingang mit Pullup-Widerstand konfigurieren
  led_ring.begin(); 
}

void loop() {
  led_ring.clear(); 

  for(i = 0; i < NUM_PIXELS; i++) { 
    if (digitalRead(BUTTON) == HIGH) {
      led_ring.setPixelColor(i, led_ring.Color(r[i], g[i], b[i]));
    } else {
      led_ring.setPixelColor(i, led_ring.Color(g[i], r[i], b[i]));
    }
    led_ring.show();   
    delay(TIME_NEXT);
  }
}