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

// Définir les broches pour l'écran TFT
#define TFT_DC 2
#define TFT_CS 3

// Initialiser l'objet TFT avec les broches définies
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);

// Définir les broches pour les potentiomètres
const int potPins[5] = {A1, A2, A3, A4, A5};

void setup() {
  // Initialiser la communication série
  Serial.begin(115200);
  
  // Initialiser l'écran TFT
  tft.begin();
  tft.setRotation(3);
  tft.fillScreen(ILI9341_BLACK);
  tft.setTextColor(ILI9341_WHITE);
  tft.setTextSize(1);
  
  // Afficher le message de bienvenue
  tft.setCursor(20, 120);
  tft.println(F("Gant Numerique"));
  tft.setCursor(20, 150);
  tft.println(F("Interactif"));
  
  // Attendre 2 secondes pour permettre à l'utilisateur de voir le message
  delay(2000);
  tft.fillScreen(ILI9341_BLACK);
}

void loop() {
  // Boucle pour lire les valeurs des potentiomètres et afficher les angles
  for (int i = 0; i < 5; i++) {
    int sensorValue = analogRead(potPins[i]);
    float angle = map(sensorValue, 0, 1023, 0, 180);

    // Afficher l'angle avec un rafraîchissement partiel
    tft.setCursor(20, 30 + i * 30);
    tft.setTextColor(ILI9341_WHITE);
    tft.setTextSize(1);
    tft.printf("P%d: %.1f°", i + 1, angle);
  }

  // Attendre 2 secondes avant de mettre à jour l'affichage
  delay(2000);
}