Conectar un LCD 16x2 a circuito encendido
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 10 de 11

Tema: Conectar un LCD 16x2 a circuito encendido

  1. #1
    Usuario
    Mensajes
    34
    Gracias
    37
    Agradecido 20 veces en 10 posts

    Conectar un LCD 16x2 a circuito encendido

    Buen día, tengo la siguiente consulta para plantearles, a ver si juntos le encontramos la vuelta.

    Tengo hecho un circuito con pic, que cumple una función determinada, y al cual deseo conectarle un LCD de caracteres 16x2 mientras el circuito se halla en funcionamiento, visualizar lo que esté mostrando en ese momento, y desconectarle el LCD, para volver a hacer lo mismo más tarde. Todo esto sin apagar el circuito del pic.

    Resulta que si enciendo el circuito con el LCD conectado, el LCD funciona perfectamente.
    Si lo desconecto y lo vuelvo a conectar, ya no funciona: queda el primer renglón todo negro, y no sale de ese estado.

    ¿Por qué sucede eso?
    Si el pic sigue enviando datos al LCD, por más que éste fuera conectado asincrónicamente, ¿no debería reconocer los datos válidos una vez que los recibiera completos, pasado un tiempo de estar nuevamente conectado?

    La conexión del LCd es la clásica: 4 bits, y no se lee en él, sólo se escribe.

    Bueno, ojalá alguien me pueda tirar una idea de cómo lograr esto.

    Saludos!!!

  2. #2
    Usuario Avatar de jakala
    Mensajes
    361
    Gracias
    120
    Agradecido 273 veces en 139 posts
    buenas Constructor:

    el display LCD tiene que inicializarse, segun pone en el datasheet hay que hacer una espera de un tiempo (no recuerdo exactamente cuanto) y luego empezar a enviar los datos.

    Si tu apagas el LCD y luego lo enciendes, se tiene que "inicializar" de nuevo el display. Por lo que tendrias que detectar que se ha apagado, inicializarlo y seguir recibiendo los mensajes que sean.

    Busca en el datasheet el tema de inicializarlo, ok?
    Dicen que "rectificar" es de sabios...pero hay que tener "capacidad" y soportar la "tension"
    -------------------

    www.jakala.es
    Actualmente disponible dias y horas aleatorias (es decir, cuando enciendo el server)
    -------------------
    Cuatro cosas malas tiene el mundo:

    La boca de Jakala es lo primero;
    el buche del milano lo segundo;
    las manos de los monos es lo tercero;
    y, como nunca logra verse harto
    el ojo humano, siempre fue lo cuarto.

  3. Los siguientes usuarios agradecen a jakala por este post:

    Constructor (09/05/2012)

  4. #3
    Super Moderator Avatar de HJ.0X00
    Ubicación
    Tanti - Córdoba - Argentina
    Mensajes
    2,159
    Gracias
    1,902
    Agradecido 1,572 veces en 940 posts
    Cita Iniciado por Constructor Ver mensaje
    Buen día, tengo la siguiente consulta para plantearles, a ver si juntos le encontramos la vuelta.


    Tengo hecho un circuito con pic, que cumple una función determinada, y al cual deseo conectarle un LCD de caracteres 16x2 mientras el circuito se halla en funcionamiento, visualizar lo que esté mostrando en ese momento, y desconectarle el LCD, para volver a hacer lo mismo más tarde. Todo esto sin apagar el circuito del pic.

    Resulta que si enciendo el circuito con el LCD conectado, el LCD funciona perfectamente.
    Si lo desconecto y lo vuelvo a conectar, ya no funciona: queda el primer renglón todo negro, y no sale de ese estado.

    ¿Por qué sucede eso?
    Si el pic sigue enviando datos al LCD, por más que éste fuera conectado asincrónicamente, ¿no debería reconocer los datos válidos una vez que los recibiera completos, pasado un tiempo de estar nuevamente conectado?

    La conexión del LCd es la clásica: 4 bits, y no se lee en él, sólo se escribe.

    Bueno, ojalá alguien me pueda tirar una idea de cómo lograr esto.

    Saludos!!!
    Hola Constructor
    Esto sucede porque el LCD necesita ser inicializado cada vez que lo alimentas.
    Una solución sería agregar un pulsador, que cuando lo pulses te lleve a una rutina de inicialización del LCD y a mostrar los datos.
    Espero que se entienda, el LCD sin inicializar es totalmente inútil, no hace nada.

    Saludos
    HJ
    "Cuando llegue la inspiración, que me encuentre trabajando."
    ​PICASSO, Pablo

    Consulta el Indice de Montajes NeoTeo

    Esta etapa concluyó, ahora estoy Por aquí...

    No soy mas Moderador aunque figure como tal.

  5. Los siguientes usuarios agradecen a HJ.0X00 por este post:

    Constructor (09/05/2012)

  6. #4
    Usuario
    Mensajes
    34
    Gracias
    37
    Agradecido 20 veces en 10 posts
    Gracias por sus respuestas.

    Lamento ser tan duro de entendimiento.
    Cuando se refieren a inicialización ¿es algo que hace el pic, o algo que ocurre dentro del LCD?

    Por ejemplo, en el programa fuente, uno declara los pines del LCD, que usa 4 cables, que hay 2 renglones, etc.
    LCD_DTPin = PORTB.4
    LCD_RSPin = PORTB.2
    LCD_ENPin = PORTB.3
    LCD_Interface = 4
    LCD_Lines = 2
    LCD_Type = 0

    Luego, pone una pausa de unos 200 ms para que inicie el LCD.
    DelayMs 200

    Luego, uno puede escribir en el LCD con una o más sentencias del tipo:
    Print at 1, 1, "Hola, que tal"

    O sea, en el pic, no veo dónde inicializar el LCD. Si pongo un pulsador para que lea el pic y que al detectar que lo apreté, inicialice el LCD, ¿qué escribo en el programa, cuáles serían las instrucciones?

    Y si hay que inicializar el LCD, suponía que cuando le das alimentación, el tipo se inicializa solo ¿o no?
    Y si no lo hace solo ¿qué necesita exactamente?

    El datasheet del LCD no dice nada.
    Saludos y disculpas por la ignorancia.

  7. #5
    Super Moderator Avatar de HJ.0X00
    Ubicación
    Tanti - Córdoba - Argentina
    Mensajes
    2,159
    Gracias
    1,902
    Agradecido 1,572 veces en 940 posts
    Hola de nuevo, Para que el LCD funcione debes inicializarlo, es decir debes cargar determinados registros con determinado contenido y respetando ciertos tiempos.

    ¿En que lenguaje programas?
    depende del compilador que utilices y de la librería respectiva dependerá de la instrucción para inicializarlo.
    (Si programaras en ASM, tendrías que hacer dicha rutina a mano.)

    La rutina depende si trabajas en 4 u 8 Bits. En tu caso parece ser de 4 bits por:
    LCD_Interface = 4
    Busca al principio del programa alguna función que diga algo parecido a INI_CLD o INIT_LCD.
    Y esa será la sentencia que debas utilizar cuando detectes que se presinó el pulsador.

    Saludos
    HJ
    "Cuando llegue la inspiración, que me encuentre trabajando."
    ​PICASSO, Pablo

    Consulta el Indice de Montajes NeoTeo

    Esta etapa concluyó, ahora estoy Por aquí...

    No soy mas Moderador aunque figure como tal.

  8. Los siguientes usuarios agradecen a HJ.0X00 por este post:

    Constructor (09/05/2012)

  9. #6
    Usuario Avatar de editronikx
    Ubicación
    Pasto Colombia
    Mensajes
    299
    Gracias
    24
    Agradecido 228 veces en 125 posts
    saludos

    si entendi bien jakala se refiere, no es que tenga que conectar algun pulsador a la lcd, si no al pic para que la pantalla envié espacios en blanco simulando que esta apagada y cuando se vuelva a presionar visualice el menaje que esta latente por ser indicado.

    y es verdad la LCD requiere ser inicializada, hasta las librerias incluidas tienen esa funcion, esto con el fin de hacer sincronismo con los datos

    aunque no entiendo la razon de apagar la LCD, estos dispositivos tienen son de bajo consumo.
    ejemplo del código ASM de inicialmente de una lcd (tomado de la librería LCD_4bit.inc)
    LCD_Inicializa
    bsf STATUS,RP0 ; Configura las líneas conectadas al pines RS,
    bcf LCD_PinRS ; R/W y E.
    bcf LCD_PinEnable
    bcf LCD_PinRW
    bcf STATUS,RP0
    bcf LCD_PinRW ; En caso de que esté conectado le indica
    ; que se va a escribir en el LCD.
    bcf LCD_PinEnable ; Impide funcionamiento del LCD poniendo E=0.
    bcf LCD_PinRS ; Activa el Modo Comando poniendo RS=0.
    call Retardo_20ms
    movlw b'00110000'
    call LCD_EscribeLCD ; Escribe el dato en el LCD.
    call Retardo_5ms
    movlw b'00110000'
    call LCD_EscribeLCD
    call Retardo_200micros
    movlw b'00110000'
    call LCD_EscribeLCD
    call Retardo_20micros ; Este retardo es necesario para simular en PROTEUS.
    movlw b'00100000' ; Interface de 4 bits.
    call LCD_EscribeLCD
    call Retardo_20micros ; Este retardo es necesario para simular en PROTEUS.

    ; Ahora configura el resto de los parámetros:


    call LCD_2Lineas4Bits5x7 ; LCD de 2 líneas y caracteres de 5x7 puntos.
    call LCD_Borra ; Pantalla encendida y limpia. Cursor al principio
    call LCD_CursorOFF ; de la línea 1. Cursor apagado.
    call LCD_CursorIncr ; Cursor en modo incrementar.
    return

    como se puede dar cuenta hay muchos parametros que se deben configurar aunque con las primeras lineas de configuración de pines es suficiente

    Última edición por editronikx; 09/05/2012 a las 18:45

  10. Los siguientes usuarios agradecen a editronikx por este post:

    Constructor (09/05/2012)

  11. #7
    Usuario Avatar de Mario
    Ubicación
    En mi corazón
    Mensajes
    2,219
    Gracias
    910
    Agradecido 2,354 veces en 1,118 posts
    Hola a todos! Hola Raul!

    Sí, cuando re-conectás el display durante una operación de trabajo, los controladores del display saben que deben ponerse en funcionamiento y saben como hacerlo solos. Lo que no saben es lo que tenias vós al principio del programa:

    LCD_DTPin = PORTB.4
    LCD_RSPin = PORTB.2
    LCD_ENPin = PORTB.3
    LCD_Interface = 4
    LCD_Lines = 2
    LCD_Type = 0
    Esas instrucciones ya pasaron durante la ejecución del programa y el controlador del display, al iniciar su funcionamiento, espera que tú le indiques eso que ya pasó hace rato, por lo tanto, no sabe qué clase de señales está recibiendo en sus pines. No sabe si tiene que ser de 4 líneas de datos, de 8, de nada.

    Cómo te dijeron antes, podés poner un pulsador o un detector de corriente de backlight con entrada a un pin del PIC para que el PIC sepa que debe reenviar los comandos de inicialización del display, que, como te expresaron antes, el controlador del display espera para saber como funcionar. De lo contrario, no sabe para qué lado salir. Sólo recibe datos que no comprende. Las hojas de datos del display no te van a decir nada de eso. Eso viene aclarado en las de los controladores. (KS0066, HD44780, etc)

    Lo que tenés que averiguar bien es si la versión de IDE que usás de Basic soporta el reenvío de inicialización de display en cualquier momento de ejecución del programa.

    Saludos!
    Mario
    Última edición por Mario; 09/05/2012 a las 19:06
    En Servisystem, hay un Foro para hablar de todos los montajes que realicé en esta web. No te olvides: todo lo que sea importante, también estará en el Blog.

  12. Los siguientes usuarios agradecen a Mario por este post:

    Constructor (09/05/2012)

  13. #8
    Usuario
    Mensajes
    34
    Gracias
    37
    Agradecido 20 veces en 10 posts
    Hola Mario!
    Tu respuesta es la que más clara me resultó, si bien las otras están acertadas igual pero referidas a otros lenguajes.
    ¿Me dirías en qué parte del IDE me fijo si se puede hacer eso?

    La versión que estoy usando es:

    Proton IDE
    IDE version 2.0.0.5

    Proton + Picbasic Compiler
    Loader version 2.0.0.0
    Compiler version 3.4.0.8

    ¿Estoy bien con esta versión, o muy desactualizado?
    ¿Fuente de donde "mirar" nueva versión? ¿Sonsivri?

    Ah, editronikx, no es que desconecto el LCD para ahorrar energía.
    Imagina varias placas con pic efectuando mediciones, y que haciendo una recorrida por cada una de ellas, deseas visualizar magnitudes. El motivo es ahorrar LCD's, en vez de usar un LCD por cada placa, usamos 1 solo que se conecta a la placa cuando hace falta.

    Pero muuuuuuuuuuuuuuuuuchas gracias, con los datos que me dieron, ya sé por dónde tengo que atacar el problema.

  14. Los siguientes usuarios agradecen a Constructor por este post:

    Mario (09/05/2012)

  15. #9
    Usuario Avatar de Mario
    Ubicación
    En mi corazón
    Mensajes
    2,219
    Gracias
    910
    Agradecido 2,354 veces en 1,118 posts
    Cita Iniciado por Constructor Ver mensaje
    ¿Me dirías en qué parte del IDE me fijo si se puede hacer eso?
    En el HELP del IDE, en la parte de DECLARE. Yo me fijé y no dice nada. Interpreto que en ese caso, no habría problemas en reenviarlas en cualquier momento. de todos modos, haz una ensayo sencillo con un pulsador y lo compruebas en funcionamiento.

    Cita Iniciado por Constructor Ver mensaje
    ¿Estoy bien con esta versión, o muy desactualizado?
    El PROTON que estoy usando yo me lo compró Fede (el capi de tuti li capi, acá en el barrio neoteniano) y se actualiza en forma casi automática con la llave en forma de pen drive que trae el soft original. Desconozco hoy de donde se podría sacar algo más moderno. Está un poquito desactualizada la que tenés, pero no creas que ha habido cambios significativos. Sólo soporte para algunos PICs más nuevos y raros, nada más.

    Me alegro que te haya servido la orientación.

    Saludos!
    Mario
    En Servisystem, hay un Foro para hablar de todos los montajes que realicé en esta web. No te olvides: todo lo que sea importante, también estará en el Blog.

  16. Los siguientes usuarios agradecen a Mario por este post:

    Constructor (09/05/2012)

  17. #10
    Usuario
    Mensajes
    34
    Gracias
    37
    Agradecido 20 veces en 10 posts
    Bien Mario, luego haré esa pruebita.
    Creo que funcionará, si no, el plan B sería que la placa con el LCD tenga un pic que se comunique con el otro vía I2C, o algo así.
    Espero que I2C en caliente se puede conectar...

    Saludos y re-muchas gracias

    RAUL

Página 1 de 2 12 ÚltimoÚltimo

Temas similares

  1. Fabricar Placa de encendido y reset PS3
    Por Meta en el foro Electrónica
    Respuestas: 1
    Último mensaje: 13/02/2012, 03:37
  2. ¿Mecanismo de encendido al tacto?
    Por erdosain9 en el foro Electrónica
    Respuestas: 9
    Último mensaje: 31/01/2012, 02:00
  3. Encendido de auto con inyeccion electronica
    Por fjcbog en el foro Coches y Motos
    Respuestas: 1
    Último mensaje: 30/10/2011, 23:23
  4. Dejar más tiempo el PIC encendido
    Por Meta en el foro Electrónica
    Respuestas: 5
    Último mensaje: 22/08/2011, 07:47
  5. Encendido de luces via RF
    Por Gasp77 en el foro Radio
    Respuestas: 13
    Último mensaje: 16/06/2011, 01:50

Los visitantes encuentran esta página buscando por:

lcd 16x2 conexion

conectar lcd 16x2

conexion de lcd 16x2

como conectar un lcd 16x2 a un pic

conexion lcd 16x2

encender lcd 16x2

como se conecta un lcd 16x2

como conectar una pantalla lcd 16x2

como conectar lcd 16x2

coneccion lcd 16x2

conexion de un lcd 16x2

como conectar un lcd de 16x2como conectar un display lcd 16x2circuito para lcd 16x2lcdneoteo lcd 20x2como conectar un lcd 16x2como se conecta lcd 16x2como conectar una lcd de 16x2circuito de lcd16x2conexion de pantalla 16x2como conectar LCD16x2r/w lcd 16x2. proton idecomo conectar pantalla lcd 16x2lcd 16x2 conexiones

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37