Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino mega y LCD hd44780
#1
buenas compañeros,

ando conectando mi LCD por primera vez al mega.
Lo he conectado segun este esquema:

resim

El caso es que he cogido el ejemplo que trae el IDE de la libreria liquidcrystal "hola mundo" y no hay manera de que me funcione.
El LCD está iluminado y si giro el potenciometro puedo hacer que los 16 caracteres de la fila de arriba sean cuadrados blancos, pero no consigo leer el mensaje :dale2: :dale2:

sabes que puede ser?? Mil gracias


/*
LiquidCrystal Library - Hello World

Demonstrates the use a 16x2 LCD display. The LiquidCrystal
library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you
can usually tell them by the 16-pin interface.

This sketch prints "Hello World!" to the LCD
and shows the time.

The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)

Library originally added 18 Apr 2008
by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe

This example code is in the public domain.

http://www.arduino.cc/en/Tutorial/LiquidCrystal
*/

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}

void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis()/1000);
}
Citar
#2
Comprueba las conexiones, desmontalo y vuelvelo a montar, a veces funciona.
Mira las soldaduras, tal vez la de los pines de datos esten flojas o mal.
Asegurate que los pines del código coinciden con los del montaje.

Si se te ilumina la pantalla y el contraste funciona, al menos sabes que el lcd funciona, pero no esta recibiendo datos.
Citar
#3
Ait0r escribió:Comprueba las conexiones, desmontalo y vuelvelo a montar, a veces funciona.
Mira las soldaduras, tal vez la de los pines de datos esten flojas o mal.
Asegurate que los pines del código coinciden con los del montaje.

Si se te ilumina la pantalla y el contraste funciona, al menos sabes que el lcd funciona, pero no esta recibiendo datos.


he cogido un cable, he pinchado el lcd en la protoboard y con un tester e comprobado continuidad pinchando el cable en la protoboard. Con eso he pensado que confirmaba las soldaduras.
Segun el ejemplo los datos se envian de d04 a d07 y desde el Pin5 al Pin2 (en este orden) :| :|

lo he montado 4 veces y he probado con otro ejemplo y nada.


Solo se me ocurre que haya puesto la libreria en un directorio erroneo, pero esta en una carrpeta de arduino que me hice en la carpeta descargas:
C:\Users\*****\Downloads\Arduino\Librerias\LiquidCrystal
Citar
#4
Si la librería no estuviera en su sitio ya te daría error al compilar me imagino. En estos casos, como dice ait0r, lo mejor es desmontar y volver a montar, y revisar que coincidan las asignaciones de pines.
Citar
#5
¿Lo tienes conectado como en la imagen y se te ilumina? Sin conectar los dos pines de la derecha a mi no se me ilumina, aunque no creo que sea eso.
Citar
#6
Kili escribió:¿Lo tienes conectado como en la imagen y se te ilumina? Sin conectar los dos pines de la derecha a mi no se me ilumina, aunque no creo que sea eso.

tienes razon, del pin VSS del lcd paso un cable al catado y del pin VDD al anodo para que se retroilumine, pero de ahi no paso... mecachins Cry Cry Cry
Citar
#7
joder, lo he desmontado y montado 6 o 7 veces.

tengo un potenciometro de 10k. Si lo tengo en una punta las 2 lineas del lcd estan en azul, cuando llego a la mitad siguen las 2 en azul, y cuando llego al tope del otro lado la fila superior son todo cuadrados blancos y en la fila de abajo se empiezan a intuir muy poco los cuadrados de cada caracter.

void setup() {
lcd.begin(16, 2);
lcd.print("hello, world!");
}
La frase se escribiria en la fila superior o en la inferior?? si pongo lcd.print("hello/n, world!"); lo escribiria en las dos lineas??
Citar
#8
es una foto de internet pero con el potenciometro a tope se me ve asi

resim
Citar
#9
Ergon escribió:joder, lo he desmontado y montado 6 o 7 veces.

tengo un potenciometro de 10k. Si lo tengo en una punta las 2 lineas del lcd estan en azul, cuando llego a la mitad siguen las 2 en azul, y cuando llego al tope del otro lado la fila superior son todo cuadrados blancos y en la fila de abajo se empiezan a intuir muy poco los cuadrados de cada caracter.

void setup() {
lcd.begin(16, 2);
lcd.print("hello, world!");
}
La frase se escribiria en la fila superior o en la inferior?? si pongo lcd.print("hello/n, world!"); lo escribiria en las dos lineas??

Por lo que comentas parece un problema de transmisión de los datos o algún pin mal soldado no se me ocurre otra cosa, revisa otra vez más las soldaduras y repasalas si es necesario...
Citar
#10
Cuando lo has montado y desmontado has usado los mismos cables?
No lo intentes. Hazlo o no lo hagas, pero no lo intentes.
Citar
#11
Ait0r escribió:Por lo que comentas parece un problema de transmisión de los datos o algún pin mal soldado no se me ocurre otra cosa, revisa otra vez más las soldaduras y repasalas si es necesario...

si, el problema debe estar en la transmision ya que si quito los 4 pines de transmision de datos el LCD se ve igual, no hya diferencia.

He sacado el lcd de la protoboard y he comprobado 1 a 1 la continuaidad entre la parte superior del pin que estañé y la punta inferior del pin. Todos dan continuidad. :? :? :? :?
Citar
#12
Lord Bierzo escribió:Cuando lo has montado y desmontado has usado los mismos cables?


los cables los voy cambiando ya que haveces cojo azul, a veces amarillo....





:zpistolas: :zpistolas: :zpistolas: :zpistolas: :zpistolas: seguro que es una tonteria pero no hay manera. TODO el puto dia para nada :dale2:
Citar
#13
Prueba a usar otros pines del arduino y cambialos al principio del codigo
Citar
#14
Por probar, tira el pin 3 del lcd a masa y olvídate del potenciometro.
Citar
#15
esta tarde volvere a montarlo. Cambiare de pines de la protoboard, de cables, y de pines del arduino. Espero estar mas "fresco" y que salga a la primera.


deseadme suerte xD
Citar
#16
a ver, noticias frescas xD, no se si buenas o malas.
Al volver a conectar todo he conseguido que aparezca esto en pantalla: "/?_? ?" es algun mensaje comun o simplemente que lee lo que le sale de las boulings??

Por mucho que cargue el ejemplo Hola mundo o el blink no hace nada Triste
Citar
#17
Lo has probado sin el potenciómetro? Cuando es así, lo más cómodo es "dividir y vencer".

- Prueba a cambiar la línea de escritura.
- Tiempo mostrando el mensaje.
Citar
#18
#include <LiquidCrystal.h> //importando biblioteca de LiquidCrustal
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //pines en los que se conecta

void setup(){
lcd.begin(16, 2);
lcd.setCursor(0,1);
lcd.print("HOLA, MUNDO!");
}

void loop(){

lcd.setCursor(9,1);
lcd.setCursor(0,1);
}


ahora estoy con este codigo. Al poner lcd.setCursor(0,1); lcd.print("HOLA, MUNDO!"); Me deberia de escribir en la linea inferior no??

Ahora voy a puentear el potenciometro a ver
Citar
#19
Ergon escribió:#include <LiquidCrystal.h> //importando biblioteca de LiquidCrustal
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //pines en los que se conecta

void setup(){
lcd.begin(16, 2);
lcd.setCursor(0,1);
lcd.print("HOLA, MUNDO!");
}

void loop(){

lcd.setCursor(9,1);
lcd.setCursor(0,1);
}

ahora estoy con este codigo. Al poner lcd.setCursor(0,1); lcd.print("HOLA, MUNDO!"); Me deberia de escribir en la linea inferior no??

Ahora voy a puentear el potenciometro a ver

Código:
lcd.setCursor(9,1);
lcd.setCursor(0,1);

Eso para que?
Si con ese código te imprimirá el hola mundo en la segunda linea. Ponlo sin comillas ni nada, simplemente : hola mundo, por si acaso.
Citar
#20
Ait0r escribió:
Ergon escribió:#include <LiquidCrystal.h> //importando biblioteca de LiquidCrustal
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //pines en los que se conecta

void setup(){
lcd.begin(16, 2);
lcd.setCursor(0,1);
lcd.print("HOLA, MUNDO!");
}

void loop(){

lcd.setCursor(9,1);
lcd.setCursor(0,1);
}

ahora estoy con este codigo. Al poner lcd.setCursor(0,1); lcd.print("HOLA, MUNDO!"); Me deberia de escribir en la linea inferior no??

Ahora voy a puentear el potenciometro a ver

Código:
lcd.setCursor(9,1);
lcd.setCursor(0,1);

Eso para que?
Si con ese código te imprimirá el hola mundo en la segunda linea. Ponlo sin comillas ni nada, simplemente : hola mundo, por si acaso.

Lo ponia en el ejemplo que he encontrado por internet.

si lo pongo sin comillas no compila no??

los signos de " /?_? ? " aparece sin que este ni el cable de RS, ni el E, ni ninguno de los 4 de datos ¿?¿?¿ ahora si que estoy perdido xD

Despues de poner el RW a tierra, los simbolos raros se han transformado en toda la fila superior con cuadritos blancos. Es decir (1111, 1111, 1111, 1111, ...)
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  CONSULTA Re: Arduino Mega, 1 servo ,1 nema, 3 motor DC carlos hop 8 436 26-09-2018, 01:30 PM
Último mensaje: Shellmer
  Problemas De Velocidad Mega 2560 CEBB24 1 371 23-03-2018, 04:35 PM
Último mensaje: cna
  No me reconoce el arduino mega. hansugrove 2 790 15-10-2017, 10:35 PM
Último mensaje: ismaelcd
  Instalación de Arduino Mega 2560 en Linux planck669 4 1,714 21-05-2017, 12:47 PM
Último mensaje: planck669
  Macbook Air no detecta Arduino Mega 2560 efvn 3 977 08-09-2016, 08:48 PM
Último mensaje: jukillo