Étiquettes : , ,

Les shield TFT sont des écrans LCD tactiles permettant d’afficher des images et de créer des interfaces utilisateurs, avec des graphismes plus ou moins complexes, pour piloter les microcontrôleurs Arduino. Dans ce tutoriel, nous utilisons le shield Kuman TFT 3.5″ (très proche du shield 2.8″) mais ce tutoriel peut être appliqué à d’autre shield ou module LCD. Vérifiez bien les broches utilisées et la compatibilité de la librairie.

Matériel

  • Ordinateur
  • ArduinoUNO
  • Câble USB A Mâle/B Mâle
  • TftScreen

Principe de fonctionnement

Le shield TFT est muni d’un écran LCD tactile permettant d’afficher des images en couleurs et de créer des interfaces avec des courbes et des boutons, pour intéragir et visualiser des données provenant de l’Arduino. Il est aussi muni d’un lecteur de carte micro SD qui peut servir à sauvegarder des images ou autres données.

Schéma

Le shield TFT se place directement sur une carte Arduino UNO ou Mega. Le shield utilise quasiment toutes les borches de l’Arduino UNO. Assurez-vous de ne pas utiliser les mêmes pour d’autres modules.
A titre d’information les broches disponibles sont:

  • broche analogique A5
  • broche digitale 0
  • broche digitale 1
    Si vous n’utilisez pas la fonctionnalité tactile de l’écran, vous pouvez aussi utiliser les broches: A1, A2, 6 et 7.
    Si vous utilisez un autre shield ou module LCD vérifiez bien les broches utilsées (pinout).

    Code

    Pour utiliser l’objet TftScreen nous utilisons les librairies SD.h, Adafruit_GFX.h et MCUFRIEND_kbv.h qui s’utilisent comme suit

    //Libraries
    #include <SD.h>//https://www.arduino.cc/en/reference/SD
    #include <Adafruit_GFX.h>//https://github.com/adafruit/Adafruit-GFX-Library
    #include <MCUFRIEND_kbv.h>//https://github.com/prenticedavid/MCUFRIEND_kbv
    
    //Constants
    #define SD_CS 10
    #define BLACK 0
    #define GREY 21845
    #define BLUE 31
    #define RED 63488
    #define GREEN 2016
    #define DARKGREEN 1472
    #define CYAN 2047
    #define MAGENTA 63519
    #define YELLOW 65504
    #define GOLD 56768
    #define WHITE 65535
    
    //Parameters
    int XP  = 8;
    int XM  = A2;
    int YP  = A3;
    int YM  = 9;
    int TS_LEFT  = 915;
    int TS_RT  = 136;
    int TS_TOP  = 77;
    int TS_BOT  = 909;
    
    //Variables
    int currentPage  = 0;
    
    //Objects
    MCUFRIEND_kbv tft;
    
    void setup(){
    //Init Serial USB
    Serial.begin(9600);
    Serial.println(F("Initialize System"));
    //Init tft screen
    uint16_t ID = tft.readID();
    if (ID == 0xD3D3) ID = 0x9486; // write-only shield
    tft.begin(ID);
    if (!SD.begin(SD_CS)){Serial.println(F("initialization failed!")); return;}
    
    		drawHomePage();  // Draws the Home Screen
    		currentPage = 0; // Indicates that we are at Home Screen
    }
    
    void loop(){
        switch (currentPage){
        case 0:
          readSensor();   
          if (1) {
              currentPage=1;
              tft.fillScreen(BLACK);
              Serial.println(F("Page 1"));
              delay(1000);
          }
          
          break;
    
          case 1:
          readSensor(); 
          if (1) {
              currentPage=2;
              drawHomePage();
              Serial.println(F("Page 2"));
              delay(2000);
          }
          break;
          case 2: 
            //wait reset
            currentPage=0
          break;
      }}
    
    void drawHomePage(){/* function drawHomePage */ 
    //// Draw TFT Home Page 
    tft.setRotation(1);
    		tft.fillScreen(BLACK);
    		//bmp file bmpDraw("couloirE.bmp", 0, 0);
    		tft.drawLine(tft.width()/2.,0,tft.width()/2.,tft.height(),WHITE);
    		tft.drawLine(0,tft.height()/2.,tft.width(),tft.height()/2.,WHITE);
    		tft.setTextSize(1);
    		//menu_btn.drawButton(false);
    		 tft.fillRect(tft.width()/2., 100, 40, 40, RED);
    		 tft.setTextColor(WHITE, BLACK);
    		 tft.setCursor(70, 18);
    		 tft.print("Contact information");
      
    		}
    
    
    

    Applications

    • Créer une interface graphique pour piloter votre projet Arduino

    Sources

  • Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
    La Programmerie