Eliminar caracteres raros en una LCD 16X2 (hardware y software)

Resúmen:


Un problema bastante general con estas pantallas, es cuando presentan caracteres no deseados, raros o la pantalla se pone en blanco, en este blog mostaremos un par de opciones que pueden ayudar a mitigar este problema.

Índice

  1. Introducción
  2. Ruido electromagnético
  3. Proteccion de cableado y conexiones
  4. Reinicio por software
  5. Bonus
  6. Conclusión
  7. Autor

1. Introducción

Las LCD son pantallas muy económicas a la hora de realizar poryectos donde neceictemos visualizar datos e interactuar con la electrónica del mismo. Son pantallas bastante basicas por lo que no cuentan con ciertas protecciones contra ruidos electricos externos ademas de un tiempo de refresco muy alto lo cual las hace propensas mostrar este tipo de errores en los caracteres.


2. Ruido electromagnético

Si el rio suena piedras trae , de esta misma manera se produce el ruido electromagnetico, este se produce a partir de la liberacion de energia en los aparatos, equipos, cables, y superficies, que son buenos conductores de electricidad. ¿como afecta esto a nuestra lcd?. pues debido a que funciona con un crystal interno ademas de que para presentar los caracteres se envian datos a traves de sus pines d0 a d7 esta sincronia se ve afectada por el ruido, para mitigar esto debemos colocar en paralelo a VCC Y GND unos filtros capacitores para frecuencias altas medias y bajas de la siguiente forma.

lcd1

3. Proteccion de cableado y conexiones

Existen dos formas de evitar ruidos en las conexiones de la LCD la primera es usar un cable protegido por una pelicula de aluminio como el de la siguiente imagen.

protect

La segunda forma es realizar la conexion de la lcd directamente en la placa mediante un socket

lcdcon

Si bien esto no evitara en un cien por ciento que se filtre el ruido a las conexiones ayudara en la proteccion de los elementos internos de nuestra lcd por el efecto de corrientes parasitas emitidas por las pistas de cobre y de los elementos externos.

4. Reinicio por software

En mi caso hago uso del entorno de desarrollo Atmel Studio en el cual disponemos de una libreria la cual nos permite limpiar la pantalla mediante un sencillo comando;

LCD_CLEAR();

si estas en arduino lo que se usa comunmente es el siguiente comando.



CLEAR ();

pero ¡oh sorpresa la lcd sigue en chino!.

Pues bien, si nos damos cuenta siempre que resetees el microcontrolador o arduino la lcd va a eliminar los caracteres chinos esto es gracias al siguiente comando.

LCD_INIT() en Atmel Studio
Init() en Arduino.

este comando nos permite inicializar la pantalla es decir borra todo lo que tiene en memoria y colocar el cursor en la linea y espacio 0 ademas de realizar un encendido en cero.

Debemos utilizarlo de tal forma en la cual estemos activando algun dispositivo que genere ruido (motor, rele, cualquier tipo de dispositivo electromecanico).

Es importante dejar uno o dos segundos despues de inicializar la lcd en cualquier parte del programa o funcion

por ejemplo


funcion activo motor (){

escribir lcd (motor activado);   

prendo motor;
pausa 5 segundos

LCD_INIT();
pausa 2 segundos

LCD_CLEAR(); 

pausa 2 segundos
}

Se puede usar este comando en cualquier parte del programa y no deberia dar problemas, siempre y cuando le demos un tiempo de refresco a la lcd


5. Bonus

Conecta todo lo que sea buen conductor (metalico) y este cercano a tu placa o lcd a un tierra electronico (chasis) o tierra comun esto lo puede hacer mediante un capacitor o a tu fuente DC directamente en este caso GND.

chasis

6. Conclusión

Se observo que podemos mitigar los caracteres raros generados por ruidos electromagneticos que provocan corriente parasitas las cuales van a ser filtradas por los capacitores de altas medias y bajas frecuencias, ademas de ayudar a conducir esta energia hacia un tierra que en nuestro caso seria un tierra tecnicamente llamado chasis.

7. Autor


Tnlgo Jonathan Ortiz.,
Electronica y Telecomunicaciones