Go Down

Topic: ayuda con lcd DVF-16210-V1FBLY (Read 2020 times) previous topic - next topic

snaut

May 13, 2012, 11:51 am Last Edit: May 13, 2012, 11:53 am by snaut Reason: 1
Hola a todos. Este es mi primer mensaje en este foro, espero no equivocarme en el lugar que lo he puesto. Como muchos he empezado con el arduino y desde un buen comienzo ya me aparecen algunas dudas... Veréis tengo la placa arduino mega 2560 y una lcd (adjunto datasheet) que me dieron. Antes de empezar a intentar programar querría ver si el hardware que tengo me funciona correctamente pero no lo consigo. He intentado con el programa de ''hola mundo'' pero nada. El programa es el que viene de ejemple en el soft de arduino:
/*
 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);
}

El esquema que he seguido es este: http://arduino.cc/es/Tutorial/LiquidCrystal

Adjunto una imagen para que podáis ver más claramente lo que pasa. Pensaba que la lcd podía estar rota ya que no sé su estado así que busque información para comprobarlo. Encontré una página que decían que para comprobar si una lcd funciona había que poner el pin de contraste a masa y si aparecía algo en ella es que estaba bien. Cuando yo pongo ese pin a masa me aparece lo que veis en la imagen y si lo saco se queda sin nada dibujado. Creéis que funciona?



Entonces mi otra duda en el caso de que funcionara la lcd, es si esta pantalla es compatible con arduino. Por lo que he visto en el datasheet el microcontrolador que usa la lcd es el: ks0066. He buscado información pero lo único que he encontrado es gente con la misma duda y no lo han podido resolver. También he visto un post donde decían que este micro era compatible con la librería ''liquidcrystal'' que viene con el soft de arduino... pero no lo veo muy claro ya que debería funcionar entonces. He mirado si llega tensión en los pines de la lcd y si que llega. Haber si alguien me puede dar algún consejo para que me funcione por favor, sino supongo que me tendría que hacer con otra pantalla. Un saludo y gracias de antemano. Si hay algo que no queda claro me lo decís y lo explicare lo mejor posible.

fm

Tienes el potenciometro conectado?

La libreria estandard deberia funcionar, el chip es compatible con el de hitachi.
Tambien puedes probar con la New LiquidCrystal que es mucho mas rapida.
   

snaut

muchas gracias fm. Una duda menos que tengo, ahora se que esta pantalla es compatible. El potenciometro no lo tengo conectado ahora ya que estaba haciendo alguna prueba pero también lo he probado con él conectado y nada, al regularlo aparecen o desparecen los puntos. Voy a darle un ojo a la librería que me comentas. 

fm

Revisa bien las conexiones como dice el tutorial de ladyada. Es muy importante.
   

snaut

Gracias. Las he revisado varias veces y en principio están bien. También he vuelto a cargar el programa cambiando los pines para hacerlo de nuevo, haber si veía que había cometido un error pero sigue igual. Seguiré probando y mirando info haber si encuentro algo.

fm

Recuerda que el mapa de pines en la inicialización de la librería debe coincidir con lo que tienes montado en el LCD.
   

snaut

sí, si no me equivoco lo he debido hacer bien. He hecho lo siguiente al principio del programa: 

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(32, 31, 25, 24, 23, 22);

y las conexiones:
del pin 32 de arduino al RS de la lcd
del pin 31 de arduino al Enable de la lcd
del pin 25 de arduino al D4 de la lcd
del pin 24 de arduino al D5 de la lcd
del pin 23 de arduino al D6 de la lcd
del pin 22 de arduino al D7 de la lcd

y tampoco a funcionado, sigue igual. 

fm

Mira a ver en San google algo del estilo: "ks0066 arduino library" o "ks0066 LCD library" a ver si sale alguna cosa interesante.

Sigo opinando que son compatibles. Por cierto, ¿has probado con mi librería?
   

snaut

sí, si llevo tres días ya buscando acerca de librerías para el ks0066 y lo que he encontrado es gente que recomienda utilizar una librería que se llama ''lcd4bit'', la cual ya he intentado probar pero sin éxito. Y también he encontrado otra gente que no la ha logrado hacer funcionar como en este post: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1262531462/all
También he probado tu librería, o al menos intentado. He cogido el programa de ejemplo que he mostrado al primer post y le he añadido la nueva librería pero sigue igual.

fm

Ummm, pues no se me ocurre nada mas.
   

snaut

Gracias igualmente fm. Si veo que en un par de días nadie comenta nada y no logro hacerlo funcionar me compraré una pantalla. Un saludo.

Go Up