/***************************************************** Affichage d'une mesure analogique sur un écran TFT KMR-1.8 SPI Version pour ESP8266 / ESP32 Plus d'infos: https://electroniqueamateur.blogspot.com/2019/08/ecran-couleur-spi-st7735-et-esp32.html *****************************************************/ #include <TFT_eSPI.h> #include <SPI.h> TFT_eSPI ecran = TFT_eSPI(); int valeurPrec = 9999; // la valeur déjà affichée à l'écran (on commence par une valeur impossible afin de forcer la mise à jour) void setup() { ecran.init(); ecran.setRotation(1); // réglage de l'écran en mode paysage ecran.fillScreen(TFT_BLACK); // on dessine un fond noir // on écrit "tension", en petits caractères, centré en haut // de l'écran (cet affichage ne changera pas): ecran.setTextColor(TFT_YELLOW); // positionx: 80, position y: 10, police de caractère #4 ecran.drawCentreString("Tension:", 80, 10, 4); ecran.setTextSize(2); // la valeur numérique sera écrite en taille 2 } void loop() { int valeur; // mesure de la tension à l'entrée A0 valeur = map(analogRead(A0), 0, 4095, 0, 330); if (valeur != valeurPrec) { // la valeur mesurée a changé int xpos = 10; // position x du début du texte xpos = 10; // on écrit la nouvelle valeur en vert sur fond noir // puisqu'on a spécifié une couleur de fond, la nouvelle valeur // masquera celle qui était déjà inscrite à l'écran ecran.setTextColor(TFT_GREEN, TFT_BLACK); xpos += ecran.drawFloat(valeur / 100.0, 2, xpos, 40, 4); ecran.drawString(" V", xpos, 35, 4); // enveloppe de la jauge rectangulaire // positionx: 14, positiony: 95, largeur 134, hauteur 14, couleur noir ecran.fillRect( 14, 95, 134, 14, TFT_BLACK); ecran.drawRect( 14, 95, 134, 14, TFT_WHITE); // partie mobile de la jauge rectangulaire ecran.fillRect( 16, 97, map(valeur, 0, 330, 0, 130), 10, TFT_RED); valeurPrec = valeur; delay(1000); } }