#include <Adafruit_NeoPixel.h>
int Power = 11; // Power pin for the NeoPixel
int PIN = 12; // Data pin for the NeoPixel
#define NUMPIXELS 1
int buttonPin = D1; // Pin D1 connected to the button
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pixels.begin();
pinMode(Power, OUTPUT);
digitalWrite(Power, HIGH);
pinMode(buttonPin, INPUT_PULLUP); // Use internal pull-up resistor to avoid floating state
}
void loop() {
if (digitalRead(buttonPin) == HIGH) {
// Button is pressed, set color to white
pixels.clear();
pixels.setPixelColor(0, pixels.Color(255, 255, 255)); // White color
pixels.show();
delay(500);
} else {
// Cycle between red, green and blue
pixels.clear();
pixels.setPixelColor(0, pixels.Color(0, 255, 0)); // Green color
pixels.show();
delay(500);
pixels.clear();
pixels.setPixelColor(0, pixels.Color(0, 0, 255)); // Blue color
pixels.show();
delay(500);
pixels.clear();
pixels.setPixelColor(0, pixels.Color(255, 0, 0)); // Red color
pixels.show();
delay(500);
}
}