Como usar un temporizador

Hola amigos otra vez yo.

Tengo una duda, como hago para poner un temporizador para contar un tiempo para que me apague una salida, pero sin usar delay que detiene la ejecucion del programa, por que mientras cuenta ese tiempo nesecito usar otros botones para otras cosas.

Osea que mientras ejecute dos cosas tiempo y fuciones con botones

Gracias por su ayuda saludos.

Ve a Documentación, luego primero hilo ïndice de temas tutoriales y enseguia leerás millis(). Esa es tu solución.

de mestra una pincelada

unsigned long tiempo0=0; // inicializamos la variable a 0
unsigned long tiempo1=5000; //periodo establecido para el tiempo
void setup() {
 pinMode(1,OUTPUT); 
  digitalWrite(1, HIGH);
}

void loop()
{
unsigned int transcurrido = millis();

if (transcurrido - tiempo0 >= tiempo1) {
  
    tiempo0 = transcurrido;  //guarda el tiempo actual como referencia
     digitalWrite(1, LOW);
Serial.println("apagando");
    
    }
}