#include <Adafruit_NeoPixel.h>
#include <Button.h>
#define LED_PIN 6
#define LED_COUNT 1
#define BUTTON_PIN 2
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
Button button(BUTTON_PIN);
int ledBrightness = 100;
float ledFrequency = 1.0;
unsigned long lastPressTime = 0;
void setup() {
strip.begin();
strip.show();
button.begin();
}
void loop() {
button.read();
if (button.pressed()) {
ledFrequency += 0.25;
if (ledFrequency > 2.0) ledFrequency = 1.0;
}
if (button.isPressed()) {
static uint32_t colors[] = {strip.Color(255, 128, 0), strip.Color(0, 128, 128), strip.Color(128, 0, 128)};
static int colorIndex = 0;
strip.setPixelColor(0, colors[colorIndex]);
strip.show();
colorIndex = (colorIndex + 1) % (sizeof(colors) / sizeof(colors[0]));
}
if (button.pressed() && millis() - lastPressTime >= 1000) {
lastPressTime = millis();
}
int delayTime = 1000 / (2 * ledFrequency);
strip.setPixelColor(0, strip.Color(ledBrightness, ledBrightness, ledBrightness));
strip.show();
delay(delayTime);
strip.setPixelColor(0, strip.Color(0, 0, 0));
strip.show();
delay(delayTime);
}