Lcd standar 16x2 insertar texto seguido de variable-dato

Para mostrar A0=5;
Tengo que hacer todo esto La cosa se complica cuando son muchos datos a mostrar en una sola linea

byte dato=5;

lcd.setCursor(0,0);
lcd.print("A0=");
lcd.print(dato);
lcd.print(" "); //Esto es por si el dato se reduce de 12 a 9 y desaparezca el 2 (si no muestra 92 )

Quiero saber si hay algo equivalente en lo que seria ccs

int8 dato=5;

lcd_gotoxy(1,1);
printf(lcd_putc"A0=%u ");



Descuido!!
printf(lcd_putc"A0=%u ",dato);
 
Última edición:
Hola, lo que suelo hacer en esos casos es un algoritmo sencillo: se trata de revisar el "array" del número que deseas mostrar, siempre empezando a analizar las cifras desde el lado izquierdo (cifras más significativas); la idea es buscar la posición más relevante en donde la cifra sea diferente de cero, mientras sea igual a cero tienes que sustituir ese cero por el ASCII del espacio (0x20). Una vez que se encuentra tal cifra sales del lazo de búsqueda y muestras todas las demás cifras.

Saludos
 
Comúnmente se usa "printf (cadena, valor)" o "sprintf (cadena, valor)"

Por ejemplo:
char cadena[16];
unsigned long valor = 12345;

sprintf (cadena, "%5lu", valor);
lcd.print (cadena);
 
Última edición:
pues ¿ya probaste con limpiar la pantalla antes de imprimir?

digamos que tienes 23 y despues un 4
si no limpias pantalla aparecera 43


es algo parecido a lo que hisiste pero con el comando de limpiar pantalla
printf(LCD_PUTC, "\f");
 
Código:
se trata de revisar el "array" del número que deseas mostrar
Pero yo lo que tengo son 2 byte simples!! y en ccs nunca utilice este jaleo para mostrar cualquier dato del array
Comúnmente se usa "printf (cadena, valor)"
printf con 'f' ahora me e fijado quizas es lo unico que necesite. A mi me falta algo el compilador lo marca en color pero no lo reconoce al compilar uso
#include <LiquidCrystal.h>
lcd.printf ("abcd");//dice no reconicer prinf solo lcd.print ("abcd");
lcd.sprintf (cadena, "%5lu", valor);//de la misma tampoco
sprintf (cadena, "%5lu", valor);
printf ("abcd");//compilan pero no hacen el pedido

Copiando todo tu codigo:
char cadena[16]="dato=";
unsigned long valor = 12345;
....
sprintf (cadena, "%5lu", valor);
lcd.setCursor(0,0);
lcd.print (cadena);

el resultado solo es: 12345; //no sale ningun caracter

¿ya probaste con limpiar la pantalla antes de imprimir?
si te refieres al lcd.clear(); lo tengo y es similar a lcd_putc("\f"); de ccs
pero solo utilizo lcd.print(" ");//3 espacios aqui solo me deja 1
digo yo que sera mas rapido y luego esta que si utilizas lcd.clear(); de una manera constante por lo que sea en el lcd se provocan muchos parpadeos borrando y reescriviendo datos que nisiquiera era necesario canviar

Saludos.
 
no se que estes haciendo.

la libreria que marcas debes estudiarla para poder hacer algo util.

sprintf lo que hace es darle un formato a un string ejemplo:

char cadena[15];

char nombre[5]="DAVID";
char apellido[4]="C.S";
char numero=35;

ahora vamos a darle formato a mi string con SPRINTF

sprintf(cadena,"%s %s = %d",nombre,apellido,numero);

y saldria algo asi:

DAVID C.S =35


lo que hise fue que ahora la cadena contubiera todo un formato.

ahora para arreglar los parpadeos

yo usaria un tiempo determinado para refrescar la pantalla.

unos 500ms serian suficientes para refrescar pantalla o borrar pantalla y volver a escribir, asi se quitarian los parpadeos
 
Atrás
Arriba