Arduino Uno et Shield LCD1602

Prise en main d’un Shield LCD1602

Récemment, j’ai acheté un nouveau gadget pour Arduino : un afficheur LCD au doux nom de LCD1602. Il s’agit d’un contrôleur HD44780 branché sur une carte qui va s’imbriquer sur votre Arduino (un Shield donc). Les librairies nécessaires « LiquidCrystal » sont déjà présente dans l’IDE Arduino.

Voir en bas de page pour la référence/prix de celui que j’ai acheté.

Mon montage de test avec le Shield + un Arduino Uno (CC) :

LCD1602

Pas de chance, chez moi cela n’a pas fonctionné du premier coup, l’afficheur s’allumer bien, je pouvais controler le rétro-éclairage, mais je ne pouvais rien afficher dessus (via le sketch d’exemple). Explications :

L’écran du LCD1602 s’éclaire mais rien ne s’affiche.

Dans le sketch d’exemple fourni par l’IDE, on trouve l’initialisation d’un élément « LiquidCrystal » comme suit :

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Et le sketch étant tellement simple (il tient en quelques lignes) que tout me portait à croire que le problème venait de là.

Après un petit tour sur la documentation de la librairie LiquidCrystal, on obtient le détail des paramètres qui sont passés lors de l’initialisation :

LiquidCrystal(rs, enable, d4, d5, d6, d7)

Pour ce qui est des arguments rs, enable, d4, d5, d6, d7 (+ d’autres facultatifs), inutile de sortir la documentation car cela correspond à ce qui est écrit sur la face avant de la carte LCD1602 :

LCD1602

Du coup, je regarde comment est branché le shield avec la carte LCD1602.

LCD1602

Attention les yeux, photo-montage effectué sous MSPaint : Il s’agit d’une photo du Shield de dos, sur lequel j’ai incrusté en haut une photo (inversée) des GPIO digitales d’un Arduino UNO et j’ai également incrusté en bas une photo (inversée) des PIN sur la carte LCD1602.

LCD1602

En fait, il faut bien regarder les deux faces du Shield et voir les correspondances.

En vert, j’ai tenté de suivre un des chemins qui va du Shield vers la carte LCD1602. Dans cet exemple on voit que le PIN4 est relié à « D4 » sur la carte.

En faisant le même raisonnement pour les autres broches, j’en déduis donc :

  • rs –> PIN8
  • e (enable) –> PIN9
  • d4 –> PIN4
  • d5 –> PIN5
  • d6 –> PIN6
  • d7 –> PIN7

Il faut donc changer l’initialisation par :

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

Après un nouvel essai, le test « Hello World! » fonctionne :

LCD1602


Matériel utilisé pour cet article sur le LCD1602 :

  • Shield LCD1602 acheté 2.27 euros (fdp compris) le 24/04/2016 et reçu 17 jours après (le 11/05)
  • Arduino Uno (CC) acheté sur leboncoin à 10 euros

J’utilise ce type d’afficheur pour deux raisons :

  • Pour mes phases de ‘debug’ avec Jeedouino (plugin Jeedom)
  • Pour afficher des infos sur mes Arduinos autonomes (non relié à ma domotique Jeedom)

Cet article fait partie d’une série d’articles sur la box domotique Jeedom, les micro-contrôleurs Arduino et compatible, le tout en DIY (Do It Yourself). Consultez la liste complète des articles de cette thématique en cliquant ici.


Si vous souhaitez partager cet article...Share on Facebook
Facebook
Share on Google+
Google+
Tweet about this on Twitter
Twitter