Blinken mit array's

Hallo Community

Ich habe eine Frage. Und zwar möchte ich ein blinkendes OLicht haben, das bis zum Schluss, also wenn mein Projekt fertig ist läuft.
ich kann aber leider kein delay benutzen deshalb habe ich mich für diese Methode entschieden

void Blink(int Channel){
SystemZeit = millis();
if (SystemZeit - previousMillis >= interval){
previousMillis = SystemZeit;

if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}

digitalWrite(LED_Rot[Channel],ledState);
digitalWrite(VacVentil[Channel],LOW); ausgeschalten
}
}
Dies funktioniert soweit auch bei einem Abteil. Leider habe ich aber 10.

Ich wollte euch deshalb fragen, ob es eine andere Möglichkeit gibt, ein blinken zu machen, dass funktioniert wenn ein Array vorhanden ist.

Behalten Sie auch ein Array von previousMillis[Channel]

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

Ein ArrayBlinker aus meiner Wühlkiste:

class  Blinker
{
  protected:
  const byte pin;
  const unsigned long interval;
  unsigned long timestamp;

  public:
  Blinker(const byte pin,const unsigned long interval):pin(pin),interval(interval),timestamp(0){}
 
   void begin() const
   {
     pinMode(pin,OUTPUT);
   }
 
   void run()
   {
     unsigned long systemZeit = millis();
     if (systemZeit - timestamp >= interval)
     {
        timestamp = systemZeit;
        digitalWrite(pin,not digitalRead(pin)); 
     }
   }  
};

Blinker feld[] { /* {pin,interval} */
                 {13,500},
                 {12,333},
                 {11,567},
               };

void setup() 
{
  for(Blinker &b:feld) b.begin();
}

void loop() 
{
  for(Blinker &b:feld) b.run();
}