#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#include <math.h>
// Pins for the ILI9341
#define TFT_CS 10
#define TFT_RST 8
#define TFT_DC 9
#define TFT_LED 6 // Broche PWM pour le rétroéclairage
// Create an instance of the ILI9341 display
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
// Constantes pour le thermistor
const int thermistorPin = A0;
const double seriesResistor = 10000.0;
const double nominalResistance = 10000.0;
const double nominalTemperature = 25.0;
const double bCoefficient = 3950.0;
void setup() {
Serial.begin(9600);
pinMode(TFT_LED, OUTPUT);
digitalWrite(TFT_LED, HIGH); // Allumer le rétroéclairage
tft.begin();
tft.setRotation(1); // Adjust rotation if needed
tft.fillScreen(ILI9341_BLACK);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(3); // Augmenter la taille du texte
}
void loop() {
// Lire la valeur analogique
int val = analogRead(thermistorPin);
// Convertir la valeur analogique en tension
double voltage = (val / 1023.0) * 5.0;
// Calculer la résistance du thermistor
double resistance = seriesResistor / ((5.0 / voltage) - 1.0);
// Calculer la température en utilisant la formule de Steinhart-Hart
double steinhart;
steinhart = resistance / nominalResistance;
steinhart = log(steinhart);
steinhart /= bCoefficient;
steinhart += 1.0 / (nominalTemperature + 273.15);
steinhart = 1.0 / steinhart;
steinhart -= 273.15;
// Définir une zone de l'écran à effacer
tft.fillRect(0, 0, 240, 60, ILI9341_BLACK); // Effacer une zone de 240x60 pixels
// Afficher la température sur l'écran TFT
tft.setCursor(0, 0);
tft.print("Temp: ");
tft.print(steinhart);
tft.println(" C");
delay(1000);
}