Comment utiliser les écrans TFT avec ST7789VI et Arduino : guide complet

  • Connectique simple grâce au protocole SPI, ne nécessitant que quatre broches de contrôle.
  • Utilisation des bibliothèques Adafruit ST7789 et GFX pour dessiner des graphiques avancés.
  • Possibilité de charger des images complexes sans avoir besoin d'une carte SD.

Écran TFT avec ST7789VI et Arduino

Écrans TFT contrôlés par la puce ST7789VI Ils constituent un excellent choix pour Arduino et autres projets de microcontrôleurs. Ces écrans petits mais haute résolution vous permettent d'afficher des graphiques, du texte et des images de manière claire et précise. Cependant, son intégration peut s'avérer quelque peu difficile pour ceux qui ne sont pas familiers avec les protocoles tels que SPI ou les exigences en matière d'alimentation et de contrôle. Dans ce guide, nous allons aborder tous les aspects de la connexion, de l'utilisation des bibliothèques et de la configuration de ces écrans avec votre Arduino.

De plus, vous apprendrez à les connecter à différentes cartes telles que la NodeMCU ESP8266 et le classique Arduino Nano. Vous pourrez ainsi profiter pleinement des capacités graphiques et techniques de ce type d'écrans, que ce soit pour des projets Internet des objets (IoT) ou pour tout autre type d'application, sans dépendre de cartes SD ou de circuits complexes.

Qu'est-ce qu'un écran TFT avec le pilote ST7789VI ?

Les écrans TFT (Transistor à couches minces) se caractérisent par une qualité d'image bien supérieure à d'autres types d'écrans tels que les LCD normaux ou les OLED plus petits. Le contrôleur ST7789VI C'est le cerveau de ces écrans, chargé de traiter les signaux envoyés par un microcontrôleur tel que l'Arduino ou l'ESP8266, et de convertir ces signaux en images, couleurs et graphiques complexes.

L'un des grands avantages de ces écrans est qu'ils utilisent le bus de communication SPI, qui simplifie la connexion avec la plupart des microcontrôleurs, en utilisant seulement quatre broches de contrôle (SDA, SCL, RES et DC). Cela permet de réduire considérablement le câblage et est parfait pour projets compacts.

Connexion de l'écran TFT avec la puce ST7789VI

Afin de travailler avec ces écrans, il est indispensable de savoir comment les connecter correctement à votre Arduino ou ESP8266. Selon le microcontrôleur que vous utilisez, les broches d'alimentation et de connexion peuvent légèrement changer. Nous détaillons ci-dessous les connexions les plus importantes.

Connexion écran TFT avec Arduino Nano

Connexions de base :

  • VCC: Se connecte au signal d'alimentation, qui est généralement de 3.3 V (et non de 5 V pour éviter d'endommager l'écran).
  • GND: Il est relié à la terre.
  • SCL (parfois marqué CLK) : Il s'agit de la broche de l'horloge série qui va au D13 sur une assiette Arduino Uno ou Nano.
  • SDA (également appelé MOSI) : C'est la broche qui envoie les données et se connecte au D11.
  • RES: Se connecte à la broche chargée de réinitialiser l'écran ; dans ce cas, à D8 de l'Arduino.
  • DC: La broche de commande/données, qui se connecte au D9.

Concernant les assiettes ESP8266, vous remarquerez que ceux-ci fonctionnent à 3.3 V, vous n'aurez donc pas à vous soucier du réglage des niveaux de tension, comme c'est le cas avec Arduino, où il est nécessaire d'utiliser des diviseurs de tension avec des résistances pour protéger le contrôleur d'affichage.

Utiliser des bibliothèques dans Arduino

Une fois que toutes les connexions sont correctement établies, vous devrez installer certaines bibliothèques dans l’IDE ​​Arduino. Pour travailler avec ces écrans, l'option la plus utilisée est la bibliothèque Adafruit ST7789, qui est hautement compatible avec le matériel de ces écrans et que nous pouvons utiliser avec la bibliothèque Adafruit GFX pour créer des graphiques avancés.

Pour installer les bibliothèques, suivez ces étapes :

  • Aller à Esquisse -> Inclure la bibliothèque -> Gérer les bibliothèques.
  • Écrire ST7789 dans la barre de recherche et sélectionnez l'option Adafruit.
  • Faites de même pour la bibliothèque Adafruit GFX.

Avec ces deux bibliothèques déjà installées, vous serez prêt à écrire votre premier code et à afficher les images, le texte ou les graphiques de votre choix.

Code de base pour « Hello, World ! » sur écran TFT

Un bon point de départ pour tester votre écran consiste à afficher un simple message « Hello, World ! » sur l'écran. Ci-dessous, nous vous montrons un code de base que vous pouvez utiliser à cette fin. N'oubliez pas que ce code est conçu pour Arduino Uno ou Nano, mais si vous utilisez d'autres cartes, vous devrez peut-être adapter les broches.

#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#include <SPI.h>

#define TFT_CS     10
#define TFT_RST    8
#define TFT_DC     9

Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);

void setup() {
  tft.init(240, 240);
  tft.setRotation(1);
  tft.fillScreen(ST77XX_BLACK);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setCursor(50, 120);
  tft.println("Hello World!");
}

void loop() {
  // Nada que hacer en el loop
}

Exemple d'écran TFT avec code de base

Ce petit code initialise l'écran, le fait pivoter horizontalement et affiche le texte "Hello World" au centre de celui-ci. Vous pouvez expérimenter différentes tailles ou couleurs de texte en utilisant les méthodes définirTextColor, setTextSize, entre autres.

Capacités graphiques de l'écran ST7789VI

Les capacités graphiques de ces écrans sont assez complètes. Avec la bibliothèque Adafruit GFX, vous pouvez dessiner des lignes, des rectangles, des cercles et bien plus encore avec seulement quelques commandes. Ci-dessous, nous listons quelques-uns des plus utilisés :

  • drawLine(x0, y0, x1, y1, couleur): Tracez une ligne du point (x0, y0) à (x1, y1).
  • fillRect(x, y, w, h, couleur): Dessine un rectangle rempli sur l'écran.
  • fillCircle(x, y, r, couleur): Tracez un cercle plein de rayon r à partir du point (x, y).

Ces méthodes basiques vous permettront de donner vie rapidement à votre écran, mais la bibliothèque vous permet également d'importer des images dans Bitmap, ce qui est très utile si vous souhaitez afficher des graphiques complexes.

Pour travailler avec des images, vous devrez au préalable les convertir dans un format compréhensible par l'Arduino, comme nous l'expliquerons plus tard.

Importez des images sur l'écran sans utiliser de carte SD

Généralement, le chargement d'images sur un écran TFT nécessite une carte SD connectée, qui stocke l'image et permet le chargement à partir de celle-ci. Cependant, nous pouvons éviter cette étape en convertissant les images en code bitmap et en les stockant directement dans la mémoire du microcontrôleur.

Le processus est plus simple qu’il n’y paraît. Il vous suffit d'utiliser un logiciel pour convertir votre image, puis de l'intégrer dans un fichier d'en-tête. Nous vous montrons ici les étapes à suivre :

  • Choisissez une image, de préférence 240x240 pixels (la taille de l'écran).
  • Utilisez un programme comme Convertisseur d'images LCD pour convertir l'image en un tableau de valeurs.
  • Enregistrez le tableau généré et copiez les données dans le fichier d'en-tête (.h) de votre projet Arduino.

Puis avec l'utilisation de la fonction pousserImage() à partir de la bibliothèque Adafruit ST7789, vous pouvez charger ce tableau et afficher l'image en question.

N'oubliez pas que cette méthode est idéale pour les projets de petite et moyenne taille, car les limitations de mémoire du microcontrôleur peuvent jouer contre vous si vous essayez de charger plusieurs images volumineuses à la fois.

Enfin, travailler avec des écrans TFT avec ST7789VI dans vos projets Arduino ou ESP8266 ouvre un monde de possibilités graphiques. Avec une configuration correcte et les bons outils logiciels, vous pouvez mettre en œuvre des interfaces attrayantes et fonctionnelles sans trop de revers.


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.