#include <FastLED.h>
#include <Button2.h>
#define BUTTON_PIN 14
#define LED_PIN 5
#define NUM_LEDS 1
#define BRIGHTNESS 255
#define LED_TYPE WS2812
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
bool button_up = true;
CRGB led_palette[10];
int color_index = 0;
Button2 button;
void keyLongClick(Button2& btn) {
unsigned int time = btn.wasPressedFor();
if (time > 1500) {
leds[0] = CRGB::Black;
FastLED.show();
}
}
void keyPressed(Button2& btn) {
leds[0] = led_palette[color_index];
FastLED.show();
color_index++;
if (color_index > 10)
color_index = 0;
}
void setup() {
Serial.begin(115200);
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
FastLED.setBrightness( BRIGHTNESS );
button.begin(BUTTON_PIN);
button.setLongClickHandler(keyLongClick);
button.setPressedHandler(keyPressed);
led_palette[0] = CRGB::Red;
led_palette[1] = CRGB::Green;
led_palette[2] = CRGB::Blue;
led_palette[3] = CRGB::AliceBlue;
led_palette[4] = CRGB::Aqua;
led_palette[5] = CRGB::BlueViolet;
led_palette[6] = CRGB::Chartreuse;
led_palette[7] = CRGB::DeepPink;
led_palette[8] = CRGB::FairyLight;
led_palette[9] = CRGB::MediumTurquoise;
}
void loop() {
button.loop();
delay(10); // this speeds up the simulation
}