cercando di includere e capire secTimer

Piccolo problema, tutto va bene fino al 59esimo secondo, dopo di che lui porta a 0 i secondi ma i minuti ore e giorni attribuisce valori a casaccio, premetto che ho inizializzato tutti i valori = 0
questo è il codice

#include"secTimer.h"
int led = 13;
char select ;
unsigned long secondi=0 ;
int minuti =0;
int ore=0;
int giorni=0;
secTimer mytimer;

void setup(){
	
	pinMode(led,OUTPUT);
	Serial.begin(9600);
	Serial.println("select 1 -> led ON\nselect 0 -> led OFF\nselect t -> show run time\n");
        mytimer.startTimer();	
	

}


void loop(){
        select=Serial.read();	
        secondi=mytimer.readTimer() %60 ;
        if(secondi==59  ){
		
		minuti=minuti+1;
		}
	if(minuti==59){
		ore=ore+1;
                minuti=0;
		}
	if(ore==24){
		giorni=giorni+1;
                ore=0;
	}
	
	if(select=='1'){
		digitalWrite(led,HIGH);
		Serial.println("led HIGH");
	}
	if(select=='0'){
		digitalWrite(led,LOW);
		Serial.println("led LOW");
		
	}

    if(select=='t'){
		
        Serial.println("aggiornamento tempo...");
        Serial.println("giorni:");
        Serial.println(giorni);
        Serial.println("ore:");
        Serial.println(ore);
        Serial.println("minuti:");
        Serial.println(minuti);
        Serial.println("secondi:");	
        Serial.println(secondi);        
        Serial.println("**********");
	}

}