Foros Electrónica - Comunidad sobre electrónica en España

foros electrónica .es

Comunidad sobre electrónica en españa

 

No consigo encender un LCD

Esta es una discusión sobre No consigo encender un LCD dentro del foro Opto electrónica parte de la categoría Tutoriales; Este es mi primer mensaje, por lo que un saludo a todos y agradecer la existencia de foros como éste. ...


Regresar   Foros Electrónica - Comunidad sobre electrónica en España > Tutoriales > Opto electrónica

Registrarse FAQ / Ayuda Lista de usuarios Calendario Buscar Posts de hoy Marcar como leído

Publicidad para usuarios no registrados:
Responder

 

LinkBack Herramientas Estilo
  #1 (permalink)  
Antiguo 27-may-2009, 17:22
Junior Member
 
Registrado: mayo-2009
Posts: 8
Isotopo Lleva buen camino
Predeterminado No consigo encender un LCD

Este es mi primer mensaje, por lo que un saludo a todos y agradecer la existencia de foros como éste.

Quiero usar un LCD compatible HITACHI con un microcontrolador BasicX-24, pero no soy capaz de hacerlo ni encender, llevo una semana detrás de ello, he mirado varios manuales y tutoriales, pero nada. Intento envíar comandos, pero no hace nada ni se ve nada.

He conectado como dice el manual Gnd en el pin 1, y 5V en el pin 2 y en el pin 3 (contraste) probado con una resistencia fija de 330 y luego una variable de 10K. El resto de conexiones también las he hecho correctamente.

La retroalimentación la he encendido por si era eso (es lo único que consigo ver), pero al parecer no hace falta ¿verdad?.

Lo he probado en 2 LCD nuevos diferentes y de diferente distribuidor, por lo que en principio sería muy raro que estuvieran los dos estropeados.

Por simplificar un poco la duda en este primer mensaje, me gustaría saber si al conectar la corriente se debería de ver la primera línea en negro (según parece), o si debería de verse algo, lo que sea. Por que por más que hago no consigo ver nada. Y a partir de aquí ya podría saber si se debe a un error en la activación por software del microcontrolador. Lo mejor es ir acotando el problema.

A ver si me podéis ayudar porque estoy ya desesperado....
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Citar y responder
  #2 (permalink)  
Antiguo 27-may-2009, 19:56
Avatar de deimos
Moderator
 
Registrado: diciembre-2007
Posts: 654
deimos Se hará famoso pronto
Predeterminado Re: No consigo encender un LCD

Hola.

En la web oficial de BasicX hay códigos de ejemplos con LCD's que es posible que te sean de utilidad.

BasicX by NetMedia Inc.
__________________

Saludos cordiales.


ASTROELECTRONIC@ - Personal Blog
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Citar y responder
  #3 (permalink)  
Antiguo 27-may-2009, 20:07
Avatar de ajo
ajo ajo está desconectado
Junior
 
Registrado: abril-2007
Posts: 1,202
ajo Lleva buen camino
Predeterminado Re: No consigo encender un LCD

¿Nos pegar poner el código que estás utilizando ahora mismo? Prometo intentar echarle un vistazo, segun como vaya de tiempo '.

Un saludo!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Citar y responder
  #4 (permalink)  
Antiguo 27-may-2009, 20:56
Junior Member
 
Registrado: mayo-2009
Posts: 8
Isotopo Lleva buen camino
Predeterminado Re: No consigo encender un LCD

Cita:
Originalmente publicado por deimos Ver post
Hola.

En la web oficial de BasicX hay códigos de ejemplos con LCD's que es posible que te sean de utilidad.

BasicX by NetMedia Inc.
De ahí creo que la mayoría son para LCD serial, el único que encontré fué uno que está aquí BasicX Code Examples que es usando 4 bits, pero tampoco hace nada.

Mi código actual no serviría mucho porque lo último que he hecho ha sido comprobar que llegaba corriente en los pines del bus. De todos modos no podría poner ningún código en concreto, porque lo he hecho de todas las maneras que se me han ocurrido casi dando palos de ciego, y siguiendo instrucciones de multitud de páginas, variando tiempos de retardo, añadiendo y quitando ordenes, y nada.

De todos modos lo que necesito saber es si para poder ver algo basta con dar corriente. Al parecer debería de ver una barra negra al conectar la corriente.




También necesito asegurarme de que puedo dejar conectado el pin R/W a GND como lo tengo ahora, ya que al parecer no es no es necesario, y también querría asegurarme de que puedo dejar una resistencia de 330 Ohmios fija en el pin de Vo (contraste) de momento. También de paso que
no es necesaria la retroiluminación (para tenerlo apagado en las pruebas),

Una vez que tenga resueltas estas dudas me centraré en la programación, e intentaré activarlo programándolo de la mejor manera que crea, y si no consigo nada pongo el código para que veáis dónde puede estar el problema.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Citar y responder
  #5 (permalink)  
Antiguo 27-may-2009, 21:56
Junior Member
 
Registrado: mayo-2009
Posts: 8
Isotopo Lleva buen camino
Predeterminado Re: No consigo encender un LCD

Cita:
Originalmente publicado por deimos Ver post
Hola.

En la web oficial de BasicX hay códigos de ejemplos con LCD's que es posible que te sean de utilidad.

BasicX by NetMedia Inc.
De ahí creo que la mayoría son para LCD serial, el único que encontré paralelo fué uno que está aquí BasicX Code Examples que es usando 4 bits, pero tampoco hace nada.

Mi código actual no serviría mucho porque lo último que he hecho ha sido comprobar que llegaba corriente en los pines del bus. De todos modos no podría poner ningún código en concreto, porque lo he hecho de todas las maneras que se me han ocurrido casi dando palos de ciego, y siguiendo instrucciones de multitud de páginas, variando tiempos de retardo, añadiendo y quitando ordenes, y nada.

De todos modos necesito saber previamente si para poder ver algo bastaría con dar corriente. Al parecer debería de ver una barra negra al conectarla, y no veo nada. También necesito asegurarme de que puedo dejar conectado el pin R/W a GND como lo tengo ahora, ya que al parecer no es no es necesario, y también querría asegurarme de que puedo dejar una resistencia de 330 Ohmios fija en el pin de Vo (contraste) de momento. También de paso asegurarme que no es necesaria la retroiluminación (para tenerlo apagado en las pruebas),

Una vez que tenga resueltas estas dudas me centraré en la programación, e intentaré activarlo programándolo de la mejor manera que crea, y si no consigo nada pongo el código para que veáis dónde puede estar el problema.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Citar y responder
  #6 (permalink)  
Antiguo 27-may-2009, 21:58
Senior Member
 
Registrado: diciembre-2008
Posts: 344
Salvatore Monda Lleva buen camino
Predeterminado Re: No consigo encender un LCD

Hola Isotopo

Respondiendo a tus dudas:

En principio los LCD se comportan de forma errática al encender. O se ven las filas en negro o simplemente no se ve nada o se ve basura por una mala inicialización. Por tanto el que no veas nada no significa que este estropeado.

Por otro lado, en el momento de encender e inicializar hay que ser rigurosos con los tiempos mínimos especificados por el fabricante. De no ser asi el LCD se "atraganta" y se cuelga.

Otro detalle importante: hay mucho codigo por ahí que no chequea el estado del display después de enviar un comando y si le envias comandos muy rapido lo mismo se "Atraganta".


Saludos
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Citar y responder
  #7 (permalink)  
Antiguo 27-may-2009, 22:31
Junior Member
 
Registrado: mayo-2009
Posts: 8
Isotopo Lleva buen camino
Predeterminado Re: No consigo encender un LCD

He seguido probando y nada.

pongo el código actual, me he fijado en las instrucciones de esta guía para la iniciación, que es lo más detallado que he encontrado. Antes ya he intentado hacerlo de mil maneras basándome en otros manuales. Displays LCD compatibles con HITACHI

Los tiempos al final los he acabado subiendo cada vez más para ver si era por eso, supongo que no importará excederse. El pin R/W lo he conectado a GND y he dejado de usarlo.

Cita:
(código de pruebas eliminado posteriormente para evitar confusiones)

Editado por Isotopo en 28-may-2009 a las 16:58.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Citar y responder
  #8 (permalink)  
Antiguo 28-may-2009, 16:56
Junior Member
 
Registrado: mayo-2009
Posts: 8
Isotopo Lleva buen camino
Predeterminado Re: No consigo encender un LCD

Bueno, pues cuando menos lo esperaba, me ha dado por girar la resistencia del voltaje para el contraste y he visto el cielo cuando ante mis ojos aparecían una linea negra y un cursor.

Resulta que la tenía en la posición central, y ahí no se ve nada!!!

Total, que no sé cuánto tiempo he estado con ello bien, y si cuando tenía una resistencia fija también era por eso o por no hacer la iniciación correctamente.

En fin, dejo el código de iniciación necesario y comentado para la posteridad.... y gracias por vuestra ayuda.

Code:
' ACTIVACION Y PRUEBA DE LCD COMPATIBLE HITACHI 44780 CON UN BASICX-24


Option Explicit

    Const PinDB0 As Byte = 5 ' cada uno de los pines del bus de datos
    Const PinDB1 As Byte = 6
    Const PinDB2 As Byte = 7
    Const PinDB3 As Byte = 8
    Const PinDB4 As Byte = 9
    Const PinDB5 As Byte = 10
    Const PinDB6 As Byte = 11
    Const PinDB7 As Byte = 12

    Const PinE As Byte = 13 ' pin de activacion y desactivacion
    Const PinRS As Byte = 14 ' pin de seleccion de envio de comandos o de caracteres
    Const PinRW As Byte = 15 'seleccion de lectura/escritura no utilizado si esta conectado a GND (solo escritura)



' FUNCION PRINCIPAL

Public Sub Main()

    Call Delay(0.050) ' 50 milisegundos de pausa antes de empezar, para dar tiempo a iniciarse el LCD

    Call ComandoLCD(&H30) 'Funcion ajustar: 8-bit interface, 1 display lines, 5x7 font
    Call ComandoLCD(&H0E) 'Control del display: encender el display, cursor activado, sin parpadeo
    Call ComandoLCD(&H01) 'Limpiar el display, colocar el cursos en la posicion "0"
    
    Call PrintLCD("Hola Mundo :)")

    'do
    'loop

End Sub



' FUNCION PARA EL ENVIO DE CADENAS DE TEXTO AL LCD

Sub PrintLCD(ByVal Cad As String)

    Dim Length As Integer
    Dim Ch As String
    Dim bCh As Byte
    Dim x As Integer

    Length = Len(Cad)
    For x = 1 To Length ' Se imprimento todos los caracteres de la cadena mediante un bucle
        Ch = Mid(Cad, x, 1)
        bCh = Asc(Ch)
        Call CaracterLCD(bCh)
    Next

End Sub



' FUNCION PARA EL ENVIO DE COMANDOS AL LCD

Sub ComandoLCD(ByVal Valor as Byte)
    Call PutPin(PinRS, 0) ' Se establece el modo envio de Comandos poniendo a cero el pin de seleccion
    Call EscribirDato(Valor) ' Se coloca el dato (en este caso el comando)

    Call PutPin(PinE, 0)  ' Para enviar primero se deja desactivado el pin de conexion
    Call PutPin(PinE, 1)  ' Ahora se activa durante un milisegundo    
    Call Delay(0.001)            
    Call PutPin(PinE, 0)  ' Se vuelve a apagar y el LCD recibe el comando.
End Sub



' FUNCION PARA EL ENVIO DE CARACTERES AL LCD

Sub CaracterLCD(ByVal Valor as Byte)
    Call PutPin(PinRS, 1) ' Se establece el modo envio de caracteres poniendo a uno el pin de seleccion
    Call EscribirDato(Valor) ' se coloca el dato (en este caso el caracter)

    Call PutPin(PinE, 0)  ' Para enviar primero se deja desactivado el pin de conexion
    Call PutPin(PinE, 1)  ' Ahora se activa durante un milisegundo    
    Call Delay(0.001)            
    Call PutPin(PinE, 0)  ' Se vuelve a apagar y el LCD recibe el comando.
End Sub



' FUNCION PARA LA ESCRITURA DE DATOS EN EL BUS DEL LCD

Sub EscribirDato(ByVal Valor as Byte)
    Dim n As Byte
    for n=0 To 8 ' se obtiene cada bit del dato que se quiere escribir, y se activa o desactiva cada pin correspondiente
        call PutPin(PinDB0 + n, GetBit(Valor,n))
    Next    
End sub
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Citar y responder
Responder

Herramientas
Estilo

 
Reglas del foro
No puedes publicar nuevos hilos
No puedes publicar respuestas
No puedes publicar archivos adjuntos
Tu no puedes editar tus posts

El código vB está activado
Emotíconos está activado
El código [IMG] está activado
El código HTML está desactivado
Trackbacks are activado
Pingbacks are activado
Refbacks are activado


Discusiones similares

Discusión Iniciada por Foro Respuestas Último post
Aprendiendo C desde 0 con CCS. Encender apagar una salida un tiempo predeterminado javi9231 Programación 7 02-feb-2009 22:55
Encender Bonbillas Con Baterias rocker-42 Electrónica 0 01-dic-2008 13:46


Todas las horas son GMT +2. La hora es 10:03.


Powered by vBulletin® Latest version
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc.
(c) 2007-2008 Foros electrónica