Alternative für Delay ?

Hallo zusammen,

folgenden Programmcode habe ich mir bis jetzt zusammengetippelt :

#include <Bounce.h>

int colPin1 = 11;
int colPin2 = 10;
int colPin3 = 9;
int colPin4 = 8;

int rowPin1 = 7;
int rowPin2 = 6;
int rowPin3 = 5;

int buttonPin = 2;
int counter = 0;
Bounce bouncer = Bounce(buttonPin,5);

void setup() {

pinMode(colPin1, OUTPUT);
pinMode(colPin2, OUTPUT);
pinMode(colPin3, OUTPUT);
pinMode(colPin4, OUTPUT);


pinMode(rowPin1, OUTPUT);
pinMode(rowPin2, OUTPUT);
pinMode(rowPin3, OUTPUT);

}

void loop(){
  
if(bouncer.update())
{
  if(bouncer.read()==HIGH)
  {
    counter++;
  }
}
counter = counter %3;

  
if (counter == 0)
{
  digitalWrite(colPin1, LOW);    //
  digitalWrite(colPin2, LOW);
  digitalWrite(colPin3, LOW);
  digitalWrite(colPin4, LOW);

  digitalWrite(rowPin1, HIGH);
  digitalWrite(rowPin2, HIGH);
  digitalWrite(rowPin3, HIGH);

}



else if (counter ==1)
{
  digitalWrite(colPin1, LOW);    //
  digitalWrite(colPin2, LOW);
  digitalWrite(colPin3, HIGH);
  digitalWrite(colPin4, HIGH);

  digitalWrite(rowPin1, HIGH);
  digitalWrite(rowPin2, HIGH);
  digitalWrite(rowPin3, HIGH);
  
  

  
}

else if (counter == 2 )
{

  digitalWrite(colPin1, LOW);    //1
  digitalWrite(colPin2, LOW);
  digitalWrite(colPin3, LOW);
  digitalWrite(colPin4, LOW);

  digitalWrite(rowPin1, LOW);
  digitalWrite(rowPin2, LOW);
  digitalWrite(rowPin3, LOW);


}
}

Im Grunde macht die 4x3 LED Matrix was Sie soll ( Ich habe diese bis jetzt ohne Schieberegister oder einem Multiplexer laufen, das kommt aber noch ). Wenn ich meinen Taster betätige schalten sich die verschiedene Zustände ein. Wenn ich jetzt aber ein wenig mit der delay() Funktion arbeite und das Programm ja somit pausiert wird, kann der Tasteninput ja nichtmehr erfasst werden, da es aber so schön aussieht und ich die LEDs zum blinken bewegen möchte, hier meine Frage :

Welche gute Alternative gibt es für die delay() Funktion, damit dass auch mit dem switchen weiterhin so schön klappt :slight_smile:

Grüße

Die Alternative zu delay() sind millis(), das Beispielprogramm findest du als BlinkWithoutDelay in den Beispielen.
Hier bitte schließen, du hast doch schon einen Thread zu deinem Sketch geöffnet... ]:slight_smile:

Wundervoll hab's auch gerade gefunden.Danke!