#include <math.h>
// Constantes pour le thermistor
const int thermistorPin = A0; // Broche analogique où le thermistor est connecté
const double seriesResistor = 10000.0; // Valeur de la résistance en série (en ohms)
const double nominalResistance = 10000.0; // Résistance nominale du thermistor (en ohms)
const double nominalTemperature = 25.0; // Température nominale (en degrés Celsius)
const double bCoefficient = 3950.0; // Coefficient B du thermistor
void setup() {
Serial.begin(9600);
}
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; // (R/Ro)
steinhart = log(steinhart); // ln(R/Ro)
steinhart /= bCoefficient; // 1/B * ln(R/Ro)
steinhart += 1.0 / (nominalTemperature + 273.15); // + (1/To)
steinhart = 1.0 / steinhart; // Inverser
steinhart -= 273.15; // Convertir en degrés Celsius
// Afficher la température
Serial.print("Temperature: ");
Serial.print(steinhart);
Serial.println(" °C");
delay(1000);
}