On peut trouver sur Aliexpress des écrans LCD de 40 caractères sur 2 lignes (appelés 40×2), avec diverses couleurs de rétro-éclairage. J’en ai sélectionné un modèle avec rétro-éclairage blanc, acheté chez Buydisplay pour 29€ le pack de 2, frais de ports inclus. Je vous propose dans ce billet un test de cet écran, ainsi qu’un petit guide d’assemblage et de connexion à un Arduino. L’écran fonctionne il correctement? Est il lisible? Fonctionne il comme les écrans HD44780 habituels? Réponse dans ce billet!

Le vendeur

Le vendeur est Buydisplay, une usine qui semble spécialisée dans les LCD, à Shenzhen, en chine. En parcourant leur boutique Aliexpress, ils ont l’air sérieux, et semblent faire des produits bien finis, et propres. Cette impression s’est confirmée avec le produit que j’ai reçu (très rapidement au passage, environ 2 semaines), qui est propre et ne présente pas de défaut physique visible évident. J’ai trouvé d’autres vendeurs moins chers, mais pas avec cette configuration, et de toutes façons les prix étaient raisonnablement proches. Bref, à mes yeux un bon vendeur.

Le produit : un écran LCD 40×2 à rétro-éclairage blanc, logique 5V

Cet écran est un LCD de 40 caractères par ligne, avec deux lignes (soit un total de 80 caractères), avec un rétro éclairage blanc (dans mon cas, texte blanc sur fond noir, mais le contraire existe aussi), basé sur le contrôleur SPLC780C, vendu comme compatible avec le HD44780 qu’on trouve sur la majorité des écrans. Après quelques recherches, je suis tombé sur ce sujet sur EEVBlog confirmant la compatibilité, et je me suis lancé. Après réception du produit, je confirme effectivement qu’il est compatible, et je l’ai utilisé comme un HD44780 sans rien faire de particulier.

alitest : écran lcd 40x2, face avant, éteint

écran lcd 40×2, face avant, éteint

L’écran est livré sans connecteurs ni câblage, il faut donc souder des connecteurs ou des câbles. La disposition est 2*8 connecteurs plutôt que le 1*16 qu’on trouve sur les écrans 2×16 classiques, et les connecteurs sont sur le côté gauche de l’écran. Contrairement aux 2×16 qui ont des trous de vis trop petit pour des boulons de 3mm, les 4 trous de celui ci acceptent ce type d’écrous.

alitest : écran lcd 40x2, face arrière

écran lcd 40×2, face arrière

Les dimensions de la carte sont de 182×33.5mm, et la zone active de l’écran fait 147.5×11.5mm, et l’épaisseur maximale de l’écran est de 13.6mm, en comptant les ergots métalliques à l’arrière. Toutes les dimensions et schémas sont disponibles sur la page du vendeur et dans la documentation.

J’ai soudé des câbles, avec des connecteurs 6 broches au bout. Il faut au total 12 fils, avec un câblage que nous décrirons plus bas.

 

Câblage avec un Arduino

Par rapport à un écran 2×16, les connections sont sur le côté gauche (avec l’écran de face), et en deux rangées de 8 au lieu d’une de 16. Les numéros 1, 2, 15 et 16 sont indiqués.

Sur le dos de l’écran, une mention “up” accompagnée d’une flèche indique également le haut de l’écran.

La disposition est la suivante :

15  16

13  14

11  12

9   10

7    8

5   6

3   4

1    2

Il est possible de souder des câbles, des broches mâles, femelles, etc…

Pour ma part j’ai soudé des fils avec deux connecteurs femelle 6 broches au bout.

Brochage

Les connections sont les mêmes qu’avec un écran LCD 16×2 basé sur un HD44780 :

  • 1VSS (masse)
  • 2VDD (5V)
  • 3V0 (potentiomètre pour le contraste, ou vers une résistance 2.2K reliée à la masse)
  • 4RS (broche D2 du Arduino)
  • 5R/W (relié à la masse)
  • 6E (broche D3 du Arduino)
  • 7DB0 (non connecté)
  • 8DB1 (non connecté)
  • 9DB2 (non connecté)
  • 10DB3 (non connecté)
  • 11DB4 (broche D4 du Arduino)
  • 12DB5 (broche D5 du Arduino)
  • 13DB6 (broche D6 du Arduino)
  • 14DB7 (broche D7 du Arduino)
  • 15 A (Anode, + du rétro-éclairage, connecté à une résistance de 100ohms connectée au 5V)
  • 16K (Cathode, masse du rétro-éclairage, connecté à la masse)
écran lcd 40x2, face arrière une fois le câblage soudé

écran lcd 40×2, face arrière une fois le câblage soudé

A noter qu’il est possible d’utiliser les broches 7 à 10 en plus des autres, mais je ne le fais pas pour économiser 4 sorties.

Programmation

On utilisera le programme d’exemple de la libraire liquidcrystal (Fichier/Exemples/LiquidCrystal/HelloWorld dans l’IDE Arduino), en prenant bien soin d’adapter la déclaration initiale (LiquidCrystal lcd(12, 11, 5, 4, 3, 2);) pour la faire correspondre à votre câblage (Si vous avez câblé comme dans cet exemple : LiquidCrystal lcd(2, 3, 4, 5, 6, 7);), et l’initialisation du LCD qui était au départ lcd.begin(40, 2); et devient lcd.begin(40, 2);

alitest : écran lcd 40x2, face avant, allumé avec texte

alitest : écran lcd 40×2, face avant, allumé avec texte

Voici le code source que j’ai utilisé pour le résultat ci dessus :

#include <LiquidCrystal.h>
// initialisation des sorties connectees au LCD
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // on a remplace la ligne de depart qui etait LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  // definition du nombre de colonnes et de lignes :
  lcd.begin(40, 2);
  // Affichage d'un message sur l'ecran
  lcd.print("nagashur.com/blog/alitest-ecran-lcd-40x2");
}

void loop()
{
  // On deplace le curseur a la position 0 de la ligne 1
  lcd.setCursor(0, 1);
  lcd.print(" test ecran 40*2 caracteres retro blanc");
}

Il suffit alors d’envoyer le code à n’importe quel Arduino classique, et on aura le résultat sur l’image.

Conclusions

Cet écran fonctionne normalement, et on peut s’en servir comme on le ferait avec un écran 16×2 de base, sauf qu’ici on a bien plus de caractères affichables en même temps. Les délais de rafraîchissement sont comparables, et le rendu visuel également. En texte blanc sur fond noir, on a un écran bien lisible. En revanche, la vitre de l’écran semble un peu fine, et si on appuie un peu dessus, des marques apparaissent :

écran lcd 40x2, face avant, montrant un artefact apparaissant si l'on appuie légèrement sur l'écran

écran lcd 40×2, face avant, montrant un artefact apparaissant si l’on appuie légèrement sur l’écran

Les marques en question sont les traits horizontaux  en haut de l’écran. Au bout de quelques secondes ces marques disparaissent toutefois. C’est cependant à savoir, et je conseillerais de ne pas exposer la surface de l’écran à un environnement  ou il est susceptible de subir des chocs et pressions sans le protéger (avec du plexiglas par exemple). La vitre est peut être plus fine qu’avec les 16×2, ou alors c’est du à la grande longueur de l’écran qui rend celle ci souple…

Hormis ce détail, j’ai laissé cet écran fonctionner pendant une journée en continu sans soucis, je vous tiendrai au courant sur le long terme.

C’est donc un composant que je recommande pour le moment.

 

Réseaux sociaux