Autor Tema: Problema LCD..  (Leído 6406 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Gorgonas

  • PIC12
  • **
  • Mensajes: 81
Problema LCD..
« en: 08 de Noviembre de 2007, 00:24:50 »
Hola buenas, Tengo un problemilla con un lcd 16x2, al parecer es un lcd normal y corriente con sus 14 pines que suelen traer y colocados y nombrados de la misma forma, mas 2 de iluminacion.
El problema esque probe 3 librerias difrentes, lcd.c lcd2.c y flex_lcd.c y no me funciona, la alimentacion parece estar bien porque si lo conecto solo, se me ve la 2 linea con cuadrados negros, que regulo con el potenciometro. Pero en cuanto conecto el micro se me ponen las dos lineas con cuadrados negros. :(
Viendo el datasheet me fije que no coinciden las direcciones de memoria con las normales(que suelen ser 0 y 40) en este son 80 y C0 probe a cambiarlas pero nada, no se si lo hice bien pero tampoco funciona.
A ver si alguien me da una idea de que le puede pasar.
Adjunto el datasheet por si es de utilidad, como el foro esta lleno lo subi aqui en descarga directa.
Gracias.
Datasheet


Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Problema LCD..
« Respuesta #1 en: 08 de Noviembre de 2007, 08:13:37 »
Como no tengo el display en frente solo te puedo llenar más de preguntas que te puedan encaminar a buscar la solución al problema.

¿Lo estas usando en modo 4 bits?  ¿Si es así puede ser que estés conectando mal los pines?
¿El lcd estás seguro de que funciona?
¿El lcd estás seguro de que funciona con un IC compatible con hitachi 44780?
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Gorgonas

  • PIC12
  • **
  • Mensajes: 81
Re: Problema LCD..
« Respuesta #2 en: 08 de Noviembre de 2007, 10:13:13 »
Como no tengo el display en frente solo te puedo llenar más de preguntas que te puedan encaminar a buscar la solución al problema.

¿Lo estas usando en modo 4 bits?  ¿Si es así puede ser que estés conectando mal los pines?
¿El lcd estás seguro de que funciona?
¿El lcd estás seguro de que funciona con un IC compatible con hitachi 44780?

Sí, lo estoy usando en modo 4 bits y los puertos están bien cableados. En la librería flex_lcd.c están también configurados.
Hombre, seguro al 100% no lo estoy pero cuando lo enchufo a la corriente se me enciende la segunda línea con cuadrados negros y puedo regular el contraste con el potenciómetro, por lo que deduzco que sí funciona.
Esto último no lo sé. ¿Sería importante?, ¿cómo puedo saberlo si en el datasheet no pone nada?.
Gracias.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Problema LCD..
« Respuesta #3 en: 08 de Noviembre de 2007, 10:47:30 »
Una vez renegue bastante con un LCD, finalmente descubri que el valor de regulacion del contraste no era el adecuado... :mrgreen:
Esperas unos 100 milisegundos despues de energizar antes de enviarlo a configurarlo??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Gorgonas

  • PIC12
  • **
  • Mensajes: 81
Re: Problema LCD..
« Respuesta #4 en: 08 de Noviembre de 2007, 11:31:36 »
Una vez renegue bastante con un LCD, finalmente descubri que el valor de regulacion del contraste no era el adecuado... :mrgreen:
Esperas unos 100 milisegundos despues de energizar antes de enviarlo a configurarlo??

Yo el contraste creo que lo tengo bien porque los cuadrados los veo negros y puedo regular su contraste de verlos muy negros hasta hacerlos desaparecer...y al conectar el micro se ponen las dos lineas con cuadrados negros asi que algo le debe hacer el micro digo yo :S
Lo de los 100ms no tengo ni idea, no se muy bien como funciona el lcd yo use las librerias que puse antes, que imagino que se ocuparan de eso que dices tu no??

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Problema LCD..
« Respuesta #5 en: 08 de Noviembre de 2007, 11:37:07 »
Podras poner el link al la hoja de datos??
O subirla a rapidshare o algun sitio de ese estilo??

Asi podremos ayudarte mejor...

QUE IDIOTA SOY!!
EN EL PRIMER POST ESTA EL LINK!!
« Última modificación: 08 de Noviembre de 2007, 11:42:27 por MGLSOFT »
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: Problema LCD..
« Respuesta #6 en: 08 de Noviembre de 2007, 11:39:11 »
Eso tiene toda la pinta de ser algun problema con uno de los pines del micro.

Me explico, fíjate bien en el datasheet y asegurate al 100% que los pines que utilizas los configuras bien.

Posibles pines mal configurados? Los del pueto B con o sin resistencias de pull up. Los pines que tengan que ver con conversiones AD, Alguna patilla del PIC en colector abierto, etc. etc.

Mira todos los pines y asegúrate que los estás configurando bien. Pudes hacer que se enciendan y se apaguen cada 5 segundos y comprobar con el tester que verdaderamente lo hacen.

Ya nos comentas.


Un saludo desde Alicante.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Problema LCD..
« Respuesta #7 en: 08 de Noviembre de 2007, 11:44:49 »
Podrias poner una idea de que micro usas y como esta conectado el display al micro??
Esa seria para mi la forma de ayudarte a encontrar el problema...

Coincido con Azicuetano en que debe venir por los pines el problema...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Gorgonas

  • PIC12
  • **
  • Mensajes: 81
Re: Problema LCD..
« Respuesta #8 en: 08 de Noviembre de 2007, 11:53:02 »
Código: [Seleccionar]
////////////////////////////////////////////////////////////////////////////////////
//                     VsZeNeR'05     
//                     26/Agosto/05
//                     vszener@gmail.com
//   Programa:   Hola mundo
//   Version:   0.0
//
//   Dispositivo: PIC 16F628A         Compilador:    CCS vs3.227
//   Entorno IDE: MPLAB IDE v7.21      Simulador:    Proteus 6.7sp3
//
//   Notas: Se muestra por pantalla de lcd(LM016L) en la primera linea la
//         frase 'hola mundo ;)' y en la segunda linea 'VsZeNeR'05'. Tener
//         en cuenta que hay que poner la directiva NOLVP para que el pin B4 sea de
//         salida.
//
//   Conexiones:      B0 -> E           
//               B1 -> RS         
//               B2 -> RW     
//               B4 -> D4       
//               B5 -> D5           
//               B6 -> D6   
//               B7 -> D7                   
//////////////////////////////////////////////////////////////////////////////////

#include <16f628a.h>            //pic a utilizar 
//Ordenes para el programador
#FUSES NOWDT      //      No Watch Dog Timer
#FUSES PUT        //      Power Up Timer
#FUSES NOPROTECT  //      Code not protected from reading
#FUSES BROWNOUT   //    Reset when brownout detected
#FUSES NOMCLR     //      Master Clear pin used for I/O
#FUSES NOLVP      //      No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES INTRC_IO   //      Internal RC Osc, no CLKOUT
#FUSES NOCPD      //      No EE protection

#use delay (clock=4000000)         //Fosc=4Mhz

#define use_portb_lcd TRUE         //definir portb lcd
#include<lcd.c>                  //libreria manejo lcd
     
///PROGRAMA
void main(void)
{
   lcd_init();         //inicializa lcd
   printf(lcd_putc,"hola mundo ;)\nVsZeNeR'05");   //muestra por pantalla el mensaje   
}

pic 16f628
Esto es lo que intento poner,las conexiones son las mismas del ejemplo, y al conectarlo al lcd me pone todo en negro,visteis que en el datasheet pone como unas direcciones de memoria para las filas, que no son parecidas a las que pone en la libreria,
no si es importante o no :S


Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Problema LCD..
« Respuesta #9 en: 08 de Noviembre de 2007, 14:58:02 »
Fíjate de tener un loop infinito en el mail para que el programa no se esté reiniciando constantemente.
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Problema LCD..
« Respuesta #10 en: 08 de Noviembre de 2007, 15:12:22 »
Tu PIC es un 16F628 o un 16F628A ??
Pregunto porque hay diferencias, y el codigo se refiere al segundo... :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Problema LCD..
« Respuesta #11 en: 08 de Noviembre de 2007, 20:16:37 »
Tu PIC es un 16F628 o un 16F628A ??
Pregunto porque hay diferencias, y el codigo se refiere al segundo... :mrgreen:

Buen punto y además no se como será el init de esa librería pero no estaría mal esperar unos 100mseg antes de hacer el init, como para asegurar el resultado.

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Gorgonas

  • PIC12
  • **
  • Mensajes: 81
Re: Problema LCD..
« Respuesta #12 en: 08 de Noviembre de 2007, 20:24:21 »
Es el 16f628a como el que pone en el codigo :D y ya puse el loop pero nada sigue igual.
Lo del init a 100ms, no se bien a que os referis me podeis decir que parte de la libreria tendria ke cambiar¿??
Odio encontrarme en esta situacion :( es frustante ver como las cosas no funcionan cuando crees que todo esta bien, porque no sabes que mas mirar :S

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Problema LCD..
« Respuesta #13 en: 08 de Noviembre de 2007, 20:33:24 »
Es el 16f628a como el que pone en el codigo :D y ya puse el loop pero nada sigue igual.
Lo del init a 100ms, no se bien a que os referis me podeis decir que parte de la libreria tendria ke cambiar¿??
Odio encontrarme en esta situacion :( es frustante ver como las cosas no funcionan cuando crees que todo esta bien, porque no sabes que mas mirar :S

Es que no nos das muchas alternativas, tu dices que está todo bien configurado y que las rutinas están bien y demás entonces no nos queda más que pensar o que el pic no es el adecuado o que el pic tiene algún pin roto o que el lcd no funciona bien.

Lo del delay sería


void main(void)
{
   Delayms(100);   // linea agregada
   lcd_init();         //inicializa lcd
   printf(lcd_putc,"hola mundo ;)\nVsZeNeR'05");   //muestra por pantalla el mensaje   
}


y antes de hacer el mencionado delay, donde configuras los pines como e/s? lo hace la rutina lcd_init?
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Gorgonas

  • PIC12
  • **
  • Mensajes: 81
Re: Problema LCD..
« Respuesta #14 en: 08 de Noviembre de 2007, 20:52:22 »
Los pines en todas las librerias los configura el lcd_init.
Viendo un libro que se llama "Microcontrolador 16f84"de enrique palacios explica mas o menos el funcionamiento de un lcd pero en asm, pues bien hay una tabla de las direcciones de memoria de la ram del lcd lm016 donde la primera linea empieza por 0 y la segunda por 40, y en el datasheet de mi lcd que esta colgado arriba de todo, esas direcciones tienen otros valores..

Yo creo que esos valores habria que cambiarlos, porque en las librerias suele venir en valor de la segunda linea como 40 y yo lo cambio por el de mi lcd, pero el de la 1 linea no viene, igual eso pudiera ser un error , no se es una idea...

Editado, Al final ya me funciona, use la libreria flex_lcd.c y efectivamente tuve que modificarle en un par de sitios las memorias para que funcionara del todo bien. Gracias por responder a mis dudas :D
« Última modificación: 09 de Noviembre de 2007, 01:59:01 por Gorgonas »


 

anything