samedi 1 novembre 2014

STM32 Nucleo et afficheur LCD

Il y a quelques mois, je vous avais parlé de la carte STM32 Nucleo et de sa programmation au moyen du compilateur en ligne mbed.   Aujourd'hui, je vous propose la suite:  ce petit tutoriel concernant le contrôle d'un afficheur à cristaux liquides (LCD).



Matériel

Vous aurez besoin:

  • d'une carte STM32 Nucleo (j'ai utilisé le modèle bas de gamme F030R8)
  • d'un afficheur LCD 2 X 16 (2 lignes de 16 caractères) muni d'un driver de type Hitachi HD44780.  Si vous avez un modèle conçu pour fonctionner sous une tension de 3,3 V, c'est parfait.  Si votre modèle fonctionne sous 5 V, il y a de bonnes chance que ça fonctionne (mais ce n'est pas sûr à 100% puisque le Nucleo communique avec 3,3 V).
  • d'un ordinateur branché à internet.  J'ai fait des tests concluants avec Windows 7 et Linux Mint.


Branchements

L'afficheur LCD comporte 16 connexions situées au-dessus de la zone d'affichage.  Nous pouvons les brancher de la façon suivante:

  • Pin 1 du LCD (VSS):  Pin GND du Nucleo
  • Pin 2 du LCD (VDD):  Pin 3V3 du Nucleo si votre LCD est conçu pour fonctionner sous cette tension, ou Pin 5V du Nucleo si votre LCD est le modèle (plus répandu) qui fonctionne sous 5 V.
  • Pin 3 du LCD (VO):  branchée à un potentiomètre qui permettra d'ajuster la tension à une valeur située entre 0 et 3,3 V (ou entre 0 et 5 V), de façon à ajuster le contraste de l'affichage.
  • Pin 4 du LCD (RS):  Pin D2 du Nucleo
  • Pin 5 du LCD (RW):  Pin GND du Nucleo
  • Pin 6 du LCD (E):  Pin D3 du Nucleo
  • Pins 7, 8, 9 et 10 du LCD (D0, D1, D2, D3):  Pas utilisées
  • Pin 11 du LCD (D4):  Pin D4 du Nucleo
  • Pin 12 du LCD (D5):  Pin D5 du Nucleo
  • Pin 13 du LCD (D6):  Pin D6 du Nucleo
  • Pin 14 du LCD (D7): Pin D7 du Nucleo
  • Pin 15 du LCD (A):  Pin 3V3 ou 5V du Nucleo, selon votre modèle de LCD (c'est pour le rétroéclairage).
  • Pin 16 du LCD (K):  Pin GND du Nucleo

Programmation dans mbed

Voyons maintenant comment construire votre programme dans mbed.  Vous vous rendez d'abourd sur le site http://developer.mbed.org, vous vous identifiez (ou vous vous inscrivez s'il s'agit de votre première visite), vous branchez votre carte STM32 Nucleo au port usb de votre ordinateur, et vous cliquez sur le bouton "compiler" en haut à droite de la fenêtre pour accéder au compilateur en ligne.


Pour créer un nouveau programme, vous cliquez le bouton "New..."/"New Program..."


...ce qui fait apparaître la fenêtre de dialogue illustrée ci-dessous.  Si votre carte est branchée au port USB, "Platform" devrait déjà montrer le bon numéro de modèle.  Vous pouvez créer votre nouveau programme au moyen d'un modèle (j'ai choisi un programme vide), et vous choisissez un nom pour votre nouveau programme (j'ai choisi "Afficheur LCD").


Ce "nouveau programme" est en fait un répertoire dans lequel nous devons maintenant ajouter un fichier.  Nous cliquons à nouveau sur le bouton "New...", mais cette fois nous sélectionnons "New File...".


Nous baptisons ce fichier "main.cpp".



Vous pouvez copier et coller le script ci-dessous à l'intérieur du fichier main.cpp:






Notre script utilise deux bibliothèques, que nous devrons importer dans notre répertoire au moyen du bouton "Import".  Vous cliquez ensuite sur l'onglet "Libraries", vous sélectionnez dans la liste les bibliothèques désirées ("mbed" et "text_LCD"), et vous cliquez sur le bouton "Import!" (Remarque:  le bouton "Import!" (avec un point d'exclamation) et le bouton "Import" (sans point d'exclamation) sont deux boutons différents...


Maintenant, votre répertoire "Afficheur_LCD" devrait contenir, en plus de votre fichier "main.cpp", la blibliothèque "mbed" et la bibliothèque "text_LCD".

Il ne vous reste plus qu'à compiler le programme (bouton "Compile") et à transférer le fichier ".bin" obtenu dans votre Nucleo.

Yves Pelletier (Twitter:  @ElectroAmateur)

Aucun commentaire:

Enregistrer un commentaire