Un collègue du FabLab de Quimper m’a prêté deux afficheurs LCD jamais utilisés. Ils devraient en principe fonctionner avec un arduino. J’essaie donc !
Les trois afficheurs
Deux afficheurs prêtés :
L’un comporte les indications suivantes : CLCD sur le contrôleur et GDM1604B sur l’afficheur. Il ressemble à ce produit de Lextronic (35.15 €), avec une fiche technique (pdf) et un manuel utilisateur chez ComFile.
L’autre : ALCD sur le contrôleur et PMC 2004E-SBLW ou PC-2004E6-2 Rev 1 sur l’afficheur. Il paraît correspondre à cet afficheur 2 x 16 caractères de Lextronic (27.5 €).
Les deux produits semblent conçus par Comfile pour les microcontrôleurs PicBasic. Je ne parviens pas à trouver d’information intéressante sur la façon de les connecter à un arduino et surtout de les commander via les contrôleurs.
Je décide donc d’utiliser un des afficheurs sans son contrôleur pour voir ce que l’on peut en faire.
Afficheurs achetés
J’ai également acheté un jeu de 5 afficheurs LCD très économiques : Ecrans LCD 16×2 HD44780 Controleur Retro-eclairage Bleu, sur amazon.fr, à 7.24 € les 5 (oui, les 5…)
Description d’un afficheur LCD
J’ai déconnecté le contrôleur ALCD de l’afficheur PMC 2004E-SBLW. Je me retrouve avec un afficheur pourvu de 16 broches males, numérotées de 1 à 16.
La page « Arduino – Hello World » indique que de nombreux afficheurs LCD à 16 broches sont compatibles avec le driver Hitachi HD44780 (ce qui est annoncé pour l’afficheur acheté, pas pour les deux prêtés). Un autre article sur codingcolor.com montre en photo les connecteurs.
Et l’afficheur acheté séparément contient aussi 16 broches.
Connexion des 16 broches de l’afficheur LCD
Pendant un bout de temps, les trois afficheurs affichent des carrés foncés mais pas le texte prévu… J’ai fini par me rendre compte que j’avais connecté DB11 à DB14 de l’afficheur sur les broches 4 à 1 de l’arduino et non 5 à 2….
Connexions à l’arduino
afficheur | fonction | arduino |
1 | VSS | GND |
2 | VDD | 5V |
3 | contraste | potentiomètre |
4 | RS (register select) | D12 |
5 | R/W Read / Write | GND |
6 | H/L enable | D11 |
7 | DB0 (data 0) | – |
8 | DB1 (data 1) | – |
9 | DB2 (data 2) | – |
10 | DB3 (data 3) | – |
11 | DB4 (data 4) | 5 |
12 | DB5 (data 5) | 4 |
13 | DB6 (data 6) | 3 |
14 | DB7 (data 7) | 2 |
15 | LED + (5V) rétro-éclairage | 220 Ω puis 5V |
16 | LED – (GND) | Résistance 220 ohm |
schéma (frietzing)
Sketch arduino (issu d’un exemple) : test-lcd-display-yves.ino
Et le résultat, pour les 3 afficheurs, avec le même sketch. La seule chose qu’il faut régler c’est le contraste avec le potentiomètre.
Et on voit que les deux derniers afficheurs sont faits pour 4 lignes, il faudrait modifier le sketch pour en tirer partie.