este es mi primer post en el foro, aunque llevo tiempo hojeando el mismo
Hace poco más de un par de meses que tengo una placa Arduino Duemilanova, y estoy dando mis primeros pasos.
Por ahora he probado los típicos ejercicios con leds, etc...
Tengo por aquí un display LCD PC1602V-P3 de 20x2 (he buscado el datasheet pero no he encontrado nada :/), y guiándome por tutoriales en la web, he podido encender el display, y modificar el contraste, pero no consigo ver más que cuadros en negro (no sale texto alguno).
Si alguien puede echarme un cabo, se lo agradezco.
Yo he usado un PC1202, que es similar pero 2 filas 12 caracteres.
La empresa es POWERTIP http://www.powertip.com
Me imagino que el pin-out será similar...
Pin 1.- GND
Pin 2.- 5v
Pin 3.- Contraste. Yo lo tengo conectado a GND con 3K3.
Pin 4.- RS
Pin 5.- Pin R/W, lo tengo conectado a masa porque no hago carácteres y ahorro un pin. Siempre en Write.
Pin 6.- E
Pin7-14.- D0-D7
Pin 15.- Led (en caso que tenga backlight)
He probado con la librería LCD4BitLibrary y las conexiones tal como indicas, solo que conectando D7-D4 al arduino.
Pero aún así... no consigo que haga nada más allá de mostrar la primera línea de caracteres como cuadros en negro no sé si el lcd puede estar estropeado (se rescató de una vieja impresora), o simplemente estoy haciendo algo mal.
Comprueba que en tu librería esten los pines configurados adecuadamente.
arduino\hardware\libraries\LCD4Bit
Ahi encontrarás el archivo LCD4Bit.cpp, donde tienes las primeras filas de configuración de pines de Arduino:
//RS, RW and Enable can be set to whatever you like
int RS = 12;
int RW = 13;
int Enable = 11;
//DB should be an unseparated group of pins - because of lazy coding in pushNibble()
int DB[] = {7, 13, 9, 10}; //wire these to DB4~7 on LCD.
Bueno, he copiado lo que tengo yo cuando modifique, pon las que tengas conectados.... Si es la libreria original, no te deja poner pines no consecutivos, para hacerlo tienes que cambiar la parte de código:
// MODIFICACIÓN PARA QUE PUEDAN SER NO CONSECUTIVOS
for (int i=0; i <= 3; i++) {
digitalWrite(DB*,val_nibble & 01);*
val_nibble >>= 1;*
}* [/color] Lo más rápido para probarla, usa los pines preconfigurados de tu arduino....Ya jugarás después en cambiarlos.... Importante.- Si realizas un cambio en este fichero, borra el fichero LCD4Bit.o que encontrarás en dicha carpeta. Y vuelve a compilar tu programa en el IDE de Arduino. Salu2 Igor R.
Si no me equivoco la original viene configurado para que:
Pin RS del LCD al pin 12 Arduino
Pin RW del LCD al pin 11 Arduino
Pin Enable del LCD al pin 2 Arduino
Pin DB4-7 del LCD al pin 7-10 de Arduino
//RS, RW and Enable can be set to whatever you like
int RS = 12;
int RW = 11;
int Enable = 2;
//DB should be an unseparated group of pins - because of lazy coding in pushNibble()
int DB[] = {7, 8, 9, 10}; //wire these to DB4~7 on LCD.
al final conseguí hacer funcionar el display siguiendo tus consejos Igor, muchas gracias por la ayuda.
Es de 16x2, suficiente para ir jugueteando y aprender