mercredi 2 janvier 2019

Afficheur LCD 2 X 16 et carte STM32 (IDE Arduino)

N.B.: Ce billet a été mis à jour le 27 décembre 2019 afin d'inclure des cartes STM32 supplémentaires.

Dans ce billet, je vous explique comment contrôler un afficheur à cristaux liquide de type Hitachi HD44780 (2 lignes de 16 caractères) avec une carte STM32 (Nucleo, Blue Pill, etc.) programmée avec l'IDE Arduino.


Préparation de l'IDE Arduino

Dans un premier temps, s'il s'agit de votre première expérience de programmation d'une carte STM32 avec l'IDE Arduino, il serait important de consulter ce précédent article, qui vous indique comment ajouter les cartes STM32 aux menus de votre IDE Arduino.

Branchements de l'afficheur à la carte

La plupart des afficheurs LCD 2 X 16 sont conçus pour fonctionner à un niveau logique de 5 V mais  interpréteront quand même correctement les signaux de 3,3 V émis par la carte STM32. Il est également possible de se procurer un LCD 2 X 16 spécifiquement conçu pour fonctionner à 3,3 V.

En mode 4 bits, l'afficheur accaparera 6 sorties de votre carte (sans compter les broches d'alimentation). Puisque chacune de ces 6 broches est définie à l'intérieur du sketch, vous pouvez choisir celles que vous voulez. En ce qui me concerne, ma priorité a été de choisir 6 broches disponibles sur toutes mes cartes STM32 afin que le même sketch puisse être utilisé sur chaque carte sans la moindre modification.

La Blue Pill (STM32F103C8T6)


J'ai connecté l'afficheur LCD à la Blue Pill de la façon suivante:
  • Broche 1 du LCD: GND de la blue pill
  • Broche 2 du LCD: sortie 5 V de la blue pill
  • Broche 3 du LCD: curseur d'un potentiomètre pouvant varier de 0 à 5 V.
  • Broche 4 du LCD: broche A4 de la blue pill
  • Broche 5 du LCD: GND de la blue pill
  • Broche 6 du LCD: broche A5 de la blue pill
  • Broche 7 du LCD: pas connectée
  • Broche 8 du LCD: pas connectée
  • Broche 9 du LCD: pas connectée
  • Broche 10 du LCD: pas connectée
  • Broche 11 du LCD: broche A6 de la blue pill
  • Broche 12 du LCD: broche A7 de la blue pill
  • Broche 13 du LCD: broche A9 de la blue pill
  • Broche 14 du LCD: broche A10 de la blue pill
  • Broche 15 du LCD: sortie 5 V de la blue pill
  • Broche 16 du LCD: GND de la blue pill

Nucleo F030R8


Avec ma carte Nucleo F030R8, les connexions étaient:
  • Broche 1 du LCD: GND du Nucleo
  • Broche 2 du LCD: sortie 5 V du Nucleo
  • Broche 3 du LCD: curseur d'un potentiomètre pouvant varier de 0 à 5 V.
  • Broche 4 du LCD: broche A2 du Nucleo
  • Broche 5 du LCD: GND du Nucleo
  • Broche 6 du LCD: broche D13 du Nucleo
  • Broche 7 du LCD: pas connectée
  • Broche 8 du LCD: pas connectée
  • Broche 9 du LCD: pas connectée
  • Broche 10 du LCD: pas connectée
  • Broche 11 du LCD: broche D12 du Nucleo
  • Broche 12 du LCD: broche D11 du Nucleo
  • Broche 13 du LCD: broche D8 du Nucleo
  • Broche 14 du LCD: broche D2 du Nucleo
  • Broche 15 du LCD: sortie 5 V du Nucleo
  • Broche 16 du LCD: GND du Nucleo

STM32F030 Demo Board v1.1

L'afficheur a fonctionné sans problèmes sur ma modeste STM32F030 Demo Board (ce qui n'est pas le cas des afficheurs graphiques, trop gourmants en mémoire).

L'afficheur était branché de cette façon:
  • Broche 1 du LCD: GND de la Demo Board
  • Broche 2 du LCD: sortie 5 V de la Demo Board
  • Broche 3 du LCD: curseur d'un potentiomètre pouvant varier de 0 à 5 V.
  • Broche 4 du LCD: broche PA4 de la Demo Board
  • Broche 5 du LCD: GND de la Demo Board
  • Broche 6 du LCD: broche PA5 de la Demo Board
  • Broche 7 du LCD: pas connectée
  • Broche 8 du LCD: pas connectée
  • Broche 9 du LCD: pas connectée
  • Broche 10 du LCD: pas connectée
  • Broche 11 du LCD: broche PA6 de la Demo Board
  • Broche 12 du LCD: broche PA7 de la Demo Board
  • Broche 13 du LCD: broche PA9 de la Demo Board
  • Broche 14 du LCD: broche PA10 de la Demo Board
  • Broche 15 du LCD: sortie 5 V du Nucleo
  • Broche 16 du LCD: GND du Nucleo

Programmation d'un sketch Arduino

La bibliothèque LiquidCrystal, fournie par défaut avec l'IDE Arduino, est parfaitement compatible avec le core STM32, ce qui signifie que vous pouvez utiliser n'importe quel sketch conçu pour une carte Arduino, à la condition d'adapter le numéro des broches.

Le sketch ci-dessous affiche par alternance sur le LCD les messages "Electronique en amateur" et "STM32Duino Blue Pill".



À lire également 

Si vous préférez utiliser un écran qui affiche également des images, vous pouvez jeter un oeil sur le tutoriel concernant l'écran OLED SH1106 ou celui sur l'écran couleur ST7735.

La liste de tous les projets impliquant les cartes STM32, qu'elles soient programmées avec l'IDE Arduino ou avec mbed, se trouve sur cette page.
Finalement, le même afficheur LCD 2 X 16 peut être piloté par un Arduino, un Raspberry Pi, un ESP8266, un ESP32, un STM32 Nucleo programmé avec mbed, un Pinguino, un MSP430 Launchpad, etc.

Yves Pelletier   (TwitterFacebook)

Aucun commentaire:

Enregistrer un commentaire