mantener pulsado un interruptor y que realice una función

Hola a todos!!

Soy nuevo en el foro y también utilizando arduino, llevo poco tiempo con él.

Me he encontrado con un problema que no soy capaz de solucionar, a ver si a alguien se le ocurre alguna forma.

Simplemente lo que me gustaría hacer es que al mantener pulsado un interruptor durante varios segundos (un par de segundos por ejemplo) llame a una función para que se reinicie un programa que estoy realizando, a priori no debería de parecer muy difícil, pero no consigo dar con la solución.

Muchas gracias de antemano.

Un cordial saludo

Hola amigo Bienvenido al foro.
Claro que si se puede hacer, investiga sobre la función Blink Whitout Delay. Con esta función haces uso de millis() y con ello puedes sensar o calcular el tiempo transcurrido y al cabo de por ejemplo 3 segundos presionando un pulsador puedes ejecutar o llamar a la función que tu desees.

Saludos.

Muchas gracias carlosjq10, ya he conseguido solucionarlo utilizando millis().

Pongo por aquí lo que yo he realizado por si a alguien más le puede ayudar:

long previousMillis = 0;
// Intervalo de tiempo que queremos que se mantenga presionado el botón
long interval = 4000;

const int switchPin = 6;

void setup() {
  pinMode(switchPin, INPUT);
}

void loop() {

  switchState = digitalRead(switchPin);
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis > interval) {
    previousMillis = currentMillis;
    
    if (switchState == HIGH) {
      //Función que queremos que haga cuando se mantenga pulsado el botón
      funcionARealizar();
    }
  }
}

;D ;D

Un saludo