Caracteres raros lcd 12864

Hola a tod@s,

he iniciado un proyecto en el que quiero usar un lcd 12864, para iniciar y ver que todo funciona correctamente he usado un par de códigos que he descargado: uno para conectar el lcd directamente al arduino y otro para usar con el controlador serie usando la libreria i2c.

En ambos casos me pasa lo mismo: la primera vez que muestra un mensaje por pantalla se ve correctamente, pero una vez hecho, ha de hacer un clear de pantalla y se empiezan a ver caracteres raros, en ocasiones se desplaza el texto hacia un lado, pero vamos el resultado final siempre es una pantalla llena de caracteres sin sentido...

Adjunto imagen del texto la primera vez que se muestra y otra imagen tomada unos segundos más tarde. no se queda así, continúa cambiando el contenido...

El caso es que pasa conectado directamente o por el adaptador serie, por lo que pienso que es un problema del lcd...

Gracias

Hi,
Una cosa que ayudaria para poderte darte sugerencias es que arduino usas, el sketch , como tienes conectado el systema y que librerias usas. Aqui tienes que tener cuidado pues este LCD tiene graficas y posiblemente tienes que decirle que funcion quires caracteres o grafica. Adjunto un link del arduino que explica algunos problemas con la libreria.Posiblemente no es tu problema pero te da idea de donde puede estar el problema. Otra cosa que puedes hacer un google para ver otros han tenido tu mismo problema y como lo resolviero.

https://playground.arduino.cc/Code/LCD12864

Hola Tauro, gracias por contestar...

Primero intenté hacerlo con un arduino NANO y usando un adaptador serie y la libreria liquidCrystal_I2C.
Como me apareció el problema probé con el NANO y conectando sin el adaptador, tambien he probado con UNO y MEGA con y sin adaptador por lo que creo que es problema de la lcd que es lo único que no varia.

Ahora mismo me he decantado por no hacer más cambios y estoy con un UNO y con el adaptador serie.

Copio y pego el código que estoy usando.

"
#include <Wire.h>;
#include <LiquidCrystal_I2C.h>;

//0x27 esla direccion I2C comunmente arduno detecta la interfaz, en caso de no funcionar
//la pantalla intentar con a direccion 0x20
LiquidCrystal_I2C lcd(0x27,16,4); //16,4 es el tamaño de la pantalla

void setup()
{
lcd.backlight(); //inicio de fondo retroalimentado
lcd.init(); //inicializacion de la pantalla
lcd.clear();//limpieza de la pantalla
}

void loop()
{
lcd.clear(); //limpiar la lcd antes de escribir

lcd.setCursor(0,0);//posicionamiento en la primera linea
lcd.print("modulo"); //escritura en la primera linea
delay(2000);

lcd.setCursor(-3,2); //salto a la segunda linea
lcd.print("serial I2C"); //escritura en la segunda linea
delay(2000);

lcd.setCursor(10,4); //salto a la tercera linea
lcd.print("y lcd"); //escritura en la tercera linea
delay(2000);

lcd.setCursor(7,3); //salto a la cuarta linea
lcd.print("LCM12864"); //escritura en la cuarta linea
delay(2000);

delay(2000); //tiempo de espera para que reinicie el ciclo
}
"

No pongo la fuente porque no recuerdo ahora exactamente de dónde lo saqué. Sí aclaro que el código no es mio.

Hay algún sitio donde pueda encontrar información detallada del control del lcd? supongo que es la librería pero me he cansado buscando (aprovecho para decir que por supuesto que lo he buscado en goolge, procuro no molestar sin ton ni son, recurro aquí cuando no encuentro nada) y no encuentro información del uso "a fondo" de la librería liquidCrystal_I2C y digo "a fondo" por que supongo que es similar a la librería liquidCrystal y de esta tampoco encuentro nada. la información oficial es bastante escueta.

Por ejemplo, en el tema del set.cursor... cómo posiciona? es posición absoluta o relativa?
Esta mañana llevo un buen rato haciendo pruebas y no logro averiguar cómo va.
A parte, he visto algo acerca de que esta pantalla en particular (12864ZW) de divide horizontalmente en dos partes y no puedes empezar un mensaje en la primera y que continúe en la segunda sin que haga cosas raras. De esto tampoco he localizado información.

A ver, no quiero que nadie pierda su tiempo resolviendo mi problema, pero sí agradecería una fuente de información fiable de donde obtener un manual o indice de referencia de las posibilidades del uso de las lcd.

Gracias.

No te pedí con tu doble posteo que leyeras las normas?
Has posteado un código sin usar etiquetas, por favor mira el mensaje interno con instrucciones para que lo edites correctamente.