Tiozes,
No tienes que utilizar delay(), sino usar variables para compararlas con el tiempo que lleva arduino encendido, de esta forma puedes decidir cuando mostrar el siguiente número en tu LCD sin parar el código.
ejemplo:
Var A = millis() --> Guarda en A el tiempo actual (en milisegundos)
...
...
if (millis() >= A+1000) --> esto se puede leer como: "Si ha pasado un segundo entonces"
{
*** representa el siguiente numero ***
A = millis() ---> vuelves a guardar el nuevo “tiempo” para el próximo chequeo
}
Lógicamente lo que te he puesto no es código... sino para que se entienda.
No he leído todo tu código, pero supongo que tendrás que modificarlo bastante para que te funcione. En un sistema de alarma no puedes utilizar ni un solo delay() porque podría dar la casualidad de que en ese justo segundo pase algo de lo que te quieras enterar... ![]()
Un Saludo