dimanche 3 novembre 2019

Écran OLED SH1106 I2C et STM32

Le projet d'aujourd'hui consiste à afficher du texte et des images sur un petit écran OLED SH1106 i2c de 128 X 64 pixels. L'écran sera piloté par une carte STM32 (Blue Pill ou Nucleo, par exemple), programmée au moyen de l'IDE Arduino.


Afin de pouvoir programmer une carte STM32 avec l'IDE Arduino, ces cartes doivent préalablement avoir été installées dans l'IDE au moyen de son gestionnaire de cartes. Si ce n'est pas déjà fait, vous pouvez vous référer à ce précédent article.

Installation de la bibliothèque u8g2

Il faut aussi que la bibliothèque u8g2 soit installée. Cette bibliothèque est compatible avec de nombreuses cartes de développement, et avec pratiquement tous les modèles d'écrans monochromes. Le gestionnaire de bibliothèques de l'IDE constitue la façon la plus simple de l'installer.

Connexion de l'écran OLED à une carte STM32 Nucleo

Puisqu'il s'agit d'un périphérique I2C, 4 fils sont suffisants pour brancher l'écran à votre carte de développement.

Sur une carte Nucleo, les connexions sont assez évidentes:
  • GND de l'écran OLED - GND de la carte Nucleo
  • VCC de l'écran OLED - 3V3 de la carte Nucleo
  • SCL de l'écran OLED - SCL de la carte STM32
  • SDA de l'écran OLED - SDA de la carte STM32


Connexions à une Blue Pill

Si vous utilisez une Blue Pill, il faut savoir que les broches B6 et B7 sont consacrées à la communication I2C, car ce n'est pas indiqué sur la carte.
  • GND de l'écran OLED - G de la carte STM32
  • VCC de l'écran OLED - 3V3 de la carte STM32
  • SCL de l'écran OLED - broche B6 de la carte STM32
  • SDA de l'écran OLED - broche B7 de la carte STM32

N.B.: j'ai essayé sans succès de piloter l'écran OLED avec mon STM32F030 Demo Board V1.1, mais la bibliothèque u9g2 semble trop gourmande pour ses 16 kb de mémoire flash.

Sketch de démonstration

Voici un sketch qui écrit et dessine sur l'écran. Il s'agit en fait du sketch que j'avais écrit il y a quelques mois pour contrôler l'écran OLED avec un ESP32. Aucune modification n'a été nécessaire pour le faire fonctionner avec un STM32, et vous pouvez donc consulter ce précédent article pour plus d'explications.

-

-

À lire aussi

Vous serez peut-être intéressés par ces autres tutoriels qui montrent comment utiliser ce même écran OLED SH1106 avec un Raspberry Pi, un Arduino, un ESP32 ou un ESP8266.

D'autres types d'écrans peuvent être pilotés par une carte STM32: écran couleur ST7735, afficheur 2 X 16, etc.

De plus, vous trouverez ici la liste de tous les projets impliquant les cartes STM32 (programmées avec l'IDE Arduino ou avec mbed).

Yves Pelletier   (TwitterFacebook)

2 commentaires:

  1. simplement merci pour ce travail et la diffusion
    F1CHF

    RépondreSupprimer
  2. MERCI Yves pour ton travail et la diffusion de celui ci et un grand bravo.

    Bernard

    RépondreSupprimer