He comprado una pantalla lcd de 20x4, la he conectado por I2C con la librería liquidcrystali2c.h y funciona, pero cuando intento mostrar un "numero entero" hace lo siguiente:
LO QUE HACIA:
A ver como lo explico... si pongo un 10 sitúa un 0 a la derecha, y así sucesivamente si ponemos 100,1000, etc. Entonces cuando vuelvo a bajar números de 100 a 99 por ejemplo estos no se borran, quedan números fantasma, quedaría 990.
Como no me ha gustado un pelo he intentado repararlo con una función:
/**************************************
LCD MOSTRAR NUMEROS ENTEROS
***************************************/
int columna_entero(int numero, int valor){
int num=numero;
for(int i=1; i<String(valor).length(); i++){
if (valor>9)num-=1;
if (valor<0)num-=1;
}
lcd.clear();
return num;
}
LO QUE HACE CON LA FUNCION:
De esta manera lo que hago es mostrar mediante lcd.setCursor(num,fila); donde quiero poner el numero entero en la pantalla y en vez de añadir ceros a la derecha muevo todo el numero 1 posición a la izquierda quedando las unidades siempre en el mismo lugar. quedaría asi:
9, 99, 999 si bajo de 999 a 99 seguiría mostrando 999.
El problema es que aunque haya arreglado el orden se me quedan números fantasma y para resolverlo borro toda la pantalla con un clear. Pero esa solución no me gusta porque habría que ir refrescando toda la pantalla y consumir muchos recursos y haciendo las aplicaciones mas lentas.
Entonces la pregunta es si existe alguna librería que haga esto bien o una forma mejor de mostrar un numero entero sin tener que darle formato o si alguien tiene una solución mejor. Cualquier idea es bienvenida, gracias.