Dans ce tutoriel, vous apprendrez comment interfacer un module d’affichage TFT 1,3″ 240×240 avec un driver d’affichage ST7789 avec un ESP32 (WEMOS Lolin32 lite).
Les instructions et le code fonctionneront avec quelques modifications mineures pour d’autres ESP32 et TFT, tant que l’affichage utilise le driver ST7789.
Pièces requises
Vous aurez besoin d’un ESP32 et d’un écran TFT 1,3 pouces avec une résolution de 240×240 pixels et un circuit driver ST7789. Quelques câbles et une breadboard peuvent aussi être utiles.

Écran TFT 1,3″ ST7789

ESP32 lite

Câble USB de données

Jeu de fils Dupont

Breadboard
Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.
Module d’affichage TFT 1,3″ ST7789
Le module d’affichage TFT 1,3″ que nous allons utiliser ici a une résolution de 240×240 pixels avec 65K couleurs RGB. L’image ci-dessous montre le devant et le dos du module d’affichage :

)
Le module utilise le ST7789 driver et est contrôlé via une interface SPI 4 fils. La tension de fonctionnement est de 3,3V et l’écran consomme environ 30mA au maximum. Notez qu’il existe de nombreuses versions différentes de ce type d’écran TFT.
Certains modules d’affichage TFT ont un logic level convertisseur qui permet de connecter le module à un Arduino UNO fonctionnant en 5V. Celui-ci n’en possède pas, ce qui signifie que vous ne pouvez pas le connecter directement à un Arduino ! Nous utilisons donc un ESP32 qui fonctionne avec une logique CMOS 3,3V.
Si vous souhaitez utiliser un Arduino, vous devez convertir les niveaux logiques. Il existe plusieurs méthodes pour cela (diviseur de tension, optocoupleur, circuit de translation de niveau), mais la plus simple est d’utiliser un level shifting module.
Enfin, il existe des écrans similaires qui utilisent le circuit driver ST7735S au lieu du ST7789. La configuration de ce tutoriel est pour les écrans avec le driver ST7789 et ne fonctionnera pas avec d’autres.
Connexion d’un écran TFT 1,8″ ST7735 avec ESP32
Connecter l’écran TFT à l’ESP32 est simple, mais le marquage des broches sur l’écran est un peu déroutant. Il affiche des broches SDA et SCL, mais comme il utilise une interface SPI, ces broches devraient être étiquetées MOSI et SCLK.
Le schéma de câblage suivant montre comment connecter le module d’affichage TFT 1,3″ ST7789 à un WEMOS Lolin32 lite :

Voici également les connexions requises sous forme de tableau. Notez que ce module d’affichage n’a pas de sélection de puce (CS) et donc aucune broche n’est nécessaire pour cela.
| Affichage | ESP32 |
|---|---|
| RST | 16 |
| DC | 17 |
| SDA / MOSI | 23 |
| SCL / SCLK | 18 |
| BKL/BL | 22 |
| GND | GND |
| VCC | 3,3V |
Assurez-vous de connecter le VCC de l’écran au 3,3V ! Vous devriez aussi utiliser les broches hardware SPI pour MOSI et SCLK. Selon le microcontrôleur, les broches hardware SPI peuvent varier. Vous pouvez les trouver en sélectionnant votre carte dans l’IDE Arduino puis en exécutant le code ci-dessous.
void setup() {
Serial.begin(115200);
Serial.print("MOSI: ");
Serial.println(SDA / MOSI);
Serial.print("MISO: ");
Serial.println(MISO);
Serial.print("SCL / SCLK: ");
Serial.println(SCK);
Serial.print("CS / SS: ");
Serial.println(SS);
}
void loop() { }
Il affiche les broches nécessaires pour le hardware SPI – spécifiquement MOSI et SCLK. Les autres broches peuvent être choisies librement et MISO n’est pas utilisé.
Code pour écran TFT ST7735 avec la bibliothèque TFT_eSPI
Dans cette section, je vous montre comment utiliser la TFT_eSPI library pour contrôler l’écran. Pour installer cette bibliothèque, ouvrez le Library Manager, cherchez « TFT_eSPI » et cliquez sur « INSTALL ». Après l’installation, cela devrait ressembler à ceci :

Ensuite, nous devons créer la structure de dossier correcte pour le projet. Ouvrez votre IDE Arduino et créez un projet « tft_test » puis enregistrez-le (Enregistrer sous …). Cela créera un dossier « tft_test » contenant le fichier « tft_test.ino« . Dans ce dossier, créez un autre fichier nommé « tft_setup.h« . Votre dossier de projet devrait ressembler à ceci

Si vous souhaitez en savoir plus sur cette configuration et d’autres options pour configurer un écran TFT avec la bibliothèque TFT_eSPI, consultez le How to configure TFT_eSPI Library for TFT display tutoriel.
Une fois le dossier de projet avec les deux fichiers créé, copiez le code de configuration suivant pour l’écran TFT dans le fichier tft_setup.h :
// 1.3" TFT Display (GMT130 V.10), // no CS pin // 240x240, ST7789 // tft_setup.h #define ST7789_DRIVER #define TFT_WIDTH 240 #define TFT_HEIGHT 240 #define TFT_RGB_ORDER TFT_BGR #define TFT_CS -1 #define TFT_RST 16 #define TFT_DC 17 #define TFT_MOSI 23 // SDA // HW MOSI #define TFT_SCLK 18 // SCL // HW SCL #define TFT_MISO 19 // not used #define TFT_BL 22 // LED back-light #define TFT_BACKLIGHT_ON HIGH #define LOAD_GLCD #define LOAD_FONT2 #define LOAD_FONT4 #define LOAD_FONT6 #define LOAD_FONT7 #define LOAD_FONT8 #define LOAD_GFXFF #define SMOOTH_FONT #define SPI_FREQUENCY 27000000 #define SPI_READ_FREQUENCY 20000000 #define SPI_TOUCH_FREQUENCY 2500000
et le code du sketch dans le fichier tft_test.ino :
// tft_test.ino
#include "tft_setup.h"
#include"TFT_eSPI.h"
TFT_eSPI tft = TFT_eSPI();
const int cw = tft.width()/2;
const int ch = tft.height()/2;
const int s = min(cw/4,ch/4);
void setup(void) {
tft.init();
tft.fillScreen(TFT_BLACK);
tft.setRotation(1);
tft.setTextFont(1);
tft.setTextSize(2);
tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.setTextDatum(CC_DATUM);
tft.drawString("Makerguides", ch, cw+s);
tft.fillCircle(ch, cw/2+s/2, s/2, TFT_RED);
tft.fillRect(1.5*ch-s, cw/2, s, s, TFT_GREEN);
tft.fillTriangle(ch/2, cw/2, ch/2+s, cw/2, ch/2, cw/2+s, TFT_BLUE);
}
void loop() { }
Notez que tft_setup.h est inclus en haut du programme. Le code lui-même est facile à comprendre. Nous créons un objet TFT_eSPI et des constantes pour le centre (cw, ch) ainsi que la taille s des objets à dessiner.
Dans la fonction setup, nous initialisons l’écran TFT, remplissons l’écran en noir et le mettons en mode portrait.
Ensuite, nous définissons la police, sa taille, sa couleur et son alignement, puis écrivons le texte « Makerguides » à l’écran. Dans les trois lignes suivantes, nous dessinons le cercle rouge, le carré vert et le triangle bleu. Le rendu sur votre écran TFT devrait ressembler à ceci :

Sinon, il y a un problème avec les réglages dans ou avec le câblage de l’écran TFT. Consultez le How to configure TFT_eSPI Library for TFT display tutoriel pour voir quelles autres options sont disponibles et ce que vous pouvez essayer pour résoudre le problème.tft_test.ino
Conclusions
Dans ce tutoriel, vous avez appris comment interfacer un module d’affichage TFT avec un driver ST7789 avec un ESP32.
J’ai utilisé la TFT_eSPI Library pour contrôler l’écran. J’ai aussi essayé la Adafruit-ST7735 Library mais je n’ai pas réussi à la faire fonctionner. D’autres ont rencontré le même problème et ont réussi avec la ST7789_AVR library à la place. Cependant, la ST7789_AVR library ne fonctionne qu’avec des cartes AVR mais pas avec un ESP32, par exemple.
Si vous avez des difficultés avec la bibliothèque TFT_eSPI, notre How to configure TFT_eSPI Library for TFT display pourrait vous aider.
Si vous avez des commentaires, n’hésitez pas à les laisser dans la section des commentaires.
Bon bricolage ; )

