Autor Tema: Problema con lcd  (Leído 5471 veces)

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

Desconectado fco1306

  • PIC16
  • ***
  • Mensajes: 128
Problema con lcd
« en: 28 de Junio de 2013, 15:27:57 »
Tengo un par de lcd del tipo
http://www.engineersgarage.com/electronic-components/16x2-lcd-module-datasheet

que no soy capaz de hacer funcionar.
En su día lo conseguí, pero ahora nada.Uso el pic simulator ide y un 16f877A, conectado el lcd al puerto C, configurado como salidas.
Para empezar un par de dudas con la electrónica.

-Cuando se conecta sólo a la alimentación el lcd se enciende.Conectado el pin de contraste a gnd se ilumina la primera fila pero poco. ¿es así?, ¿no debería iluminarse bastante más? Las veces que lo hice funcionar creo que sí que se iluminaba bastante más.
-Para conectar el led de iluminación de la pantalla, con una resistencia de 330 y alimentando los pines led+ y led- ¿sería suficiente?

Muchas gracias

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Problema con lcd
« Respuesta #1 en: 29 de Junio de 2013, 07:45:55 »
Revisa la pagina de ejemplos del lenguaje, hay casi para todo.

http://www.oshonsoft.com/picbasiccompilerexamples.html

Casi siempre aunque no funcione el display se suele quedar la línea superior en negro, pero no siempre. Y si das mucho contraste puede que esté funcionado el LCD pero no observes cambios porque están las líneas en negro y tapan los caracteres o al revez, poco contraste hace que no se vea nada en la pantalla.
« Última modificación: 29 de Junio de 2013, 07:52:32 por dogflu66 »
Saludos desde Granada, España.

Desconectado fco1306

  • PIC16
  • ***
  • Mensajes: 128
Re: Problema con lcd
« Respuesta #2 en: 29 de Junio de 2013, 13:53:23 »
He mirado conexiones y cambiado de puerto y de momento seguimos igual.
Tengo conectado el led del lcd.
Con máximo contraste aparece la primera línea en negro y la 2ª sin nada.
Sin contraste las dos sin nada. A lo mejor puede ser problema de contraste. El caso es que conecto el contraste a gnd  porque ,de momento, no tengo potenciómetro, tengo que comprar uno.
 Una pregunta, he visto en los ejemplos la orden Define LCD_READ_BUSY_FLAG = 1 que en los ejemplos del foro no aparece. ¿qué significa?

Muchas gracias

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Problema con lcd
« Respuesta #3 en: 30 de Junio de 2013, 08:07:59 »
No lo he utilizado nunca, pero por lo que he podido ver en el manual se utiliza a la hora de la simulación, hace que se acelere algo más la simulación saltándose el tiempo de estabilización de la señal de R/W del display.
Saludos desde Granada, España.

Desconectado fco1306

  • PIC16
  • ***
  • Mensajes: 128
Re: Problema con lcd
« Respuesta #4 en: 30 de Junio de 2013, 18:12:04 »
Pues problema de contraste no es.He puesto una resistencia de 2k2 en el contraste y sigue sin funcionar.En algún foro he leido que si sólo se ven cuadrados negros, como me pasa a mí, es problema de que el lcd no se inicializa.
En pic simulator va bien. Parece que es problema de la electrónica pero aún no he encontrado el fallo. Seguiré buscando.
Muchas gracias.

Desconectado fco1306

  • PIC16
  • ***
  • Mensajes: 128
Re: Problema con lcd
« Respuesta #5 en: 02 de Julio de 2013, 14:31:16 »
Vaya cosa, igual es problema del compilador.Cuando he pasado la configuración del lcd al puerto b, me aparece escritura en la primera línea sólo. Es como si sólo inicializara la primera línea. Estoy usando un 16f877 y estoy seguro que los puertos a,c,d funcionan, ya que tengo conectado un teclado y 8 leds que se encienden y apagan sin problemas.Versión 6.91 de pic simulator.
Qué estraño.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Problema con lcd
« Respuesta #6 en: 03 de Julio de 2013, 07:51:44 »
No he tenido problemas con el LCD con ninguna versión del Basic PSI. Esta me funciona bien en un Pic16F877A.

Código: [Seleccionar]
'Include "_ProcInitEBasic.bas"
Proc _initebasic()
'Puerto del LCD---------------------------------------------
Define LCD_BITS = 8
Define LCD_DREG = PORTB
Define LCD_DBIT = 0
Define LCD_RSREG = PORTC
Define LCD_RSBIT = 0
Define LCD_EREG = PORTC
Define LCD_EBIT = 4
Define LCD_RWREG = PORTC
Define LCD_RWBIT = 1
Define LCD_COMMANDUS = 2000  'Tiempo de espera despues de ejecutar un comand del lcd en uSeg.
Define LCD_DATAUS = 50  'Tiempo de espera despues de enviar un dato al LCD en uSeg.
Define LCD_INITMS = 50  'Tiempo de espera despues de inicializar el Display, solo se ejecuta una vez en mSeg.
'Configuración Placa EBasic ----------------------------------------
AllDigital  'los pin I/O digitales
CMCON = 0x07  'comparador a off
TRISA = 0x00  'Puerto A como salidas
TRISB = 0x00  'puerto B como salidas
TRISC = 0x00
TRISD = 0x00
TRISE = 0x00
TRISA.0 = 1
TRISA.1 = 1  'como entrada (RA1, adc)
TRISC.7 = 1
'TRISA.6 = 1  'como entrada (RA6, tecla S1)
'TRISA.5 = 1  'como entrada (RA5, tecla S2)
'TRISB.5 = 0 'RB5(Tx, RS232)
'TRISB.2 = 1  'RB2 (Rx, RS232)
'PORTB.3 = 1  'luz lcd a on (RB3)
'PORTA.7 = 1  'led amarillo a off
'PORTB.0 = 1  'led verde a off
'******************************************************************
'Inicio Programa---------------------------------------------------
Lcdinit  'inicializa el LCD sin cursor
End Proc                                          

Trabajando de esta manera:

Define CONF_WORD = 0x3f72
Define CLOCK_FREQUENCY = 20
Saludos desde Granada, España.

Desconectado Troublemaker_of_pics

  • PIC10
  • *
  • Mensajes: 12
Re: Problema con lcd
« Respuesta #7 en: 03 de Julio de 2013, 13:08:38 »
No he tenido problemas con el LCD con ninguna versión del Basic PSI. Esta me funciona bien en un Pic16F877A.

Código: [Seleccionar]
'Include "_ProcInitEBasic.bas"
Proc _initebasic()
'Puerto del LCD---------------------------------------------
Define LCD_BITS = 8
Define LCD_DREG = PORTB
Define LCD_DBIT = 0
Define LCD_RSREG = PORTC
Define LCD_RSBIT = 0
Define LCD_EREG = PORTC
Define LCD_EBIT = 4
Define LCD_RWREG = PORTC
Define LCD_RWBIT = 1
Define LCD_COMMANDUS = 2000  'Tiempo de espera despues de ejecutar un comand del lcd en uSeg.
Define LCD_DATAUS = 50  'Tiempo de espera despues de enviar un dato al LCD en uSeg.
Define LCD_INITMS = 50  'Tiempo de espera despues de inicializar el Display, solo se ejecuta una vez en mSeg.
'Configuración Placa EBasic ----------------------------------------
AllDigital  'los pin I/O digitales
CMCON = 0x07  'comparador a off
TRISA = 0x00  'Puerto A como salidas
TRISB = 0x00  'puerto B como salidas
TRISC = 0x00
TRISD = 0x00
TRISE = 0x00
TRISA.0 = 1
TRISA.1 = 1  'como entrada (RA1, adc)
TRISC.7 = 1
'TRISA.6 = 1  'como entrada (RA6, tecla S1)
'TRISA.5 = 1  'como entrada (RA5, tecla S2)
'TRISB.5 = 0 'RB5(Tx, RS232)
'TRISB.2 = 1  'RB2 (Rx, RS232)
'PORTB.3 = 1  'luz lcd a on (RB3)
'PORTA.7 = 1  'led amarillo a off
'PORTB.0 = 1  'led verde a off
'******************************************************************
'Inicio Programa---------------------------------------------------
Lcdinit  'inicializa el LCD sin cursor
End Proc                                          

Trabajando de esta manera:

Define CONF_WORD = 0x3f72
Define CLOCK_FREQUENCY = 20
prueba a darle más tiempo entre cada comando enviado. A veces me sucede lo mismo cuando mi circuito no se enciende correctamente y existe alguna guiñada en la alimentación.
Ignorante el que cree saberlo todo.

Desconectado Troublemaker_of_pics

  • PIC10
  • *
  • Mensajes: 12
Re: Problema con lcd
« Respuesta #8 en: 03 de Julio de 2013, 14:29:32 »
cambia el valor de la resistencia del led del display, puede que sea un valor muy alto y no esté iluminando suficiente. Recuerda que la iluminación tanbíen juega papel en las ''sombras'' que hacen los pixeles.
Ignorante el que cree saberlo todo.

Desconectado fco1306

  • PIC16
  • ***
  • Mensajes: 128
Re: Problema con lcd
« Respuesta #9 en: 04 de Julio de 2013, 17:30:07 »
Yo tengo Define LCD_BITS = 4 (debería de funcionar configurado sólo a 4 bit)
Funcionó bien durante un momento (qué alegría) y después dejó de funcionar.
Cuando dejó de funcionar  se encendía el lcd y a los pocos segundos se apagaba. Será problema de electrónica, pero de momento no lo encuentro. Tengo pedido un par de lcds que me llegarán en unas semanas. Mientras miraré si es problema de la fuente de alimentación y volveré a comprobar las conexiones por si hay un corto o una falsa conexión.Ya os contaré.
Muchas gracias

Desconectado fco1306

  • PIC16
  • ***
  • Mensajes: 128
Re: Problema con lcd
« Respuesta #10 en: 23 de Julio de 2013, 15:57:29 »
Ya me han llegado los lcds. He probado con uno y no he tenido ningún problema. Al final era el lcd.Mira que le dí vueltas.
Tengo un teclado con el  que quiero visualizar la tecla pulsada.Es como si al lcd no le diera tiempo a mostrar el mensaje con el número de tecla ¿Tenéis por ahí algún código que funcione en la realidad?. En la simulación el que tengo funciona sin problema.
Un saludo y muchas gracias