Keypad e char int

Save,
nel mio precedente progetto avevo usato un potenziometro e l’ingresso analogico del mio arduino mega2560 per inserire il valore del tempo in un timer.
ho deciso di provare ad evolvere tutto il vecchio progetto, e per far questo ho voluto provre ad inserire al momento dell’accensione dellarduino un menu, dove alla pressione del numero corrispondente deve accedere a determinate funzioni.
Sono riuscito ad inserire dei dati tramite keypad 4x3, solo che questi dati non riesco a portarli fuori.
una volta che esco dal ciclo if del mio keypad il valore ritorna sempre a zero.
vi posto un pezzo del programma.

#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
#include <Keypad.h>
const byte rows = 4;
const byte cols = 3;
char keys[rows][cols] = {
  {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'*', '0', '#'}
};
byte rowPins[rows] = {41, 43, 45, 47}; //connetto le 4 righe ai pin
byte colPins[cols] = {49, 51, 53}; //connetto le 3 colonne ai pin
int menuiniz = 0; //per far scrivere solo una volta il menu
int vtime = 0; //contatore delle cifre per inserire tempo
char tempo[4]; //variabile del tempo all'esplosione
int itempo;  //contatore variabile tempo all'esplosione
int sec = 59;
int curtempo = 11; //cursore per tempo
int admin = 0;
int totale=0;
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, rows, cols);
void setup() {
  lcd.begin(16, 2);
  pinMode(41, INPUT); //keypad
  pinMode(43, INPUT); //keypad
  pinMode(45, INPUT); //keypad
  pinMode(47, INPUT); //keypad
  pinMode(49, INPUT); //keypad
  pinMode(51, INPUT); //keypad
  pinMode(53, INPUT); //keypad
  keypad.setDebounceTime(50);

}
void loop() {

  if (admin == 0) {
    itempo = 0; //azzera char tempo[itempo]
    curtempo = 11; //azzera il cursore tempo
    if (menuiniz == 0) {
      lcd.clear();
      lcd.print("1set time 2test");
      menuiniz = 1; //blocca il ripetersi della scritta menù iniziale
    }
    char menukey = keypad.waitForKey();
    if (menukey == '1') {
      lcd.clear();
      for (vtime = 0; vtime < 4; vtime++) {   //max 999 la quarta pressione è l'ok ad andare avanti
        lcd.setCursor(0, 0);
        lcd.print("imposta tempo");
        tempo[itempo++] = keypad.waitForKey();
        lcd.setCursor(curtempo, 1);
        lcd.print(tempo[vtime]);
        curtempo++;
      }
      if (itempo == 4)
      { lcd.clear();
        lcd.print("time ");
        delay(1000);
        int ttotale = (int)((((tempo[0] - '0') * 100) + ((tempo[1] - '0') * 10) + (tempo[2] - '0'))); // imposto il timer
        lcd.print(ttotale);   //qui tutto ok,mi stampa il numero corretto che o inserito
        delay(1000);
        menuiniz = 0;
        
        admin = 1;
       }

    }
    if (menukey == '2') {
      lcd.clear();
      lcd.print("scelto il 2");
      delay(1000);
      admin = 1;
    }
    if (menukey == '3') {
      lcd.clear();
      lcd.print("scelto il 3");
      delay(1000);
    }
  }
  lcd.clear();
 lcd.print("ttotale");
 lcd.print(ttotale);//non stampa ttotale
  delay (2000);
  }

Buonasera,
essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo