Problema con LCD 16x2

A mi se me quedó como costumbre colocar los pines no usados hacia VSS en el simulador porque usaba un template.
Físicamente no los conecto porque sí he visto que tienen pull-ups. (Hasta los chinos LMG-162-STN)

Creo que son a los que se refieren como clónicos.
La direcciones para la primer línea, son desde 0x84 hasta 0x93
Y para la segunda línea, son desde 0xC4 hasta 0:LOL:3

Funcionan bien y no he tenido problema con ese tipo de pantallas.
Pero nunca he conectado los pines D0, D1, D2 y D3 hacia VSS. (Ground)
Son muy económicas aunque no poseen luz de fondo y seguido compro varios lotes.

DSC01457.jpg
Click para agrandar la imagen.
 
hola darkbytes, tu me has estado ayudando con un pic16f690 y un lcd 20x4, hasta ahorita controlo el lcd, se trata de mostrar en el lcd la presión de una bomba de agua, pero al momento de que enciende la bomba de agua el lcd se desconfigura y muestra caracteres raros, ya intente con capacitor electrolítico de 25v 2200 uf a la salida de la fuente e instalando un ups pero no logro que cuando encienda el motor a través de un arrancador el display se desconfigure, si tienes experiencia en este tema te agradecería me ayudaras, no tengo mucha experiencia en el tema de los displays y pics y siento que e aprendido mucho pero si me falta pulir estos tipos de problemas.
 
gracias darkbytes por tomarte un poco de tiempo en leer y responder a mi problema.

la bomba se aciona por un selector eléctrico que este acciona la bobina de 110v ca de un contactor, el pic solo censa la presión en la tubería de descarga y la presenta en el lcd 20x4 (esto marcha perfecto), solo que cuando enciende y para la bomba el display muestra caracteres raros.
ya puse otra fuente y es la misma, lo raro es que con el pic solo senso la presión y manejo el display 20x4.
la bomba es de 220v 60hz 1hp
 
Última edición:
A ver. ¿Cuál es tu selector eléctrico? ¿Qué componente controla a tal selector eléctrico?
¿Cómo es la red o sistema que lo controla?
¿El accionamiento de la bomba es independiente del PIC?
Puede ser con un transistor, con un scr, un triac, etc. (Esquema requerido)
De eso depende el tipo de medidas a tomar.
Sin un esquema no podemos determinar la causa.
 
Última edición:
Si el motor es AC me imagino que utilizas un relevador para activarlo (lo más sencillo). Al momento de activarse debe resetear el PIC (o algo parecido) y algo no debe cargarse bien y por eso los símbolos extraños.
Intenta habilitar el Brown-out Reset (reset voltaje bajo) y el Power-on Reset. También coloca un capacitor cerámico de 100nF muy cerca del VCC y VSS del display. Al igual en el pin MCRL después del resistor.
Los relevadores de 5V consumen entre 50-80mA, revisa que tu alimentación proporciona por lo menos el doble de esa corriente.
Espero que lo resuelvas. Saludos

Saludos.
 
adjunto el diagrama d conexión, pero el pic y display no tiene relación con el encendido del motor, nomas comparten línea y neutro la fuente de 5v que alimenta al display y al pic

gracias darkbytes...



ruben90 gracias por interesarte en mi tema, tengo una fuente de 2.5 amperes.
probare con el capacitor que me recomiendas.
 

Adjuntos

  • DIAGRAMA.jpg
    DIAGRAMA.jpg
    28.7 KB · Visitas: 27
Última edición:
OK. Entonces el PIC no controla el encendido de la bomba.

Revisa o añade lo siguiente:

  • El diseño de la tarjeta de circuito impreso debe tener un buen plano de tierra.
  • La red de alimentación del microcontrolador debe tener un filtro para E.M.I.
  • Utilizar un buen sistema de filtraje en la etapa de regulación.
  • Colocar capacitores de 100 nF cercanos a los pines de VCC del microcontrolador.
  • Colocar una resistencia de 100Ω 1 W. en serie con un capacitor de 100 nF en la bobina de la bomba.
  • Distribuir las pistas de entrada de señal correctamente y cercanas al plano de tierra.
  • Verificar que la tierra física tenga buen soporte negativo.
Con esas notas de diseño ya no debes tener problema por ruidos de línea o inducidos.
 
Como te comenta D@rkbytes debes colocar un filtro amortiguador en paralelo cerca del motor. El filtro se conforma de un resistor de 100ohms/2W en serie con un capacitor de 100nF/600V.
 
Muchas gracias. Probaré sus recomendaciones y les comentaré los resultados.

---------- Actualizado después de 6 horas ----------

Probé poniéndole capacitores de 0.1 uf en la alimentación del display y en la alimentación del pic, además puse una resistencia de 100 ohms a 2w en serie con un capacitor de poliéster de 0.1 uf 630v en paralelo a la bobina del contactor, y sigue dando el mismo problema, falta checar la tierra física, ojala y esto sea.
 
Última edición por un moderador:
Ya revisé la tierra física y si está instalada, ahora a seguir investigando qué pueda estar ocasionando el problema.
Olvídate de la tierra física y preocúpate más por el plano de tierra del circuito impreso.
Entonces no creo que sea problema del circuito, probablemente sea el software. Sube el código y lo checamos.
El problema no puede ser el programa, porque...
Al momento de que enciende la bomba de agua el lcd se desconfigura y muestra caracteres raros.
Obviamente aquí hay algo que no está marchando bien.
Si se atienden bien todas las causas posibles de eliminación de ruidos, el programa debe andar sin problemas.

Otra recomendación. Utiliza un cable corto y de preferencia blindado (Apantallado) en el sensor.
 
Voto por la fuente en primer lugar. Si pruebas con otra igual de mala estamos en las mismas.
La fuente normal de 7805 no es buena
Después lo de siempre, varistores, optoacopladores, bajar impedancias, acortar líneas, usar configuraciones diferenciales etc etc etc.
Es un tema repetido cientos (si no miles) de veces en el foro.
No hay una solución maravillosa y única.
En mi experiencia lo primero de todo la fuente y después varistores l-n l-pe y pe-n. Con el resto no he observado mejorías notables.
 
Última edición:
Los caracteres "raros" son por lo general el acceso a porciones de memoria del LCD donde no están los caracteres que se pretenden enviar. Eso me ha pasado porque se han corrompido las posiciones de ram del LCD, las posiciones de RAM del uP propiamente dicho o que el micro está por cualquier lado. Sugiero una prueba de software para verificar que el up no está perdido, por ejemplo al momento de encender la bomba, que se juegue con un led en algún puerto libre. Si el micro sigue en curso, bastará con refrescar el contenido del LCD luego de encender el contactor (tener en cuenta que usualmente un contactor "pesado" tarda 18 mSeg en establecer completamente sus contactos).
Es muy bueno que el lazo del main prog. deje que actúe el watch dog interno si el uP no sigue en control.
 
Además está que el micro lleve al menos un watchdog. En los sistemas que yo hacia usaba tres (llamadme loco).
Hábilmente puedes reiniciar el display por software cada vez que arranca o para el motor y así regenerador el contenido de la pantalla.
 
gracias a todos por el interés y el valioso tiempo que invirtieron en este problema.
instale capacitores cerámicos de 0.1 uf a 50v en la alimentación del pic y del display, además la resistencia de 100 ohms 2 amperes en paralelo con la bobina del contactor, y mejoro el comportamiento ahora solo ocurre de ves en cuando.

también trate de instalar mismos capacitores en los pines de control del display (de terminal negativa a cada pin) pero no c inicializaba, los tuve que retirar.

mil gracias a todos seguiré intentando con software a ver si logro mejorarlo de tal manera que garantice que no ocurra.

de verdad muchas gracias...
 
Saludos. Tengo un problema para poner a funcionar una pantalla lcd 16x2 con un pic 16f877a, uso el ccs compiler para hacer el código, simulo en proteus y me va todo bien pero a la hora de plasmarlo en físico, no me funciona la pantalla, sale solamente cuadros negros. Ya he probado con varios micro para descartar que esté dañado. La pantalla está conectada al puerto D. Lo que me llama la atención es que cuando mido voltaje en el puerto D, Están todas los pines en 5 V. no hay variación como sino hubiese envío de datos. He probado el pic con otro programa más sencillo como el de apagar y encender un led y todo va bien. Si puedes ayudarme te lo agradecería. Soy de Venezuela
 
Saludos. Tengo un problema para poner a funcionar una pantalla lcd 16x2 con un pic 16f877a, uso el ccs compiler para hacer el código, simulo en proteus y me va todo bien pero a la hora de plasmarlo en físico, no me funciona la pantalla, sale solamente cuadros negros. Ya he probado con varios micro para descartar que esté dañado. La pantalla está conectada al puerto D. Lo que me llama la atención es que cuando mido voltaje en el puerto D, Están todas los pines en 5 V. no hay variación como sino hubiese envío de datos. He probado el pic con otro programa más sencillo como el de apagar y encender un led y todo va bien. Si puedes ayudarme te lo agradecería. Soy de Venezuela

Buenas.
Algún esquema, codigo, algo, aunque lo mas probable es que el contraste del lcd esta al maximo. ¿Haz puesto en el pin 3 del lcd el potenciometro para el contraste?.
 
Saludos Venezuela, saludos Paraguay!
En este foro, en otros foros, he leído docenas de veces la frase "en Proteus anda bien". Ni hablar en mi propio taller. Tengamos en cuenta que Proteus no es un debugger profesional, simplemente una herramienta de aproximación.
De mi experiencia puedo aportar lo siguiente:
1) En el caso más común de utilizar el modo 4 bits para establecer comunicación con el LCD, las entradas D4... D7 del lcd DEBEN estar floating. Ni se le ocurra ponerlas a ningún potencial.
2) en el caso de no usar la entrada WR (write) del LCD lo cual es muy común, ésta debe estar a GND.
3) como aporta el amigo Robert, debe controlarse el bright (VO) con un potenciómetro de 10K entre GND y VDD.
4) DEBE establecerse el comando "init" al LCD antes de cualquier acceso.
Reporta resultados!!!



Dije mal:
D4...D7 son las que se usan. D0...D3 dejar floating.
 
Última edición:
Atrás
Arriba