Tengo una pantalla LCD estándar de 16x2 (creo que es compatible con Hitachi HD44780 - vea el resumen y la especificación a continuación), conectado a un Arduino Uno con 4 pines de datos, como se describe aquí , aunque he agregado 2x resistencias de 220ohm en paralelo (es decir, una resistencia de 110ohm) en el pin 16 (Fondo de retroiluminación), y he reemplazado el Pot con resistencias estáticas para crear 4V en Vo.
En resumen, RW está conectado a tierra, y RS, Enable y Data4-7 están conectados a los pines Arduino, mientras que los datos 0-3 están flotando.
Tengo otras cosas (sensores, un transistor con un SSR optoaislado y un relé de red, algunos botones) conectados a diferentes pines en el Arduino. El código que uso escribe texto en la pantalla varias veces por segundo y, normalmente, la pantalla funciona perfectamente.
Sin embargo, cuando el relé se cierra (toma alrededor de 10 m, y es controlado por un transistor que a su vez está controlado de uno de los pines de Arduino), a veces el LCD se vuelve confuso. Generalmente permanece confuso hasta que el relé se cierra a continuación, pero a veces cuando el relé se abre, o después de algunos ciclos más de abrir / cerrar para reiniciar. El parloteo siempre comienza y se detiene al mismo tiempo que el relé se abre o se cierra.
Con "distorsionado", quiero decir que cada vez que escribo en él y luego en caracteres en inglés, obtengo una serie de caracteres que normalmente no puedo identificar en la hoja de datos (aunque algunos sí puedo). Esta cadena de caracteres confusos tiende a moverse hacia la izquierda a lo largo de la pantalla cuando escribo un nuevo texto en la pantalla LCD.
Confío en que no es el mismo Arduino el que se confunde, ya que escribo el mismo texto en el monitor Serial al mismo tiempo, y no está confuso.
Desde entonces, he experimentado con el cableado del pin RW a una salida de Arduino y Data0-3 a tierra, pero esto no ayuda. He alimentado todo el dispositivo con una batería de 9V o con USB, y no ayuda. He reemplazado la batería ... sin cambios.
Lo único que parece funcionar es que no hay carga conectada al relé, pero eso no sirve para nada :-)
No tengo un analizador de señal ni nada más sofisticado que un multímetro, una computadora portátil y un arduino ... ¿Alguien tiene alguna sugerencia para ayudarme a depurar esto?
Hoja de resumen de LCD: enlace
Especificación de LCD: enlace
Ejemplo de texto distorsionado: