#include <Adafruit_NeoPixel.h>
#include <TimerOne.h>
#define RING_PIN 4
#define NUMPIXELS 16
#define BUTTON_PIN 3
#define TIMEOUT 1000000 //1 sek
#define POTI_PIN A2
#define PHOTORES_PIN A1
Adafruit_NeoPixel pixels(NUMPIXELS, RING_PIN, NEO_GRB + NEO_KHZ800);
volatile bool debounceActive = false;
volatile bool ledState = false;
void setup() {
Serial.begin(9600);
pixels.begin();
pixels.clear(); //
pixels.show(); //sicherstellen, dass LED aus
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(POTI_PIN, INPUT);
pinMode(PHOTORES_PIN, INPUT);
attachInterrupt(digitalPinToInterrupt(BUTTON_PIN),buttonInterrupt, FALLING);
Timer1.attachInterrupt(timerInterrupt);
Timer1.initialize(TIMEOUT);
}
void buttonInterrupt(){
if (!debounceActive){
Timer1.start();
debounceActive=true;
}
}
void timerInterrupt(){
Timer1.stop();
toggle();
debounceActive=false;
}
void toggle(){
ledState=!ledState;
if (ledState){
pixels.clear();
}
pixels.show();
}
void changeBrightness(){
int brightness = map(analogRead(PHOTORES_PIN), 8, 1016, 255, 80);
pixels.setBrightness(brightness);
pixels.show();
}
void loop() {
}