como inhibir bucle for

hola a todos:
he vuelto a retomar el tema de arduino después de 3 años por motivos de trabajo y salud no pude continuar.
he empezado desde cero y estoy programando un reloj con un display lcd keypad shield.
bueno el motivo es que a la hora de cambiar la hora con los botones no me deja hacerlo hasta que acaba el bucle no me deja cambiarlo.
la pregunta es como inhibo el bucle for en el momento que pulso cualquiera de los botones.
gracias por vuestra colaboración.

pongo la parte del programa donde creo que tengo el problema.

void loop(){

int i = 0;
int x;
x = analogRead (A0);

     if (x < 100){
       
          mu = mu + 1;
          delay (500);
        }

     else if (x < 2000) {

        for (i=0;i<=9;i++) {
          lcd.setCursor(15,1);
          lcd.print(i);
          delay(1000); 
  
        }


}

Bueno si vas a empezar de cero olvida el uso de delay.
Cada vez que usas delay el programa se detiene ese tiempo y entonces tu no puedes cambiar nada.

Que lo reemplaza? millis().
Como se usa? Vas a Documentación => Indice de temas tutoriales => millis() y de paso lee Maquiina de estados porque te hará falta.

gracias lo miro y lo pruebo

Gracias lo probé y funciona.
Pero tengo una duda
Cuántas veces puedo usar la opción millis?
Lo pregunto porque puedo realizar varias veces las condiciones de millis o solo permite una?

Gracias

Las veces que quieras pero siempre contra otra variable. De ese modo puedes tener muchos procesos diferentes que se accionan/apagan dando la sensacion de simultaneidad. Es lo mejor que tenemos para simular una pseudomultitarea.

Gracias lo pruebo con otro programa