#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();
}