Pages: [1]   Go Down
Author Topic: Pantalla LCD 128x64 imprime datos "basura" con el Serial.print  (Read 2956 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola!
Soy nuevo en el foro y mi pregunta o problema que tengo es con la pantalla lcd serial 128x64. En mi código de programación utilizo algunas variables de tipo int y float para realizar algunos procesos u operaciones, pero al momento de imprimirlos en la pantalla (lcd) utilizando la opción “Serial.print ó Serial.println” me aparecen datos de más, números o símbolos que no se porqué aparecen. Dentro de las opciones o “funciones” de la pantalla, hay un código que se puede utilizar para imprimir en la pantalla, pero aun así me visualiza datos “parásitos” en la pantalla, ya cambié los tipos de datos que uso, todos enteros o todos flotantes y sigo con el problema.

En fin la verdad no se cual sea mi error o problema en la realización de esto, espero puedan ayudarme un poco con esto.

Saludos. (dejo mi codigo) Gracias!

PD. el problema que tengo es cuando se imprime en la pantalla la variable de porcentaje, litros y level. Estoy usando la version de arduino 0023 y les dejo el enlace codigo con el que he estado trabajando.

https://dl.dropbox.com/u/57429772/Pantalla/Pantalla.pde
Logged

Alicante
Offline Offline
Sr. Member
****
Karma: 2
Posts: 413
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

¿Es el lcd se sparkfun?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sí, ese mismo es, aqui dejo unas imagenes de lo que se muestra en pantalla a la hora de imprimir las variables que marcan error
1º Porcentaje
2º Valor de lectura analógica
3º Contador
4º Litros

https://dl.dropbox.com/u/57429772/2012-11-15-1447.jpg
https://dl.dropbox.com/u/57429772/2012-11-15-1452.jpg

Les agradecería mucho su ayuda.
Logged

Alicante
Offline Offline
Sr. Member
****
Karma: 2
Posts: 413
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A ver, dime que librería usas.
Otra cosa a añadir es que estas lcd traen un firmware con muchos errores. Yo la tengo y está aparcada.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La única libreria que utilizé fué "#include <avr/pgmspace.h> //libreria para poder guardar los arrays de datos de imagenes en memoria de programa", sólo ésa, en sí reutilizé el codigo que proporciona el blog:

http://blog.bricogeek.com/noticias/tutoriales/tutorial-arduino-pantalla-serial-lcd-128x64/

de ahí lo descargué y lo fuí modificando para que mostrara lo que necesitaba, todo lo visualiza bien, imagenes, lineas, circulos, rectangulos (éstos solo los podia dibujar pero no borrar, por eso utilizé varios ciclos for con lineas), etc. sólo a la hora de imprimir esas variables salen "digitos basura" en la pantalla.
Logged

Alicante
Offline Offline
Sr. Member
****
Karma: 2
Posts: 413
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bueno, comparte tu código. Puede ser que tu lcd tenga el firmware actualizado.
Un saludo.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

El link del codigo que utilizo esta en la pregunta, de cualquier forma lo pongo nuevamente y gracias.

https://dl.dropbox.com/u/57429772/Pantalla/Pantalla.pde
Logged

Alicante
Offline Offline
Sr. Member
****
Karma: 2
Posts: 413
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Aquí tienes. Algo tan simple como mostrar Bienvenido y Bienvenidos en diferentes líneas, y lo que pasa es un error y sale por varios sitios. Como ya te he dicho, el firmware que lleva es una patata. Nos toca actualizar..
A lo mejor este código a ti te va bien.
Ya me cuentas smiley-wink

Code:
#include <avr/pgmspace.h>
int x;
int y;
void setup() {
  Serial.begin(115200);
}


void loop() {
   x=(50);
    y=(35);
    coordenadas(x,y);
    escribir_LCD("Bienvenido");

   
       x=(40);
    y=(45);
    coordenadas(x,y);
    escribir_LCD("Bienvenidos  ");
 
}


void escribir_LCD(char *data){
 Serial.print(data);
 delay(20);
}



void coordenadas(int x, int y){    //x de 0 a 127
  Serial.print(0x7C,BYTE);         //y de 0 a  63
  Serial.print(0x18,BYTE);
  Serial.print(x,BYTE);
  Serial.print(0x7C,BYTE);
  Serial.print(0x19,BYTE);
  Serial.print(y,BYTE);
  delay(20);
}


* la foto-1.JPG (2981.28 KB, 3264x2448 - viewed 94 times.)
Logged

Alicante
Offline Offline
Sr. Member
****
Karma: 2
Posts: 413
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

http://arduino.cc/forum/index.php?topic=113612.0

Mira, de cuando estuve en guerra con el lcd.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola!
No entendí el porqué del comentario de "mostrar Bienvenido y Bienvenidos en diferentes lineas" ya que no tengo problemas con el despliegue de información en la pantalla, o con las figuras (bueno, sólo con los rectangulos, los puedo digujar (rectangulo (0,0,127,63,1)smiley-wink, pero al querer borrarlos (rectangulo (0,0,127,63,0)smiley-wink no puedo hacerlo, no lo hace) lo que creo que pasa es que quizá hago un mal manejo de las variables en la programación, o quizá alguna operación incorrecta que hace que al momento de ralizarla e imprimirla vaya generando resultados con "residuos" que hace que se impriman en pantalla.

Con respecto a la actualización del firmware, ví tu anterior post, pero ya no ví el como hacen la actualización o donde puedo encontrar el firmware (ya busque en la red y encontré pero para otro tipo de pantallas, a color o con mayor resolución).

https://dl.dropbox.com/u/57429772/2012-11-16-1453.jpg (imagen de bienvenida, sale bien)
https://dl.dropbox.com/u/57429772/2012-11-16-1457.jpg (selección, esta bien)
https://dl.dropbox.com/u/57429772/2012-11-16-1458.jpg (muestra porcentaje, lectura analógica, contador, valor de litros y barras de porcentaje respectivamente, estas si salen bien, no tengo problemas)
https://dl.dropbox.com/u/57429772/2012-11-16-1459.jpg ( en lecturas después, al vajar el nivel o el porcentaje [con el potenciometro] en la variable "litros" comienzan a aparecer simbolos que no deberian, en ocaciones aparecen cosas raras, números o X caracter, al igual que en la variable de porcentaje)
Logged

Alicante
Offline Offline
Sr. Member
****
Karma: 2
Posts: 413
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Con lo de Bienvenido y Bienvenidos he querido mostrar que mi LCD no funciona. Algo tan simple como mostrar eso, y no lo hace.
Respecto a tu problema, no dudo que esos residuos sean tema de firmware también. Me harías un favor si probases también tu ese código.
Tu código creo que está bien.
Un saludo.
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yo no veo nada mal en el código pero si las frases se imprimen bien y los floats no, una solución de emergencia podría ser convertir el float en una frase y luego imprimir la frase.

Por ejemplo, imprimir "litros" con 2 decimales
Code:
float litros = 425.63;
long  a;
String ss;

a = (long) litros;
ss = String(a, DEC);

Serial.print(ss);
Serial.write('.');

a = (long) (litros*100.0);
a %=100;
ss = String(a, DEC)

Serial.print(ss);

« Last Edit: November 20, 2012, 07:31:11 am by Mitxel » Logged

Alicante
Offline Offline
Sr. Member
****
Karma: 2
Posts: 413
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Para verificar si la LCD está bien tienes que probar mi código. Si te sale lo que a mí (foto) es que el firmare es el malo. Si fuera lo contrario, pues se mira el error en el código. Yo creo que lo mejor en ésto es ir paso a paso.
Un saludo!!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola nuevamente y gracias por su ayuda y comentarios  smiley

El problema que tenía es que la hora de imprimir los datos en pantalla se sobreescribian los números haciendo que aparecieran esos "digitos bausra" lo qui hice fué algo sencillo (y creo que obvio smiley-red) solo fué borrar los datos antes de volver a escribirlos en la pantalla.

Con respecto al firmware no tuve ningun problema al respecto (quizá solo a la hora de dibujar algunas figuras, pero creo que era porque estaban mal "deffinidas" las funciones), y PascuaL, el codigo que me pediste que probara si funcionó bien, el texto apareció donde debia de estar de acuerdo a las coordenadas, quizá mi lcd ya viene con el firmware actualizado o algo por el estilo.

Ahora presento otro "problema", es sobre el envio de datos capturados por el arduino de un potenciomentro por medio de dos XBee, pero... para eso abriré otra pregunta en el foro.

Nuevamente gracias por sus comentarios! smiley
Logged

Pages: [1]   Go Up
Jump to: