Salve, avrei un problema nella programmazione: se digito un numero con più di due cifre il risultato non è giusto ( sbaglia di 1 alla prima cifra) cioè se premo il tasto 1, poi il 2 e poi il 3 dando la conferma con il tasto * del tastierino, il numero acquisito che leggo sulla seriale non è 123 ma appunto 122.. Non riesco a trovare l'errore nel programma che vi posto qui di seguito. Grazie in anticipo.
void loop()
{
char key;
j=0;
int n=0;
while(key !='*'){
key = keypad.getKey();
if (key != NO_KEY && j<6){
Serial.print("*");
Serial.println(key);
keyInsert[j]=key;
j++;
}
}
Serial.print("numero acquisito a ");
Serial.print(5-j);
Serial.println(" cifre");
long numero=0;
int p=0;
n=j-1;
for (j=0 ; j<n; j++){
p=n-j-1;
Serial.println((int)keyInsert[j]);
int num=(int)(((keyInsert[j])-48)*(pow(10,p)));
numero+=num;
Serial.println(((keyInsert[j])-48)*(pow(10,p)));
Serial.println(numero);
}
}