hey thank you alot! I made it work
. One question I have is,how can I substract 1 minute from every timer in my array. I dont seem to be able to make a for loop work.
and if I want to handle 100 LED's at once its annoing to copy every line.
#include <Adafruit_NeoPixel.h>
#define PIN 6
Adafruit_NeoPixel strip = Adafruit_NeoPixel(19 , PIN, NEO_GRB + NEO_KHZ800); // Anzahl pixel
//Array
int i;
int ledTimers[19];
// Button
const int buttonPin = 9; // Buttonpin
int buttonState;
int lastButtonState = HIGH;
// Debounce
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;
// Farben
uint32_t blue = strip.Color(0, 0, 255); //Blau
uint32_t red = strip.Color(255, 0,0); //ROT
uint32_t green = strip.Color(0, 255, 0); // GrĂźn
uint32_t orange = strip.Color(255, 168, 0); //ORANGE
uint32_t black = strip.Color(0, 0, 0); // Ausschalten der LED's
int zeitorange;
int zeitrot;
//Timer ablaufen
unsigned long previousMillis = 0;
const long interval = 100;
//Setup
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
strip.begin(); //initialisieren
strip.setBrightness(20); //Golbale Helligkeit
strip.show(); // Alles aus
i=-1;
zeitrot = 2000;
zeitorange = 5000;
}
void loop()
{
//Knopfdruck
int reading = digitalRead(buttonPin);
if (reading != lastButtonState) {lastDebounceTime = millis(); }
if ((millis() - lastDebounceTime) > debounceDelay) {
if (reading != buttonState) {
buttonState = reading;
if (buttonState == HIGH) {i++;
if(i>19){i=0;}
strip.setPixelColor(i, green);
ledTimers[i]=10000;
strip.show();
}
}
}
//Ablauf der Timer
unsigned long currentMillis = millis();
if(currentMillis-previousMillis>= interval){
previousMillis=currentMillis;
if(ledTimers[0] > 0){
ledTimers[0]=ledTimers[0] - interval;}
if(ledTimers[1] > 0){
ledTimers[1]=ledTimers[1] - interval;}
if(ledTimers[2] > 0){
ledTimers[2]=ledTimers[2] - interval;}
if(ledTimers[3] > 0){
ledTimers[3]=ledTimers[3] - interval;}
if(ledTimers[4] > 0){
ledTimers[4]=ledTimers[4] - interval;}
if(ledTimers[5] > 0){
ledTimers[5]=ledTimers[5] - interval;}
if(ledTimers[6] > 0){
ledTimers[6]=ledTimers[6] - interval;}
if(ledTimers[7] > 0){
ledTimers[7]=ledTimers[7] - interval;}
if(ledTimers[8] > 0){
ledTimers[8]=ledTimers[8] - interval;}
if(ledTimers[9] > 0){
ledTimers[9]=ledTimers[9] - interval;}
if(ledTimers[10] > 0){
ledTimers[10]=ledTimers[10] - interval;}
if(ledTimers[11] > 0){
ledTimers[11]=ledTimers[11] - interval;}
if(ledTimers[12] > 0){
ledTimers[12]=ledTimers[12] - interval;}
if(ledTimers[13] > 0){
ledTimers[13]=ledTimers[13] - interval;}
if(ledTimers[14] > 0){
ledTimers[14]=ledTimers[14] - interval;}
if(ledTimers[15] > 0){
ledTimers[15]=ledTimers[15] - interval;}
if(ledTimers[16] > 0){
ledTimers[16]=ledTimers[16] - interval;}
if(ledTimers[17] > 0){
ledTimers[17]=ledTimers[17] - interval;}
if(ledTimers[18] > 0){
ledTimers[18]=ledTimers[18] - interval;}
if(ledTimers[0]<=zeitorange){
strip.setPixelColor(0, orange); }
if(ledTimers[1]<=zeitorange){
strip.setPixelColor(1, orange); }
if(ledTimers[2]<=zeitorange){
strip.setPixelColor(2, orange);}
if(ledTimers[3]<=zeitorange){
strip.setPixelColor(3, orange);}
if(ledTimers[4]<=zeitorange){
strip.setPixelColor(4, orange);}
if(ledTimers[5]<=zeitorange){
strip.setPixelColor(5, orange); }
if(ledTimers[6]<=zeitorange){
strip.setPixelColor(6, orange);}
if(ledTimers[7]<=zeitorange){
strip.setPixelColor(7, orange);}
if(ledTimers[8]<=zeitorange){
strip.setPixelColor(8, orange);}
if(ledTimers[9]<=zeitorange){
strip.setPixelColor(9,orange);}
if(ledTimers[10]<=zeitorange){
strip.setPixelColor(10, orange); }
if(ledTimers[11]<=zeitorange){
strip.setPixelColor(11, orange);}
if(ledTimers[12]<=zeitorange){
strip.setPixelColor(12, orange);}
if(ledTimers[13]<=zeitorange){
strip.setPixelColor(13, orange);}
if(ledTimers[14]<=zeitorange){
strip.setPixelColor(14, orange);}
if(ledTimers[15]<=zeitorange){
strip.setPixelColor(15, orange);}
if(ledTimers[16]<=zeitorange){
strip.setPixelColor(16, orange);}
if(ledTimers[17]<=zeitorange){
strip.setPixelColor(17, orange);}
if(ledTimers[18]<=zeitorange){
strip.setPixelColor(18, orange);}
if(ledTimers[0]<=zeitrot){
strip.setPixelColor(0, red); }
if(ledTimers[1]<=zeitrot){
strip.setPixelColor(1, red); }
if(ledTimers[2]<=zeitrot){
strip.setPixelColor(2, red);}
if(ledTimers[3]<=zeitrot){
strip.setPixelColor(3, red);}
if(ledTimers[4]<=zeitrot){
strip.setPixelColor(4, red);}
if(ledTimers[5]<=zeitrot){
strip.setPixelColor(5, red); }
if(ledTimers[6]<=zeitrot){
strip.setPixelColor(6, red);}
if(ledTimers[7]<=zeitrot){
strip.setPixelColor(7, red);}
if(ledTimers[8]<=zeitrot){
strip.setPixelColor(8, red);}
if(ledTimers[9]<=zeitrot){
strip.setPixelColor(9, red);}
if(ledTimers[10]<=zeitrot){
strip.setPixelColor(10, red); }
if(ledTimers[11]<=zeitrot){
strip.setPixelColor(11, red);}
if(ledTimers[12]<=zeitrot){
strip.setPixelColor(12, red);}
if(ledTimers[13]<=zeitrot){
strip.setPixelColor(13, red);}
if(ledTimers[14]<=zeitrot){
strip.setPixelColor(14, red);}
if(ledTimers[15]<=zeitrot){
strip.setPixelColor(15, red);}
if(ledTimers[16]<=zeitrot){
strip.setPixelColor(16, red);}
if(ledTimers[17]<=zeitrot){
strip.setPixelColor(17, red);}
if(ledTimers[18]<=zeitrot){
strip.setPixelColor(18, red);}
if(ledTimers[0]<=0){
strip.setPixelColor(0, black); }
if(ledTimers[1]<=0){
strip.setPixelColor(1, black); }
if(ledTimers[2]<=0){
strip.setPixelColor(2, black);}
if(ledTimers[3]<=0){
strip.setPixelColor(3, black);}
if(ledTimers[4]<=0){
strip.setPixelColor(4, black);}
if(ledTimers[5]<=0){
strip.setPixelColor(5, black); }
if(ledTimers[6]<=0){
strip.setPixelColor(6, black);}
if(ledTimers[7]<=0){
strip.setPixelColor(7, black);}
if(ledTimers[8]<=0){
strip.setPixelColor(8, black);}
if(ledTimers[9]<=0){
strip.setPixelColor(9, black);}
if(ledTimers[10]<=0){
strip.setPixelColor(10, black); }
if(ledTimers[11]<=0){
strip.setPixelColor(11, black);}
if(ledTimers[12]<=0){
strip.setPixelColor(12, black);}
if(ledTimers[13]<=0){
strip.setPixelColor(13, black);}
if(ledTimers[14]<=0){
strip.setPixelColor(14, black);}
if(ledTimers[15]<=0){
strip.setPixelColor(15, black);}
if(ledTimers[16]<=0){
strip.setPixelColor(16, black);}
if(ledTimers[17]<=0){
strip.setPixelColor(17, black);}
if(ledTimers[18]<=0){
strip.setPixelColor(18, black);}
strip.show();
}
lastButtonState = reading;
}