Comment connecter un écran LCD 40x4 en I2C ?
Tout est dans le titre...
J'ai retrouvé dans mes tiroirs un ancien écran LCD de 4x40 caractères (voir Figures 2 et 3) qu'un ami m'a donné il y a de cela de nombreuses années. Je n'avais aucune info technique ni documentation le concernant, mais après de très nombreuses recherches sur Internet j'ai enfin pu trouver.
L'afficheur (caractères noir sur fond jaune) portant la référence LMMK5S028C2 proviendrait de chez NAN YA PLASTICS CORPORATION.
Ses dimensions sont les suivantes :
- Dimensions du module (mm) : 190.0x54.0x14.5
- Zone de visualisation (mm) : 147.0x29.5
- Taille du point (mm) : 0.50x0.55
- Espace de points (mm) : 0.07x0.07
- Contrôleur : ST7066, NT3881 ou contrôleur compatible
- Rétro-éclairage : LED
Fonctionnement
Cet écran LCD peut être vu comme un ensemble de deux écrans 20x4 caractères et il dispose donc pour les sélectionner de deux broches "Enable" (EN1 et EN2). Selon la sélection faite dans le logiciel, il devient possible d'adresser l'un ou l'autre des deux contrôleurs qui animent cet écran particulier.
J'ai également trouvé chez Data Modul AG le document technique d'un module d'afficheur 40x4 compatible broche à broche avec le mien, pour lequel je vous propose son diagramme en extrait :
L'on y distingue clairement les deux modules 20x4 qui le composent. Cet afficheur dispose sur sa face arrière d'un connecteur femelle 2x9 broches fort pratique puisqu'il m'a permis d'y installer un petit module de conversion I2C grâce à un montage dit à impériale. Ce module (voir Figures 4, 5 et 6) utilise un expandeur 8-bits (PCF8574A) pour Bus I2C, composant très classique s'il en est.
Schéma de principe
J'utilise depuis peu KiCAD v8 avec lequel j'ai dessiné le schéma de mon interface I2C.
Si j'ai effectivement dessiné un circuit imprimé, je ne l'ai pas réalisé gardant mon circuit proto pour l'instant.
Le schéma n'appelle pas de commentaire particulier, si ce n'est que j'ai prévu d'utiliser la broche 7 (P3) de IC1 pour piloter le rétro-éclairage (ligne BKL) par l'intermédiaire d'un transistor NPN (T1) de type BC547. Sur ma carte de développement EasyPIC v7 (voir Figure 1) de mikroElektronika et selon la programmation de mon logiciel, le port RC0 est utilisé pour piloter le rétro-éclairage, me permettant ainsi éventuellement de pouvoir éteindre l'afficheur à volonté. Ceci n'est bien sûr pas absolument nécessaire, j'ai seulement prévu cette option au cas où je souhaiterais l'utiliser.
L'adressage du PCF8574A s'effectue de deux façons (voir le Datasheet page 14) en configurant les trois cavaliers A0-A1-A2 :
- 7-bits (hexa) : 0x38 à 0x3F --> + le bit R/W
- 8-bits (hexa) : 0x70 à 0x7E --> le bit R/W est inclus (Write mode)
Attention !
L'adressage du composant est différent selon que l'on utilise un modèle PCF8574 ou PCF8574A, faites-y bien attention lors du choix du composant et de sa programmation sans quoi une communication I2C demeurera impossible.
L'ensemble est alimenté et ne fonctionne que sous +5V car bien que le PCF8574(A) puisse communiquer correctement sous +3,3V il n'en est pas de même pour l'afficheur qui n'accepte qu'une tension de +5V. La consommation mesurée est d'environ 60 mA.
Logiciel
J'ai adapté la bibliothèque développée sous mikroC par Jayanth Devarayanadurga car elle ne fonctionnait pas pour mon afficheur avec un PIC18F45K22 sur ma carte EasyPIC v7.
Vous pouvez voir sur la Figure 2 que j'ai conservé à titre de démonstration le texte d'origine de son auteur.
Réalisation
Il n'y a pas de difficultés relevées dans cette conception, le circuit est vraiment très simple. La connection entre le module PCF8574 et la carte EasyPIC v7 s'effectue à l'aide d'un câble en nappe de 10 conducteurs selon le format de mikroElektronika.
Quelques photos
Packages comprenant :
◊ Schéma de principe sous KiCAD v8
◊ Fichiers Gerber
◊ Documents techniques de l'afficheur
Source :
Data Modul AG : https://www.data-modul.com/en
Jayanth Devarayanadurga : https://libstock.mikroe.com/projects/view/1428/i2c-40x4-lcd
NAN YA PLASTICS CORPORATION : https://www.npc.com.tw/j2npc/enus/prod/Electronic/Liquid-Crystal-Display(LCD)/Liquid Crystal Display ( Character type )
Carte de développement EasyPIC7 : https://www.mikroe.com/easypic-v7
PIC18F45K22 : https://ww1.microchip.com/downloads/aemDocuments/documents/MCU08/ProductDocuments/DataSheets/PIC18%28L%29F2X-4XK22-Data-Sheet-40001412H.pdf
PCF8574A : https://www.ti.com/lit/ds/symlink/pcf8574a.pdf?ts=1732093282490&ref_url=https%253A%252F%252Fwww.google.de%252F
mikroElektronika : https://www.mikroe.com/
mikroC : https://www.mikroe.com/mikroc-pic