Problema con delay

Quiero activar una salida digital durante cinco segundos, y que mientras este activada la salida me lea una entrada digital al mismo tiempo

Es el pan de cada dia....
Ve a documentacion y mirate los post que tratan sobre millis()

Hola

Yo usaría un timer para que cada x tiempo leyera lo que necesitas controlar.

Evidentemente los timers y los delay no cuadran bien, por lo que, tal como comenta RIG, usaría una función que sustituya al delay mediante un bucle while con millis(), que controle los 5 segundos (millis() realmente mide milisegundos), mientras el timer realiza las funciones de lectura que tengas asignadas de forma independiente.

Espero que este aporte te ayude.