jueves, 11 de julio de 2013

Comprobador LCD NOKIA 5110 basado en PIC16F628A

Dejo un comprobador de "LCDs NOKIA 5110 baratos", basado en el controlador PCD8544 (similar al de NOKIA 3110 y varios mas).




Este concretamente esta diseñado para hacer coincidir los pines con los LCDs más comunes que circulan por Ebay.

Debido a que multitud de ellos llegan directamente fallando y tras muchas vueltas por foros, leer, releer y comprobar, me temo que el fallo es debido a la pésima calidad del elastómero (conector cebra, goma conductora...) que une los pads de la PCB con el LCD.

El "chisme" me ha ayudado a salvar algunos aunque la mayoría terminan desesperándome y es prácticamente imposible, a menos que se sustituya el elastomero por uno de calidad, los cuales aun no he encontrado a precio asequible.

La principal ventaja que tiene respecto a probar el LCD directamente en algún prototipo, es que, tiene un modo de inicialización continua, es decir, esta continuamente inicializando el LCD.

De no ser así, al mover ligeramente o presionar la pantalla para las pruebas, algunos pads dejan de hacer contacto, quedando el controlador "frito" hasta nueva inicializacion. Esto me obligaba a reiniciar completamente el prototipo para que le volviese a enviar la secuencia de inicializacion.

Además, ayuda a comprobar tanto que todos los pixeles están OK como a encontrar el contraste mas adecuado a cada pantalla.

Incorpora un jumper para activar/desactivar la retroiluminación y un socket para la programacion del PIC via ICSP.

Se alimenta desde unos 4,5 a 13vcc, yo uso una pila de 9v.
Ademas le he fabricado un soporte en acrílico que lleva incluido un imán de neodinimo, este ayuda a mantener la pila en su lugar.

Esquema

Pulsador1: Modo inicialización continua/sin inicializacion.
Pulsador2: Modo LCD (Normal, Contraste invertido, Todos los pixeles activados, Todos los pixeles desactivados).
Pulsador3:Contraste - (mínimo 0).
Pulsador4:Contraste+ (máximo 127).

Video demostrativo:

 

 


El archivo contiene tanto el esquema en formato .png como el firmware en formato .hex para grabar directamente al PIC. Descarga de Archivo

Tambien puedes descargar las fuentes para CCS con la libreria LCD incluida. Fuentes.

Y además, si dispones de una impresora 3D aqui tienes una carcasa para el LCD. Carcasa.

Carcasa impresa en 3D



*20/Dic/2013 Añadido enlace a carcasa impresa en 3D.

*16/Dic/2013 Añadido codigo fuente para CCS (libreria LCD incluida). Tras varias peticiones.

*Editado 14/Jul/2013: Corregido esquema, indicaba un PIC16F648A en lugar de un PIC16F628A.

11 comentarios:

Anónimo dijo...

Buenas,
Podrias decirme que modificaciones son necesarias para hacerlo funcionar en el pic16f877a

Manuel Bernal Loro dijo...

Gracias amigo, por fin encontré un programa del LCD con pic, ahora se encuentra con Arduino :s

Manuel Bernal Loro dijo...
Este comentario ha sido eliminado por el autor.
Manuel Bernal Loro dijo...
Este comentario ha sido eliminado por el autor.
Anónimo dijo...

Muchas Gracias Hermano, gracias por compartir material como este, sos un grande.

wkats dijo...

Hola, muy buenas. El post es algo viejo pero me acaba de salvar de tener canas verdes. Estoy haciendo algo similar para un MSP430-G2553 y por todos lados solo encuentra uno cosas para Arduino.... revisando tu código me di cuenta de que la manera en que estaba yo usando el reloj estaba mal, corrigiendo 2 líneas ya pude meter a la pantalla los datos que quería. Muchas gracias por el aporte :D

Anónimo dijo...

Hola,
Podrias publicar el diagrama sch nuevamente ya que se ve borroso
y no tendras el codigo pero en ensamblador para el pic?

Gracias!

villamany dijo...

Hola, haz clic en la imagen pata verla mas grande.

No tengo ahora a mano el codigo pero con el propio CCS puedes verlo en ensamblador.

Anónimo dijo...

Hola, no tengo el CCS, no se C, pero puedo editar el .lst o bien tienes 2 archivos, el .hex y el .cof el .cof para que sirve? y ya grabe el .hex al pic pero es un pic16LF648A está bien pues es lo que vi en el fuente, y en un principio como que funciono pero inmediatamente dejo de desplegar y ya no lo volvio a hacer aun desconectando la energia y vuelto a polarizar, que podra ser, no veo claras las rutinas de la comunicacion con la pantalla, las podrias aislar y publicar? Gracias!

Unknown dijo...

se ve muy bien voy a probar el codigo y las librerias muy buen aporte gracias

Leo dijo...

Donde se descarga el código en c?