LCD muestra una linea en negro

Hola a todos los de la comunidad, hace ya unos dias estoy armando un circuito con un LCD pero pasa algo raro espero y ustedes sepan que pasa aqui. Lo que sucede es que estoy utilizando un LCD de 2x40 y en la simulacion todo va bien, pero ya fisico el LCD solamente muestra la primer linea en negro: cry: ya he probado la continuidad y los voltajes en el circuito y parece estar todo bien, ya rebice el oscilador en el compilador y es un XT, que es el que yo utilizo. La conexión del LCD al Micro es en el puerto B es: RS a RB2, RW a RB1, E a RB3 y D4, D5, D6 y D7 a RB4, RB5, RB6 y RB7. adjunto imagenes para aclarar mas lo que escribí ;) .
Espero que alguien sepa que se puede hacer en este caso.

Saludos y muchas gracias por leerme. :)
 

Adjuntos

  • imagen del circuito.jpg
    imagen del circuito.jpg
    180.3 KB · Visitas: 98
  • imagen conexion.JPG
    imagen conexion.JPG
    101.8 KB · Visitas: 78
creo saber lo que pasa ,la patita 3 del lcd es el contraste si esta conectada a masa se ba a ber todo negro,proba desconectandola y si se ve algo clarito despues le pones un pote de 500 ohm y regulas el contraste .otra cosa cuando el lcd lo usas en 4 bit los terminales del lcd numero 7 ,8,9,10 y 11 es mejor que los pongas a chasis ,si no los pones a chasis igual ban andar ,pero es mejor que si lo pones a chasis
 
Última edición:
el pote va desde la patita 3 del lcd a masa ,sino tenes un pote ponele una resistensia de 1 k para probar y luego le agrgas otra mas chica asta que tengas el contraste que deceas
 
Ya conecte todo como me dijiste pero todabia no paso nada, con el pote si puedo cambiar el contraste pero la pantalla sigue viendose negra. : (
 
no queda otra que revisar las coneciones ,al pic cargale un hex que sepas que funciona y tendria que funcionar ,yo siempre que tengo duda en el armado o las coneciones ,ago esto
cargo al pic un ex que funcione y pruebo
otra cosa que me paso ase unos dias ,el sintoma era igual al tuyo ,pero estava usando un lcd de 16 x2 y pic 16f84 ,y despues de revisar el circuito mil veces y cargar un hex que si estaba probado y seguia sin funcionar y sabes lo que era ,me olbide de conectar el terminal del reset a positivo, y en el esquema ese no veo que este conectado ese terminal ,nunca lo ponen en los esquemas porque se sobreentiende que uno debe saver que si el terminal del reset no esta a positivo a trabes de una resistencia de 4,7 k no funciona el pic
para el pic 16f84 y algunos otros mas es la patita numero 4 a positivo ,pero con una resistencia
en tu pic es la patita numero uno esta marcado como mclr
 
Última edición:
Creo que es porque no se efectua correctamente la sentencia de inicialización... ya es un tema del software.

Cuando conectas el LCD y si no le mandas la sentencia de inicialización queda la primer linea en negro, y en el caso de 4x20, creo que la primera y la tercera. No es un fallo, si no que queda así hasta que con el micro le mandes la sentencia de inicialización.

Las librerías de algunos compiladores ya vienen con las librerías, que incluyen la funcion INICIALIZAR.

PD: Fijate la sentencia de inicilalización del controlador de tu display en el datasheet, y juga con los tiempos de inicialización.

Saludos!
 
por eso es mejor que le carge algun progama que ya este funcionando y asy se va dar cuenta que si funciona o no ,si te fijas en la foto del pic le esta faltando conectar la patita uno del pic a positivo y segun el esquema que posteo la patita 1 es la del reset del micro
a no olvidarse de la resistensia para la patita uno
mire bien y parece que si tiene una resistencia de 10k pero no estoy seguro si esta conectado a la patita 1
 
Última edición:
parece que murio
2033.gif
 
Hola, saludos a todos. Pues el compilador que estoy utilizando es MikroC y la simulación es en Proteus. Ya he probado con otros .hex que si deberian de serbir como dice Gustavo pero todo sigue igual, lo que me lleva a pensar de que talvez sea el LCD o el micro (alguno ya murio) :confused: por que he revisado todas las conexiones y no encuentro ningun problema ahí.

Para que no quede ninguna duda les voy a adjuntar el .hex, simulacion, y codigo que hice. :)

gracias a todos por las respuestas anteriores.
 

Adjuntos

  • programa, simulacion y codigo.rar
    110.8 KB · Visitas: 35
  • imagen circuito.jpg
    imagen circuito.jpg
    38.4 KB · Visitas: 36
Las LCD aguantan bastantes perrerias, seguro que es un problema de inicializacion, si tienes paciencia hasta la puedes hacer "a mano".

Tambien puede ser un problema de velocidad, baja la velocidad del micro o añadele delays, despues ya se los sacaras.

Hay LCD muuuy lentas prueba poniendo delays de 100us es cada cambio de patillas.
 
Lego29:
a mi me pasa algo similar... que todavía no soluciono.
con mikropascal programé un 16f648 y conecté un lcd a 4 hilos al porta, solo inicializar el lcd y escribir de un string... en proteus 7.5 sp3 funcionó pero en el protoboard NO, haciendo la misma falla. ( el nivel de contraste no es, ya que le puse el potenciómetro o resistencia variable requerida)
Luego pasé el Lcd al portb y funcionó tanto en proteus como en el protoboard.
No lo entiendo, la única diferencia es el port y estan programados igual.
En estos momentos estoy leyendo el Pdf del 16f648 detalladamente, no se... me debo estar pasando por alto algún seteo necesario para que el portA funcione igual que el portB.
... y si nó cambiar de compilador... y pasarme de pascal a C
El motivo de usar el porta para el LCD es que necesito el puerto serie tambien (que se encuentra el portb)

Si tienen alguna idea... bienvenida...!

Jalva
 
Última edición:
Bueno el dia de hoy logre solucionar el problema. No fueron las conecciones todo estaba bien conectado, tansolo aplique un delay en el codigo y todo funciono muy bien, gracias por las respuestas. : D

Saludos.
 
Puedes colocar un delay entre cada comando y en la inicialización del lcd(habitualmente son 15ms) y usar el power on timer,sobre todo si estas usando un cristal de mas de 4 Mhz,habitualmente entre cada comando se debe esperar 1µs y revisar el tema del contraste que se le manda un pot de 10k
 
Hola a todos, acabo de comprar un LCD igual al que comentan (40x2) y no lo puedo hacer funcionar, me podrían proporcionar la configuración de los pines de este?, tal vez no lo estoy conectando bien, les agradeceré enormemente si me pueden ayudar con esto.
 
Lego29:
a mi me pasa algo similar... que todavía no soluciono.
con mikropascal programé un 16f648 y conecté un lcd a 4 hilos al porta, solo inicializar el lcd y escribir de un string... en proteus 7.5 sp3 funcionó pero en el protoboard NO, haciendo la misma falla. ( el nivel de contraste no es, ya que le puse el potenciómetro o resistencia variable requerida)
Luego pasé el Lcd al portb y funcionó tanto en proteus como en el protoboard.
No lo entiendo, la única diferencia es el port y estan programados igual.
En estos momentos estoy leyendo el Pdf del 16f648 detalladamente, no se... me debo estar pasando por alto algún seteo necesario para que el portA funcione igual que el portB.
... y si nó cambiar de compilador... y pasarme de pascal a C
El motivo de usar el porta para el LCD es que necesito el puerto serie tambien (que se encuentra el portb)

Si tienen alguna idea... bienvenida...!

Jalva

A mi me paso lo mismo con un AVR el problema de trabajar con 4 hilos en ves de 8 esta en la inicializacion, para que no te felle primero inicializa el modulo a 8 hilos y despues cambias la configuracion inicializandolo a 4 hilos, yo antes no hacia esto y me falla en la practica aunque en el simulador si funcionaba, de hecho en la datasheet del micro del display te recomiendan que hagas esto

A ver si te sirve
 
Atrás
Arriba