Buenas... tengo un código que me va poniendo números en la pantalla LCD... el 1º,2º y 3º número que pongo me salen a la perfección... pero el 4º siempre me sale un cuadradito, y restándole -48 para que sea el caracter en decimal, me sale -48 en vez del número que presiono... lo raro es que los tres primeros funcionan bien... el código es este:
int num1;
int num2;
int num3;
int num4;
int s;
int t;
int h;
int i;
void modificarhorasriego(){
lcd.clear();
while (y<1){
Serial.println(" Dentro de riegos ");
lcd.setCursor(0,0);
lcd.write(" Modificar Horarios");
lcd.setCursor(0,1);
lcd.write("1er horario:");
while (s<1){
char key1 = keypad.getKey();
Serial.println("Dentro del primer while");
if (key1 != NO_KEY && (key1=='1'||key1=='2'||key1=='3'||key1=='4'||key1=='5'||key1=='6'||key1=='7'||key1=='8'||key1=='9'||key1=='0')){
Serial.println("Dentro del primer if");
num1 = key1-48;
lcd.setCursor(12,1);
lcd.print(num1);
Serial.println(num1);
Serial.println(key1);
while(t<1){
char key2= keypad.getKey();
Serial.println("Dentro del segundo while");
if (key2 != NO_KEY && (key2=='1'||key2=='2'||key2=='3'||key2=='4'||key2=='5'||key2=='6'||key2=='7'||key2=='8'||key2=='9'||key2=='0')){
Serial.println("Dentro del segundo if");
num2 = key2-48;
lcd.setCursor(13,1);
lcd.print(num2);
lcd.setCursor(14,1);
lcd.print(":");
Serial.println(num2);
Serial.println(key2);
while(h<1){
char key3= keypad.getKey();
Serial.println("Dentro del tercer while");
if (key3 != NO_KEY && (key3=='1'||key3=='2'||key3=='3'||key3=='4'||key3=='5'||key3=='6'||key3=='7'||key3=='8'||key3=='9'||key3=='0')){
Serial.println("Dentro del tercer if");
num3 = key3-48;
lcd.setCursor(15,1);
lcd.print(num3);
Serial.println(num3);
Serial.println(key3);
while(i<1){
char key4= keypad.getKey();
Serial.println("Dentro del cuarto while");
if (key4 != NO_KEY && (key4='1'||key4=='2'||key4=='3'||key4=='4'||key4=='5'||key4=='6'||key4=='7'||key4=='8'||key4=='9'||key4=='0')){
Serial.println("Dentro del cuarto if");
num4 = key4-48;
lcd.setCursor(16,1);
lcd.print(num4);
Serial.println(num4);
Serial.println(key4);
lcd.setCursor(17,1);
lcd.print(":00");
}
}
}
}
}
}
}
}
}
}
Los tres primeros van bien pero en el serial monitor cuando pulso por cuarta vez el número la mostrar la variable num4 me sale -47 y al mostrar la variable key4 me sale █
¿¿cómo es posible que teniendo el mismo código para los 4 números... los tres primeros me sale todo a la perfección pero en el cuarto me sale █???
GRACIAS!!!