apagado de dos leds aleatorios

Tengo 5 leds y se encienden 2 a la vez aleatoriamente durante un tiempo, pongamos 2’’, se apagan y se encienden otros dos.
Cada led tiene un botón asociado, por así decir, con el que puedo apagar el led antes de que pase el tiempo de encendido.
¿Como hacer para que se me apaguen los leds y poder medir el tiempo que he tardado en hacerlo?.
Creía que lo tenia solucionado pero me he dado cuenta que si no apago los led en el orden que se encienden no me funciona correctamente el programa y no se como solucionarlo, tendrían que apagarse al pulsar los botones de los leds encendidos dando igual cual apagase primero.
Pongo como lo había pensado el programa

digitalWrite(i, HIGH);   //i es el numero aleatorio generado por el que se enciende el led
              digitalWrite(j, HIGH);   //j es el numero aleatorio generado por el que se enciende el led
              switch (i)
              {
                case 22:  //22 es la salida digital donde esta conectado un led y asi hasta la 26, los 5 leds en total
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton1)) 
                     {
                        break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 23:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton2)) 
                     {
                      break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 24:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton3)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 25:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton4)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 26:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton5)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
              }
              digitalWrite(i, LOW);
              if(tiempoTranscurrido<TIEMPOENCENDIDO) 
              {
                buenos++;
                Serial.print("Pulsado boton tras ");
                Serial.print(tiempoTranscurrido);
                Serial.println(" milisegundos");
                tiempT = tiempT + tiempoTranscurrido;
              } 
              else 
              {
                malos++;
                tiempT = tiempT + TIEMPOENCENDIDO;
                Serial.println("Transcurrieron los dos segundos sin pulsar.");
              }

                
//              digitalWrite(j, HIGH);
              switch (j)
              {
                case 22:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton1)) 
                     {
                        break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 23:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton2)) 
                     {
                      break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 24:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton3)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 25:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton4)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 26:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton5)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
              }
//              digitalWrite(i, LOW);
              digitalWrite(j, LOW);
              if(tiempoTranscurrido<TIEMPOENCENDIDO) 
              {
                buenos++;
                Serial.print("Pulsado boton tras ");
                Serial.print(tiempoTranscurrido);
                Serial.println(" milisegundos");
                tiempT = tiempT + tiempoTranscurrido;
              } 
              else 
              {
                malos++;
                tiempT = tiempT + TIEMPOENCENDIDO;
                Serial.println("Transcurrieron los dos segundos sin pulsar.");
              }
            }

El problema es que se me queda dentro de los bucles do-while, entonces si pulso el botón del j antes que del i, no es real. Según el programa tengo que pulsar primero el del i y luego el del j para que funcione bien, pero yo espero que funcione dando igual cual de los dos pulse antes.

No se si me he explicado bien, y alguien me puede ayudar.
De todas formas gracias.

y pq no pones todo el código?

No tengo problemas para poner todo el código, es porque no se hiciera tan pesado, pero lo pongo ahora mismo.

//le pasamos a la función el nº de veces que queremos que se enciendan los led "veces", los led que queremos que se enciendan a la vez "ledsim"
void entrenamiento2(int veces, int ledsim, unsigned long TIEMPOENCENDIDO, unsigned long TIEMPOAPAGADO)
{
       
    lcd.clear();
    randomSeed(analogRead(0));  //para generar una nueva semilla para la funcion random

  while (1)
  {   
    estado = digitalRead(on_off);    //Comprobamos el estado
  
    if (estado && anterior == 0)     // Comprobamos si el anterior era sin pulsar y el estado actual es pulsado
    {
  
      encender = 1 - encender;       // Asignamos el estado contrario
      delay(30);                     // Anti-rebote
      ver = 0;
      buenos = 0;
      malos = 0;
      tiempT = 0;
    }
    anterior = estado;    
    if(encender && ver < veces)
    {
      switch (ledsim)
        {
          case 2: // DOS ENCENDIDOS SIMULTANEOS
            apagadoi = 1;
            apagadoj = 1;
            i = random(22,27);
            do
              j = random(22,27);  
            while (j==i);
            break;
          case 3:  // TRES ENCENDIDOS SIMULTANEOS
            i = random(22,27);
            do 
              j = random(22,27);
            while (j==i);
            do
              k = random(22,27);
            while (k == i || k == j);
            break;
          case 4:  // CUATRO ENCENDIDOS SIMULTANEOS
             i = random(22,27);
            do 
              j = random(22,27);
            while (j==i);
            do
              k = random(22,27);
            while (k == i || k == j);
            do 
              h = random(22,27);
            while (h == i || h == j || h == k);
            break;
        }
      
        unsigned long tiempoInicio=millis();
        unsigned long tiempoTranscurrido;
        switch (ledsim)
          {
            case 2:
            {
              digitalWrite(i, HIGH);
              digitalWrite(j, HIGH);
             do
             {
              if (apagadoi)
              {
                switch (i)
                {
                  case 22:
                    do 
                    {
                       tiempoTranscurrido=millis()-tiempoInicio;
                       if (digitalRead(boton1)) 
                       {
                          digitalWrite(i, LOW);
                          apagadoi = 0;
                          break;
                       }
                     } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                     break;
                  case 23:
                    do 
                     {
                       tiempoTranscurrido=millis()-tiempoInicio;
                       if (digitalRead(boton2)) 
                       {
                        digitalWrite(i, LOW);
                        apagadoi = 0;
                        break;
                       }
                     } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                     break;
                  case 24:
                   do 
                    {
                      tiempoTranscurrido=millis()-tiempoInicio;
                      if (digitalRead(boton3)) 
                      {
                        digitalWrite(i, LOW);
                        apagadoi = 0;
                       //break;
                      }
                    }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                    break;
                  case 25:
                   do 
                   {
                      tiempoTranscurrido=millis()-tiempoInicio;
                      if (digitalRead(boton4)) 
                      {
                        digitalWrite(i, LOW);
                        apagadoi = 0;
                       break;
                      }
                   }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                    break;
                  case 26:
                   do 
                    {
                      tiempoTranscurrido=millis()-tiempoInicio;
                      if (digitalRead(boton5)) 
                      {
                        digitalWrite(i, LOW);
                        apagadoi = 0;
                       break;
                      }
                    }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                    break;
                }
                digitalWrite(i, LOW);
                if(tiempoTranscurrido<TIEMPOENCENDIDO) 
                {
                  buenos++;
                  Serial.print("Pulsado boton tras ");
                  Serial.print(tiempoTranscurrido);
                  Serial.println(" milisegundos");
                  tiempT = tiempT + tiempoTranscurrido;
                } 
                else 
                {
                  malos++;
                  tiempT = tiempT + TIEMPOENCENDIDO;
                  Serial.println("Transcurrieron los dos segundos sin pulsar.");
                }
              }

                
              if (apagadoj)
              {
                switch (j)
                {
                  case 22:
                    do 
                     //{
                     tiempoTranscurrido=millis()-tiempoInicio;
                       if (digitalRead(boton1)) 
                       {
                        digitalWrite(j, LOW);
                        apagadoj = 0;
                         /break;
                       }
                     } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                     break;
                  case 23:
                    do 
                     {
                       tiempoTranscurrido=millis()-tiempoInicio;
                       if (digitalRead(boton2)) 
                       {
                        digitalWrite(j, LOW);
                        apagadoj = 0;
                        break;
                       }
                     } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                     break;
                  case 24:
                   do 
                    {
                      tiempoTranscurrido=millis()-tiempoInicio;
                      if (digitalRead(boton3)) 
                      {
                        digitalWrite(j, LOW);
                        apagadoj = 0;
                       break;
                      }
                    }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                    break;
                  case 25:
                   do 
                    {
                      tiempoTranscurrido=millis()-tiempoInicio;
                      if (digitalRead(boton4)) 
                      {
                        digitalWrite(j, LOW);
                        apagadoj = 0;
                       break;
                      }
                    }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                    break;
                  case 26:
                   do 
                    {
                      tiempoTranscurrido=millis()-tiempoInicio;
                      if (digitalRead(boton5)) 
                      {
                        digitalWrite(j, LOW);
                        apagadoj = 0;
                       break;
                      }
                    }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                    break;
                }

                if(tiempoTranscurrido<TIEMPOENCENDIDO) 
                {
                  buenos++;
                  Serial.print("Pulsado boton tras ");
                  Serial.print(tiempoTranscurrido);
                  Serial.println(" milisegundos");
                  tiempT = tiempT + tiempoTranscurrido;
                } 
                else 
                {
                  malos++;
                  tiempT = tiempT + TIEMPOENCENDIDO;
                  Serial.println("Transcurrieron los dos segundos sin pulsar.");
                }
              }
             }while(tiempoTranscurrido<=TIEMPOENCENDIDO);

            }
            
            break;

El código lo pongo en partes, sino no entra en el mensage.
Espero que pueda servir para que alguien me eche una mano
Gracias.

segunda parte

            case 3:
            {
              digitalWrite(i, HIGH);
              digitalWrite(j, HIGH);
              digitalWrite(k, HIGH);
              switch (i)
              {
                case 22:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton1)) 
                     {
                        break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 23:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton2)) 
                     {
                      break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 24:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton3)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 25:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton4)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 26:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton5)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
              } 
              if(tiempoTranscurrido<TIEMPOENCENDIDO) 
              {
                buenos++;
                Serial.print("Pulsado boton tras ");
                Serial.print(tiempoTranscurrido);
                Serial.println(" milisegundos");
                tiempT = tiempT + tiempoTranscurrido;
              } 
              else 
              {
                malos++;
                tiempT = tiempT + TIEMPOENCENDIDO;
                Serial.println("Transcurrieron los dos segundos sin pulsar.");
              }
               
              switch (j)
              {
                case 22:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton1)) 
                     {
                        break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 23:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton2)) 
                     {
                      break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 24:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton3)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 25:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton4)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 26:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton5)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
              }
              if(tiempoTranscurrido<TIEMPOENCENDIDO) 
              {
                buenos++;
                Serial.print("Pulsado boton tras ");
                Serial.print(tiempoTranscurrido);
                Serial.println(" milisegundos");
                tiempT = tiempT + tiempoTranscurrido;
              } 
              else 
              {
                malos++;
                tiempT = tiempT + TIEMPOENCENDIDO;
                Serial.println("Transcurrieron los dos segundos sin pulsar.");
              }

                switch (k)
              {
                case 22:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton1)) 
                     {
                        break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 23:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton2)) 
                     {
                      break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 24:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton3)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 25:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton4)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 26:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton5)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
              }
              digitalWrite(i, LOW);
              digitalWrite(j, LOW);
              digitalWrite(k, LOW);
              if(tiempoTranscurrido<TIEMPOENCENDIDO) 
              {
                buenos++;
                Serial.print("Pulsado boton tras ");
                Serial.print(tiempoTranscurrido);
                Serial.println(" milisegundos");
                tiempT = tiempT + tiempoTranscurrido;
              } 
              else 
              {
                malos++;
                tiempT = tiempT + TIEMPOENCENDIDO;
                Serial.println("Transcurrieron los dos segundos sin pulsar.");
              }
            }
            break;

tercera

            case 4:
            {
              digitalWrite(i, HIGH);
              digitalWrite(j, HIGH);
              digitalWrite(k, HIGH);
              digitalWrite(h, HIGH);
              switch (i)
              {
                case 22:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton1)) 
                     {
                        break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 23:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton2)) 
                     {
                      break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 24:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton3)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 25:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton4)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 26:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton5)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
              } 
              if(tiempoTranscurrido<TIEMPOENCENDIDO) 
              {
                buenos++;
                Serial.print("Pulsado boton tras ");
                Serial.print(tiempoTranscurrido);
                Serial.println(" milisegundos");
                tiempT = tiempT + tiempoTranscurrido;
              } 
              else 
              {
                malos++;
                tiempT = tiempT + TIEMPOENCENDIDO;
                Serial.println("Transcurrieron los dos segundos sin pulsar.");
              }
               
              switch (j)
              {
                case 22:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton1)) 
                     {
                        break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 23:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton2)) 
                     {
                      break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 24:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton3)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 25:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton4)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 26:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton5)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
              }
              if(tiempoTranscurrido<TIEMPOENCENDIDO) 
              {
                buenos++;
                Serial.print("Pulsado boton tras ");
                Serial.print(tiempoTranscurrido);
                Serial.println(" milisegundos");
                tiempT = tiempT + tiempoTranscurrido;
              } 
              else 
              {
                malos++;
                tiempT = tiempT + TIEMPOENCENDIDO;
                Serial.println("Transcurrieron los dos segundos sin pulsar.");
              }

             switch (k)
              {
                case 22:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton1)) 
                     {
                        break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 23:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton2)) 
                     {
                      break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 24:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton3)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 25:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton4)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 26:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton5)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
              }

              if(tiempoTranscurrido<TIEMPOENCENDIDO) 
              {
                buenos++;
                Serial.print("Pulsado boton tras ");
                Serial.print(tiempoTranscurrido);
                Serial.println(" milisegundos");
                tiempT = tiempT + tiempoTranscurrido;
              } 
              else 
              {
                malos++;
                tiempT = tiempT + TIEMPOENCENDIDO;
                Serial.println("Transcurrieron los dos segundos sin pulsar.");
              }

              
//              digitalWrite(h, HIGH);
              switch (h)
              {

cuarta y ultima parte

                case 22:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton1)) 
                     {
                        break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 23:
                  do 
                   {
                     tiempoTranscurrido=millis()-tiempoInicio;
                     if (digitalRead(boton2)) 
                     {
                      break;
                     }
                   } while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                   break;
                case 24:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton3)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 25:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton4)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
                case 26:
                 do 
                  {
                    tiempoTranscurrido=millis()-tiempoInicio;
                    if (digitalRead(boton5)) 
                    {
                     break;
                    }
                  }  while(tiempoTranscurrido<=TIEMPOENCENDIDO);
                  break;
              }
              digitalWrite(i, LOW);
              digitalWrite(j, LOW);
              digitalWrite(k, LOW);
              digitalWrite(h, LOW);
              if(tiempoTranscurrido<TIEMPOENCENDIDO) 
              {
                buenos++;
                Serial.print("Pulsado boton tras ");
                Serial.print(tiempoTranscurrido);
                Serial.println(" milisegundos");
                tiempT = tiempT + tiempoTranscurrido;
              } 
              else 
              {
                malos++;
                tiempT = tiempT + TIEMPOENCENDIDO;
                Serial.println("Transcurrieron los dos segundos sin pulsar.");
              }

              
            }
            break;
          }

        ver++;
        delay(TIEMPOAPAGADO);
    }
    else
    {
      while (estado == LOW)
      {
        Serial.println("ESTOY EN EL WHILE DEL ELSE");
        estado = digitalRead(on_off);    //Comprobamos el estado
        digitalWrite(i,LOW);  
  
        lcd.setCursor(0,0);
        lcd.print ("Leds: ");
        lcd.setCursor (5,0);
        lcd.print (ver);
        lcd.setCursor (8,0);
        lcd.print ("T: ");
        lcd.setCursor(10,0);
        lcd.print(tiempT/1000);
        lcd.setCursor(0,1);
        lcd.print("Bue. ");
        lcd.setCursor (5,1);
        lcd.print(buenos);
        lcd.setCursor(8,1);
        lcd.print("Mal: ");
        lcd.setCursor (13,1);
        lcd.print(malos);
        if (Serial.available()>0)
        {
          reset = Serial.parseInt();  
          if (reset == 0)
            RESTART;
        }
      }
    }  
  }

Comprimelo con zip y subelo como adjunto. Faltan partes, setup, globales, includes

Hola mando el programa como adjunto

esgrima2.1partes.zip (3.12 KB)

Tu código es pasible de muchas modificaciones. Muy repetido. Se puede simplificar mucho.

Esta bien que me digasque se puede mejorar, pero esa no era mi consulta principal, estaria mejor si me pudieses dar alguna luz de como poder solucionar mi duda. Gracias.