#include <Adafruit_NeoPixel.h>

#define LED_PIN 12
#define NUM_LEDS 16
#define BUTTON_PIN 16

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
int currentColor = 0;

void setup() {
  strip.begin();
  strip.show();
  pinMode(BUTTON_PIN, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(BUTTON_PIN) == LOW) {
    currentColor++;
    if (currentColor > 2) {
      currentColor = 0;
    }
    switch (currentColor) {
      case 0:
        setColor(strip.Color(255, 0, 0)); // Red
        break;
      case 1:
        setColor(strip.Color(0, 255, 0)); // Green
        break;
      case 2:
        setColor(strip.Color(0, 0, 255)); // Blue
        break;
    }
    delay(500); // Debounce delay
  }
}

void setColor(uint32_t color) {
  for (int i = 0; i < NUM_LEDS; i++) {
    strip.setPixelColor(i, color);
  }
  strip.show();
}
$abcdeabcde151015202530fghijfghij
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT