Pequeño problema código temporizador []

int red=14;
int green=13;
int boton=6;



void setup () {


pinMode (green, OUTPUT);
 pinMode (red, OUTPUT);
 pinMode (boton, INPUT);            

Serial.begin(9600); 
 
}

void loop () {

inicio:

digitalWrite(green,LOW);
digitalWrite(red,LOW);
delay(500);

int estado_boton;                              
estado_boton = digitalRead (boton);  
unsigned long tomar1, tomar2, pasado;

  if (estado_boton == HIGH)
   {  
        tomar1=millis();
        
     while(estado_boton== HIGH)
         {
            digitalWrite(green, HIGH);
            delay(500);
            digitalWrite(green, LOW);
            delay(500);
            estado_boton = digitalRead (boton); 
          }
          
           tomar2=millis();
           pasado=(tomar2-tomar1)*60;
           Serial.print(pasado/60000);
           Serial.println(" minutos ");

      while(pasado!=0)
         {
            digitalWrite(red, HIGH);
            pasado=pasado-1000;
            delay(500);
            
            estado_boton = digitalRead (boton); 
            if(estado_boton == HIGH){goto inicio;}
            
            delay(500);
            estado_boton = digitalRead (boton);
            Serial.println((pasado/60000)+1);
            Serial.println(" minutos quedan ");
                      
         }
                    
               digitalWrite(red,LOW);
  } 

}

Bueno. Aquí está. Problema solucionado, puedo pasar los 110 minutos y muestra lo que queda sin problemas de formato.
No se si es esta manera la que decías, si no lo es, agradecería que me siguieras aconsejando.

Ahora estoy trabajando en darle formato(01 h 32 min 22 seg). He intentado mil cosas pero no se qué hacer.
Un saludo y muchas gracias de nuevo!