¿Cómo reparar la pantalla LCD distorsionada Hitachi HD44780 16x2 en modo de 4 bits?

A menudo sucede que una pantalla LCD HD44780 16x2 muestra caracteres ilegibles durante el uso. La mayor parte de la ayuda en la web aconseja el uso de técnicas de amortiguamiento para evitar el ruido de voltaje, como el pico de inducción. Ya hice todo eso pero el problema persiste. Qué puedo hacer ?

Respuestas (1)

Este problema ocurre en el modo de 4 bits, la pantalla LCD pierde un nibble de datos (un carácter está formado por dos nibbles de 4 bits) y luego todos los caracteres subsiguientes se compensan en 4 bits. Puede verificar que este es su problema verificando que la basura que se muestra siempre se repite para una cadena conocida que se supone que se muestra, por ejemplo, "Detener" siempre mostrará "7Fπ ...".

Esto puede ocurrir por varias razones, pero la principal en mi caso fue la baja potencia en la MCU que controla la pantalla. La MCU aún puede funcionar con un voltaje más bajo, pero cuando establece el pin "EN" (habilitar) de la pantalla LCD en ALTO, si está por debajo del valor mínimo para esa pantalla LCD (2,2 V, por ejemplo), entonces el nibble de 4 bits no se registrará cuando el "EN" se establece en bajo nuevamente, lo que hace que la pantalla se distorsione hasta que este error vuelva a ocurrir y se restablezca la pantalla.

Para solucionar esto, es mejor que la MCU espere hasta que su voltaje de suministro vuelva a un valor superior al valor mínimo del voltaje ALTO de entrada mínimo de LCD más un margen de seguridad. Por ejemplo, en MSP430 energia o arduino antes de llamar, lcd.printsiempre llamarías algo como esto:

setup(){  
   analogReference(INTERNAL2V5);   
}  

void waitVoltage(){  
  while(true){  
    // 3v(what we want)/2.5 (reference) x1024/2=614  
    //we read VSS/2 on port 11, we want more than 2.5v to write on the lcd  
    if(analogRead(0x1011)>613){  
      break;  
    }  
    delay(50);   
  }   
} 
O puede usar un pullup fuerte (1k) para el suministro positivo de la pantalla LCD y conducir la señal E en modo de colector abierto (para generar un nivel bajo, configúrelo en salida + bajo, para generar un nivel alto, configúrelo como en entrada )... eso aseguraría que la pantalla LCD viera una E como alta. Honestamente, si este es su problema, es posible que desee abordar el problema real en lugar de tratar de curarlo, ya que también es probable que sus señales de datos también se corrompan.
Puse condensadores y diodos por todas partes para amortiguar el ruido de inducción. Pero incluso las luces (principales) de la habitación parpadean cuando enciendo o apago la bomba. Así que la curita parece lo mejor por ahora.