J'ai un écran LCD 16x2 standard (je pense qu'il est compatible Hitachi HD44780 - voir résumé et spécifications ci-dessous), connecté à un Arduino Uno à l'aide de 4 broches de données, comme décrit ici , bien que j'ai ajouté 2x résistances 220ohm en parallèle (c'est-à-dire un Résistance 110ohm) sur la broche 16 (masse du rétroéclairage), et a remplacé le Pot par des résistances statiques pour créer 4V sur Vo.
En bref, RW est câblé à la terre, et RS, Enable et Data4-7 sont connectés aux broches Arduino, tandis que les données 0-3 sont flottantes.
J'ai d'autres choses (capteurs, un transistor avec un SSR optoisolé et un relais secteur, quelques boutons) connectés à différentes broches de l'Arduino. Le code que j'utilise écrit du texte sur l'écran plusieurs fois par seconde et, normalement, l'affichage fonctionne parfaitement.
Cependant, lorsque le relais se ferme (il prend environ 10 mA et est contrôlé par un transistor qui est à son tour contrôlé à partir d'une des broches Arduino), parfois l'écran LCD devient brouillé. Il reste généralement brouillé jusqu'à la fermeture du relais, mais parfois lorsque le relais s'ouvre, ou après quelques cycles d'ouverture / fermeture supplémentaires pour réinitialiser. Le brouillage commence et s'arrête toujours en même temps que le relais s'ouvre ou se ferme.
Par "brouillé", je veux dire que chaque fois que j'écris dessus après qu'il devienne brouillé, plutôt que d'écrire des caractères anglais, j'obtiens une chaîne de caractères, que je ne peux généralement pas identifier dans la fiche technique (bien que j'en puisse certains). Cette chaîne de caractères tronqués a tendance à se déplacer vers la gauche le long de l'écran lorsque j'écris du nouveau texte sur l'écran LCD.
Je suis convaincu que ce n'est pas l'Arduino lui-même qui se confond, car j'écris le même texte sur le moniteur série en même temps, et ce n'est pas brouillé.
J'ai depuis essayé de câbler la broche RW à une sortie Arduino et Data0-3 à la masse, mais cela n'aide pas. J'ai alimenté l'ensemble de l'appareil avec une batterie 9V ou USB, et cela n'aide pas. J'ai remplacé la batterie ... pas de changement.
La seule chose qui semble fonctionner est de ne pas avoir de charge branchée sur le relais, mais cela va à l'encontre du but :-)
Je n'ai pas d'analyseur de signal ni rien de plus sophistiqué qu'un multimètre, un ordinateur portable et un arduino ... Quelqu'un a-t-il des conseils pour m'aider à déboguer cela?
Feuille de résumé LCD: http://oomlout.com/LCDD/LCDD-SUMM-BC1602A.pdf
Spécifications LCD: http://oomlout.com/LCDD/LCDD-DATA-BC1602A.pdf
Exemple de texte tronqué: