LCD gráfico con un nokia 5125

Que tal cuy9000

Ese script es de los primeros que hice. Apenas empezaba a entender el LCdHype, por lo que hay algunas cosas por optimizar :D. Veo que lo has adaptado sin el MBM, usando el Speedfan.

Ese problema se debe a que estas usando dos veces esta instrucción en el script

Código:
%System.CPU(Usage)

En el programa hay un Bug que impide ejecutar por duplicado esta función. La segunda impide el funcionamiento de la primera, por lo que el resultado es 0 por eso la linea de temperatura se queda sin movimiento

La solución consiste en introducir el valor del uso del CPU en una variable. Digamos esta:

En el encabezado

Código:
%DefVar(Uso=0)

Y dentro del cuerpo del programa

Código:
%Assign(Uso,%System.CPU(Usage))

De esta forma, la variable Uso será la que almacene el valor de uso del CPU y la podemos usar muchas veces sin problemas.

Aqui el Script corregido

Código:
#Header
%DefVar(Xmin=0)
%DefVar(Xmax=83)
%DefVar(Ymin=0)
%DefVar(Ymax=47)
%DefVar(base1=22)
%DefVar(base2=0)
%DefVar(base3=47)
%DefVar(Uso=0)
/dibuja eje Y, Xmin/
%Graph.Pen(%Xmin(),%Ymin(),1)
%Graph.LineTo(%Xmin(),%Ymax(),1)
/dibuja eje Y, Xmax/
%Graph.Pen(%Xmax(),%Ymin(),1)
%Graph.LineTo(%Xmax(),%Ymax(),1)
/dibuja eje X, Ymin/
%Graph.Pen(%Xmin(),%Ymin(),1)
%Graph.LineTo(%Xmax(),%Ymin(),1)
/dibuja eje intermedio X, Ymin/
%Graph.Pen(%Xmin(),24,1)
%Graph.LineTo(%Xmax(),24,1)
/dibuja eje X, Ymax/
%Graph.Pen(%Xmin(),%Ymax(),1)
%Graph.LineTo(%Xmax(),%Ymax(),1)
%DefVar(IncTsys=-1)
%Graph.Font('Terminal',5,1)
%Graph.SetInvertArea(1,1,82,46)
%Graph.SetTextArea(0,0,84,48)
%Common.SetPriority(1000)
#EndHeader
#GfxMode
%Common.ChangeScreen(82000,10)
/contador de actualizaciones de pantalla/
%Assign(Uso,%System.CPU(Usage))
%Format.Offset(Horizontal,52)
%Format.Offset(Vertical,2)
"CPU:"%Uso()
%Assign(IncTsys,%Inc(%IncTsys(),1))
%Graph.Pen(%IncTsys(),%base1(),1)
%Assign(base2,%Trunc(%Div(%Uso(),7)))
%Assign(base1,%Dec(22,%base2()))
/Temperatura/
%Common.CreateNewLine(1,55,26)
"TCPU:"%Trunc(%UsePlugin('speedfan\speedfan.dll',getTemp, 1))
%Graph.LineTo(%IncTsys(),%base1(),1)
%Graph.Pen(%IncTsys(),%base3(),1)
%Assign(base3,%Dec(57,%UsePlugin('speedfan\speedfan.dll',getTemp,1)))
%Graph.LineTo(%IncTsys(),%base3(),1)
%Common.CreateNewLine(1,2,26)
%System.GetDateTime(hh:nn:ss)
%Common.CreateNewLine(1,2,2)
%System.GetDateTime(dd|mm|yy)
#EndGfxMode

Recuerda que la linea
Código:
%Common.ChangeScreen(80000,10)

Controla la actualización de la pantalla y que el valor de la duracion del script antes del salto, corresponde al numero de pixeles por la prioridad. En este caso
Prioridad= 1000
Longitud en pixeles de la linea: 82
Resultado= 82000

NOTA: Mi CPU trabaja entre 11ºC y 19ºC, por tanto debes ajustar la instrucción

Código:
%Assign(base3,%Dec(57,%UsePlugin('speedfan\speedfan.dll',getTemp,1)))

Para que muestre la linea de temperatura a la altura adecuada para tu sistema. En mi caso 57 es el valor que me sirve, en tu caso debe ser un valor +/- 20 unidades mayor, será cosa de probar

Un script más avanzado, permite evitarse la actualización al llenarse la pantalla. Este script mantiene una linea continua todo el tiempo.

Código:
#Header
 %DefVar(Xmin=0)
 %DefVar(Xmax=83)
 %DefVar(Ymin=0)
 %DefVar(Ymax=47)
 /dibuja eje Y, Xmin/
 %Graph.Pen(%Xmin(),%Ymin(),1)
 %Graph.LineTo(%Xmin(),%Ymax(),1)
 /dibuja eje Y, Xmax/
 %Graph.Pen(%Xmax(),%Ymin(),1)
 %Graph.LineTo(%Xmax(),%Ymax(),1)
 /dibuja eje X, Ymin/
 %Graph.Pen(%Xmin(),%Ymin(),1)
 %Graph.LineTo(%Xmax(),%Ymin(),1)
 /dibuja eje intermedio X, Ymin/
 %Graph.Pen(%Xmin(),24,1)
 %Graph.LineTo(%Xmax(),24,1)
 /dibuja eje X, Ymax/
 %Graph.Pen(%Xmin(),%Ymax(),1)
 %Graph.LineTo(%Xmax(),%Ymax(),1)
 %Graph.SetTextArea(0,0,84,48)
 %Graph.SetInvertArea(1,1,82,24)
 %Graph.SetInvertArea(1,25,82,46)
 %Graph.Font('Terminal',5,1)
 %Common.SetPriority(1000)
 %Param.RenderMode(Simple)
 %DefVar(CoorX=0)/Coordenada X para el gráfico/
 %DefVar(CoorYUso=22)/Coordenada Y para el gráfico Uso del CPU/
 %DefVar(CoorYT=58)/Coordenada Y para el gráfico Temperatura del CPU/
 /Posición del punto "X0" de las lineas/
 %DefVar(X=0)
 /Altura de referencia "Y" inicial del Uso del CPU/
 %DefVar(YUso=22)
 /Altura de referencia "Y" inicial de Temperatura del CPU/
 %DefVar(YT=58)
 /Longitud en Pixeles-pantalla de la linea/
 %DefVar(PX=82)
 /Lista Uso del CPU/
 %DefList(ListaUso,Local)
 /Lista Temperatura del CPU/
 %DefList(ListaT,Local)
 %DefVar(contador=0)/Crear el contador/
 /Variable que presenta valor de uso del CPU/
 %DefVar(Uso=0)
#EndHeader

#GfxMode
 /Asignamos valor a la variable Uso del CPU/
 %Assign(Uso,%System.CPU(Usage))
 /Debido a que hay un bug al usar solo saltos de linea, el uso de un desplazamiento de texto sirve para corregirlo/
 %Format.Offset(Horizontal,1)
 /Linea de Uso del CPU/
 %If(%contador() > %PX())
   /Si la lista está llena borramos el dato mas antiguo/
   Then{%List.Delete(ListaUso, 0)%List.Delete(ListaT, 0)}
   Else{%Assign(contador,%Inc(%contador(),1))}
 /Añadimos a la lista el Uso del CPU/
 %List.Add(ListaUso,%Trunc(%Div(%Uso(),7.5)))
 /Añadimos a la lista la temperatura del CPU/
 %List.Add(ListaT,%Trunc(%UsePlugin('speedfan\speedfan.dll',getTemp, 1)))
 /Presentamos el ultimo valor agregado ala lista de uso del CPU/
 %Common.CreateNewLine(1,50,2)'%'"CPU:"%Uso()
 /Presentamos el ultimo valor agregado ala lista de Temperatura del CPU/
 %Common.CreateNewLine(1,45,26)"TCPU:"%ListaT(%Dec(%contador(),1))'øC'
 /Hora/
 %Common.CreateNewLine(1,2,26)%System.GetDateTime(hh:nn:ss)
 /Fecha/
 %Common.CreateNewLine(1,2,2)%System.GetDateTime(dd|mm|yy)
 /Preparamos el gráfico para que se pueda ver el movimiento de la linea/
 %Param.OverlayMode()
 /Fijamos pixel en X inicial/
 %Assign(CoorX,%X())
 /Posicionamos linea de Uso de CPU en el valor inicial de la lista de Uso del CPU/
 %Assign(CoorYUso,%Dec(%YUso(),%ListaUso(0)))
 /Posicionamos linea de Uso de CPU en el valor inicial de la lista de Uso del CPU/
 %Assign(CoorYT,%Dec(%YT(),%ListaT(0)))
 /Lectura de la lista y presentación en forma de linea/
 %Loop.For(N,0,%Dec(%contador(),1),1)
   { %Assign(CoorX,%Inc(%CoorX(),1))
     /Linea de Uso del CPU/
     %Graph.Pen(%CoorX(),%CoorYUso(),1)
     %Assign(CoorYUso,%Dec(%YUso(),%ListaUso(%N())))
     %Graph.LineTo(%CoorX(),%CoorYUso(),1)
     /Linea de Uso del CPU/
     %Graph.Pen(%CoorX(),%CoorYT(),1)
     %Assign(CoorYT,%Dec(%YT(),%ListaT(%N())))
     %Graph.LineTo(%CoorX(),%CoorYT(),1)
   }
#EndGfxMode
Consume un poco más de recursos, por lo que hay que aumentar la prioridad a 5000 +/-.

Para que la temperatura se muestre en niveles adecuados para tu sistema, debes aumentar estos dos valores en el encabezado. Controlan la posición de la linea de temperatura del CPU
Código:
%DefVar(CoorYT=58)
%DefVar(YT=58)
Nuevamente, es posible que necesites aumentar +/- 20 unidades
 
Hola necesito la inicializacion del lcd del nokia 3390 en assembler y la hoja de datos, ya que deseo controlar el lcd por medio del hc08jk1-3 y gp32 de motorola .

Y me hacen falta conocer los comandos y sus tiempo de retardo si alguien tiene una sugerencia gracias
 
CygnusX, me di cuenta de algo que me esta volviendo loco... cuando cargo un BMP y luego quiero poner el script que me aconsejaste no se queda pintado las lineas, osea se actualiza cada segundo y el BMP borra la linea que se va creando. Como puedo solucionar esto usando un bmp como fondo?

Gracias
 
rocky4 dijo:
Hola necesito la inicializacion del lcd del nokia 3390 en assembler y la hoja de datos, ya que deseo controlar el lcd por medio del hc08jk1-3 y gp32 de motorola.

Y me hacen falta conocer los comandos y sus tiempo de retardo si alguien tiene una sugerencia gracias

Desconozco el tema, quizás puedas consultar en la página del LCDHype, este año se diseñó un nuevo driver para el PCD8544 por USB y el autor de dicho driver, frecuenta la página, quizás él tenga algunas respuestas que te puedan ayudar =)

cuy9000 dijo:
CygnusX, me di cuenta de algo que me esta volviendo loco... cuando cargo un BMP y luego quiero poner el script que me aconsejaste no se queda pintado las lineas, osea se actualiza cada segundo y el BMP borra la linea que se va creando. Como puedo solucionar esto usando un bmp como fondo?
Gracias

Colocando la instrucción que carga el dibujo de fondo en el encabezado, con eso solucionas el problema
 
cuy9000 dijo:
CygnusX, gracias funciono perfectamente :p

Que bien!!!!!!. Haber si nos compartes algunas fotos!, siempre que veo fotos de LCd´s del tipo que nos ocupa, me motiva a terminar los pendientes que me quedan jeje.

En cualquier caso a disfrutar xD

metro dijo:
No he seguido con mi poryecto pues me ha dado "cosita" perforar el PCB y pasar los hilos.. Pero en esta semana si le saco ratico lo termino
Tengo unas ganas de LCD ....

Estimado no te preocupes por perforar el PCB, solo cuida de no afectar las pistas que unen a los leds (si es que los vas a usar) y lo mismo trata de cuidar las pistas de los conectores.

El PCB es bastante duro, ya que tiene un núcleo de láminas de cobre, pero si usas una broca para metal con el taladro o dremel a toda velocidad podrás traspasarla sin problemas.

Haber ya queremos ver ese proyecto jeje

Saludos.
 
nokia 3390_

hola
Monte actualmente un lcd 3390 y corri un script en lcdhype y no me mustra absolutamente nada ya instale y configure el puerto lpt1 como epp y no me funciona , me gustaria saber si alguien sabe acerca de como comprobra que el lcd funciona o si el puerto me manda los datos que son gracias
 
rocky4 dijo:
hola
Monte actualmente un lcd 3390 y corri un script en lcdhype y no me mustra absolutamente nada ya instale y configure el puerto lpt1 como epp y no me funciona , me gustaría saber si alguien sabe acerca de como comprobra que el lcd funciona o si el puerto me manda los datos que son gracias
La única forma de saber que está funcionando es que esté conectado a la PC y que te de imagen al cargar el LCDHype.

Intenta pasando el LPT a modo ECP. Recuerda activar el driver adecuado ( Nokia/Phillips PCD8544) asi como de marcar la casilla de salida al LCD.

Lineas atrás se ha tratado el tema de las fallas, y casi siempre tienen que ver con defectos en las soldaduras. Te sugiero que verifiques la continuidad de cada cable o alambre conectado al LCD. Reverifica las conexiones de acuerdo al diagrama de conexiones.

Me gustaría, en la medida de tus posibilidades, que subieras una foto de tu proyecto, de esta forma me puedo formar una idea de como está el montaje. Si no es posible, dame una idea general de lo que has hecho y como lo has hecho. Así podré darte una mejor asesoría.

Monté un 3390b con éxito, la ventaja de ese tipo de LCD, es que no tienes que lidiar con un PCB y mucho menos soldar en pines estrechos. Espero esa información para poder hacer que funcione tu LCD.

metro dijo:
Ome Cygnus... que buen trabajo haces... me animaste a trabajarle de nuevo....
smiley%20-%20classic.gif
smiley%20-%20classic.gif
smiley%20-%20classic.gif

Lo importante es que podamos recuperar cosas que dabamos por perdidas. A mi parecer este proyecto es muy económico, pero eso si, dependiendo de lo que queremos obtener, será el tiempo que le dediquemos.

Sigo con la idea de hacer una especie de "minicarcasa" para el LCD, pero siempre surgen pretextos para no terminarlo, pero te aseguro que algún día lo acabaré jeje. Por el momento el tema de la retroiluminación ya no me preocupa, hallé una forma sencilla, ahora será cosa de darme tiempo para comprar mas leds y ponerme a trabajar.

Saludos y Felices fiestas! :p

Actualización para instalar el controlador para PCD8544 por USB

Notas previas

Lineas atrás toqué el tema de la instalación de un nuevo driver que posibilita conectar un LCD de Nokia (PCD8544) por puerto paralelo. La forma en que lo instalé en ese momento al parecer funcionó. Sin embargo, hace poco me vi en la necesidad de formatear y reinstalar todo de nuevo. Seguí el proceso y no me funcionó.

Sin embargo hallé otra forma de hacerlo y funcionó. He aquí los pasos que seguí:

Procedimiento

1.- Crear la carpeta:
Código:
C:\Archivos de programa\LCDHype\controller\USB_PCD8544
2.- Extraer allí todos los archivos del comprimido: USB_PCD8544.rar

3.- Modificar el archivo: InstallUSBdrivers.bat ubicado en esta carpeta:
Código:
C:\Archivos de programa\LCDHype\controller\USB_PCD8544\Drivers

Colocándo esta ruta de instalación:
Código:
C:\Archivos de programa\LCDHype\controller\USB_PCD8544\Drivers\ftd2xx.inf

En lugar de esta ruta que trae por default:

Código:
c:\progra~1\lcdhype\controller\predator_mf\Drivers\ftd2xx.inf

4.- Guardar cambios

5.- Durante la instalación se pedirán un par de redireccionamientos, el primero lo debemos mandar a esta ruta:
Código:
C:\Archivos de programa\LCDHype\controller\USB_PCD8544
y el segundo, hacia esta ruta:
Código:
C:\Archivos de programa\LCDHype\controller\USB_PCD8544\Drivers

De esta forma podremos tener instalado el nuevo driver: FT232BM USB Display Driver v1.0(Nokia PCD8544)

6.- Cargamos el LCDHype nuevamente y listo, nuevo driver instalado al final del listado de controladores del LCDHype
 

Archivos adjuntos

  • usbPCD8544.JPG
    usbPCD8544.JPG
    76.1 KB · Visitas: 141
hola ya me funciona el lcd era unas conexiones mal hechas, pero ahora lo que me pasa es que al momento de que el lcd se actualiza muestra algunos datos incorrectos )basura= y otra vez vuelve a mostrar datos correctos esto me sucede al ejecutar el programa de hora y fecha
 
rocky4 dijo:
hola ya me funciona el lcd era unas conexiones mal hechas, pero ahora lo que me pasa es que al momento de que el lcd se actualiza muestra algunos datos incorrectos )basura= y otra vez vuelve a mostrar datos correctos esto me sucede al ejecutar el programa de hora y fecha

Que bien!!!!!. Ojalá y puedas compartir fotos de tu proyecto

¿En que modo configuraste el LPT?. Intenta con los dos modos: ECP o bien EPP v1.9, haber si persiste en ambos. Lo recomendable es que quede en modo EPP.

Este mismo problema lo tuvo junior19833 en sus LCD´s, me parece que es una cuestión con los fonts en windows, usaba un software para suavizar las letras en windows: cleartype. Ese programa lo dejo configurado en modo standar y el problema se solucionó.
 
lcd por fin

ahora si por fin pude inicializar el lcd, fueron algunos descuidos en el circuito pero es facil de montar , ahora si me falta para mi proyecto llerme la hoja de datos para poder manejarlo con un microcontrolador si alguien lo ha manejado , me puede dar sugerencias gracias
ahi adjunto la hoja de datos del pcd 8544 que es el controlador de ese tipo de lcd
 

Archivos adjuntos

  • lcd_controller_pcd8544.pdf
    155 KB · Visitas: 157
rocky4 dijo:
ahora si por fin pude inicializar el lcd, fueron algunos descuidos en el circuito pero es facil de montar , ahora si me falta para mi proyecto llerme la hoja de datos para poder manejarlo con un microcontrolador si alguien lo ha manejado , me puede dar sugerencias gracias
ahi adjunto la hoja de datos del pcd 8544 que es el controlador de ese tipo de lcd
Que bien que al final has podido hacerlo funcionar!. Fotos, fotos!!!!!

Para el manejo del LCD por medio de microcontroladores, he visto algunas páginas, entre las que mas me han gustado, sobre todo por los ejemplos de circuitos para conectar LCD´s con micros, son estas:

Ejemplos para conectar LCD´s

Manejo de PCD8544

Hay otra más pero no hallo el link, en cuanto lo encuentre lo posteo.

Saludos:p
 
Hola q tal....

Realize el prodedimeinto hasta obtener el lcd y el pcb pero me di cuenta q algo andaba mallll =( mi celular no era nu nokia ....

Como hago para realizar el proyecto con un motorola c139 se puede?

posteo fotos?

Muchas gracias
 
Hola, quisiera que alguien me dijera si han logrado hacer q la conexion se realize mediante el puerto serial en ves del paralelo, ya que mi board no dispone de ese puerto,,,
ok gracias
 
alma fuerte 18 dijo:
Hola q tal....

Realize el prodedimeinto hasta obtener el lcd y el pcb pero me di cuenta q algo andaba mallll =( mi celular no era nu nokia ....

Como hago para realizar el proyecto con un motorola c139 se puede?

posteo fotos?

Muchas gracias

No lamento decirte que no es posible conectarlo.

junior19833 dijo:
Hola, quisiera que alguien me dijera si han logrado hacer q la conexion se realize mediante el puerto serial en ves del paralelo, ya que mi board no dispone de ese puerto,,,
ok gracias

Junior la cuestión es que el LCDHype no soporta la salida serial. La mejor opción es por USB, pero aquí nos enfrentamos al tema de conseguir el chip que sirve de interfase: FT232BM, no lo he podido hallar :( así que el tema de conectar por USB lo tengo aun pendiente y aun no sé cómo funciona
 
CygnusX dijo:
No lamento decirte que no es posible conectarlo.



Junior la cuestión es que el LCDHype no soporta la salida serial. La mejor opción es por USB, pero aquí nos enfrentamos al tema de conseguir el chip que sirve de interfase: FT232BM, no lo he podido hallar :( así que el tema de conectar por USB lo tengo aun pendiente y aun no sé cómo funciona


Pues entonces la pantalla de lcd por separada no sirve para nada nada? antes que tirarla prefiero hacer cualquier cosa...
Este es el mayor asesinato de mi vida

Pues por algun lado escuche q para hacer esto mismo se compraban una pantallita por separado...

esto no equivale a la q tengo?
 
alma fuerte 18 dijo:
Pues entonces la pantalla de lcd por separada no sirve para nada nada? antes que tirarla prefiero hacer cualquier cosa...
Este es el mayor asesinato de mi vida

Pues por algun lado escuche q para hacer esto mismo se compraban una pantallita por separado...

esto no equivale a la q tengo?

Mira la cuestión que recalco nuevamente es que antes de aventurarse con el proyecto, hay que primero leer, leer y leer, precisamente para no tener este tipo de fallos, siento mucho que te haya pasado justo a ti, pero me apena decírtelo, esos LCD´s de celular no sirven y hasta ahora no he visto algo útil con ellos.

La pantalla te podría servir siempre y cuando uses un microcontrolador pero ya no se podría conectar a la PC. Aquí el problema es saber exàctamente los voltajes, pinout, y características eléctricas y de manejo de datos y entrar en el campo de prueba y error.

Lamento decirte que te informaron a medias, por eso adjunté un listado de los modelos de nokia que sirven. El proyecto es fácil de conseguir cuando sigues los pasos uno por uno pero con el modelo correcto.

Me apena que haya fallado tu proyecto, pero quizás algún amigo ó familiar tenga uno de los móviles que sirve, no te desanimes y sigue buscando. Suerte.
 

Los últimos temas