Recebendo valores do controle remoto, add em um vetor depois compara com outro

Eu quero acionar um relé, mas antes a pessoa tem que validar uma senha que já está pré programada

Meu problema está no primeiro IF, quando aperto o numero 1 por exemplo, ele já adiciona no vetor o valor pressionado, mas eu só quero mostrar a mensagem no LCD, sem adicionar valor nenhum por enquanto, pq se não, obrigatoriamente a senha do cara vai ter sempre esse primeiro numero pressionado.

No exemplo é uma senha de um digito, mas ela vai ter 4.

Resumindo, eu queria inserir o próximo valor digitado, depois que a pessoa aperta o numero, por exemplo.

No meu código o vetor teste, tá sempre com um numero diferente.

void loop() {
  
  int tecla1= 0xE12440BF;
  int tecla2= 0xE12428D7;
  int tecla3= 0xE1246897;
  int tecla4= 0xE124B847;  
  int tecla5= 0xE124F00F;
  int tecla6= 0xE1249867;
  int tecla7= 0xE1247887;
  int tecla8= 0xE124B04F;
  int tecla9= 0xE124F807;
  int number= 0xE124E817;


  int dec1= 3777249471;
  int dec2= 3777243351;
  int dec3= 3777259671;
  int dec4= 3777280071;
  int dec5= 3777294351;


int senha [1] = {0xE12440BF}; // SENHA PRÉ GRAVADA PARA PODE COMPARAR
int teste [1] ={}; // VETOR QUE VAI RECEBER A TECLA DIGITADA




  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); // Receive the next value
    delay (2000);
    armazenavalor = (results.value);
    
   


 if (results.value == 0xE12440BF){
      lcd.clear();                      //limpa o display do LCD.     
      lcd.print("Insirir a senha  :");  //imprime a string no display do LCD.
      lcd.setCursor(0,1);   //posiciona cursor na coluna 0 linha 1 do LCD
      lcd.print("# para confirmar"); 
      delay (200);
      
      for (int i=0;i<1;i++){
        teste [i] = results.value; // adicionado valores ao vetor
         
    }
    
      for (int i=0;i<1;i++){ // impressão de teste
        
         Serial.println(teste [i], HEX);
         Serial.println(senha[i],HEX );

}
    
      } 
     


 if (results.value == 0xE124E817){
        
       for (int i=0;i<1;i++){  // comparar o valores nos vetores e validar senha
         if (teste[i] == senha [i]){
           lcd.clear();                           
           lcd.print("Senha correta :");  
         }else{
           lcd.clear();                           
           lcd.print("Senha incorreta :");  
         } 
       
     
   }
      }

A variável do tipo int apenas pode conter valores entre aproximadamente -32000 e 32000... esses valores que tens nas variáveis tecla e dec são unsigned long ou long.

É provável que não seja este o problema, mas sem resolveres isto, o programa não funciona.

Alguem poderia Ajudar em um Exemplo parecido ?