Como limpiar un solo digito en LCD

Buenas tardes a todos,

Estoy desarrollando un contador de pulsos ya preestablecidos, pero no sé cómo borrar solo los dos datos que se están generando con cada pulso, ejemplo: programe el contador para detectar solo 12 pulsos y al llegar a este conteo quiero el primer digito en cero y el segundo se borre este último no sé cómo hacerlo alguna sugerencia?

image

Manda escribir, (segun tu libreria),a la linea, posision X,Y que te interese y escribe un caracter en blanco " ". Por poner un ejemplo.
Saludos.

Escribe siempre usando este truco en lugar del simple lcd.print(variable) que obliga a que consideres cuando estas imprimiendo 1 o 2 digitos.
El truco es este: usar la función sprintf(buffer,"formato de presentacion", variables)
Ahora lo explico
como no has puesto código, y como me imagino tampoco has leído las normas no puedo responderte con tu propio código, asi que eso lo resolverás por tu cuenta.

debes definir una variable que yo llamo siempre
char buffer[20];
es un array de char o sea son 20 caracteres que justamente es la extensión de tu fila del LCD.
Luego llamas a la función sprintf de este modo

sprintf(buffer,"%02d", variable);
lcd.print(buffer);

variable debe ser del tipo entero como lo que estoy viendo en tu imagen del LCD.
%es el operador que le dice a sprintf lo que vas a reemplazar por una variable.
En este caso puse 02d
0 es para que complete a izquierda con 0, es decir, si quieres imprimir 0 a 9 presentará en el display 00 a 09 o sea completa con 0s a al izquierda
2 es para indicar que vas a presentar un máximo de dos digitos o sea hasta 99
de 0 a 99 siempre saldrá como dos digitos indicados como 00 a 99 se comprende no?
d es el operador para enteros. Hay mas indicadores, para hexadecimales x, para string s para float f pero no funciona en arduino no sin algun comando extra que no viene al caso ahora.

Espero te sirva. con todo esto evitas el tipico

if (variable < 10) ubicar en tal sitio y si no ubicar en tal otro para tener en cuenta 1 o 2 digitos.

3 Likes

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.