Afficheur TFT

L’afficheur TFT est un des modules les plus complexes à prendre en main, mais aussi un de ceux qui offre le plus de possibilités.

Il permet un affichage graphique en couleurs sur un écran de 240 lignes de 320 points.


Schéma de branchement


Schéma de raccordement

Son branchement utilise le bus SPI dont le connecteur est présent sur le module microcontrôleur juste en dessous des connecteurs d’alimentation. Ce module a également besoin de 3 autres connexions : CS, RST et D/C qui vont se raccorder à 3 broches digitales libres. Attention le bus SPI utilise déjà les broches 11, 12 et 13, vous ne pouvez donc pas les utiliser pour les connexions CS, RST et D/C, mais aussi pour un autre usage. Ici D/C est branché sur la broche 10, RST est sur la broche 9, et CS sur le broche 8.


Voici des exemples de programmes :


L’écran TFT utilise un système de coordonnées dont l’origine se situe en bas à gauche de l’écran.

Pour utiliser l’écran TFT, utilisez (#include) les librairies Adafruit_GFX.h et Adafruit_ILI9341.h, ensuite créez une variable globale (tft par exemple) par la ligne suivante : Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);

Les constantes TFT_CS, TFT_RST et TFT_RST doivent être créées avec les valeurs correspondant aux broches digitales où ces éléments de l’écran auront été raccordés.

Pour ces quelques lignes de code, les exemples placés ci-dessus peuvent être réutilisés (copier/coller de la partie qui vous intéresse).

Dans la fonction setup, n’oubliez pas d’appeler l’instruction tft.begin(); (ou ecran.begin si votre variable Adafruit_ILI9341 s’appelle ecran).

Voici une liste de fonctions qui peuvent être utilisées avec ce module TFT :

Certaines commandes reçoivent un paramètre indiquant la couleur à utiliser :

ILI9341_BLACK : Couleur noire
ILI9341_RED : Couleur rouge
ILI9341_GREEN : Couleur verte
ILI9341_BLUE : Couleur bleue foncé
ILI9341_YELLOW : Couleur jaune
ILI9341_MAGENTA : Couleur mauve
ILI9341_CYAN : Couleur bleu clair
ILI9341_WHITE : Couleur blanche

Il est également possible de définir des couleurs spécifiques en utilisant une combinaison des 3 couleurs primaires (Rouge, Vert, Bleu). Il faut alors remplacer le nom de la couleur (ILI9341_xxxxx) par une valeur hexadécimale correspondant aux trois octets des couleurs primaires (donc valeurs entre 0 et 255 ou 00 et FF en hexadécimal). Par exemple pour un gris clair (les trois couleurs primaires avec une valeur de 180, soit B4 en hexadécimal, on peut passer comme paramètre de couleur 0xB4B4B4


setRotation(int n); => Effectue une rotation de l’écran dans le sens des aiguilles d’une montre. Valeurs possibles : 0, 1, 2, ou 3. 0 correspond à la valeur par défaut, 1 à une rotation de 90 degrés, 2, à 180 degrés, et 3 à 270 degrés. Le point origine sera également affecté par la rotation.

fillScreen(int Couleur); => Remplit l’écran d’une couleur uniforme.

drawLine(int xA, yA, int xB, yB, int Couleur); => Trace une ligne entre les coordonnées xA, yA et xB, yB avec la couleur passée en paramètre.

drawCircle/fillCircle(int x, int y, int Rayon, int Couleur); => Trace un cercle vide/plein dont le centre est aux coordonnées x,y, avec le rayon et la couleur passés en paramètre.

drawTriangle/fillTriangle(int xA, yA, int xB, yB, int xC, yC, int Couleur); => Trace un triangle vide/plein dont les sommets sont aux coordonnées (Xa, yA), (xB, yB) et (xC, yC). La couleur utilisée est passé en paramètre.

drawRect/fillRect(int xA, yA, int xB, yB, int Couleur); => Trace un rectangle vide/plein dont les sommets opposés sont aux coordonnées (xA, yA) et (xB, yB). La couleur utilisée est passé en paramètre.

drawRoundRect/fillRoundRect(int xA, yA, int xB, yB, int Rayon, int Couleur); => Trace un rectangle vide/plein dont les coins sont arrondis. Les sommets opposés du rectangle sont aux coordonnées (xA, yA) et (xB, yB), le rayon de courbure des coins et la couleur à employer sont passés en paramètre.