[Mise à jour le 28/6/2024]
La température est une grandeur physique mesurée à l’aide d’un thermomètre et étudiée en thermométrie. Dans la vie courante, elle est reliée aux sensations de froid et de chaud, provenant du transfert thermique entre le corps humain et son environnement.
En physique, elle se définit de plusieurs manières : comme fonction croissante du degré d’agitation thermique des particules (en théorie cinétique des gaz), par l’équilibre des transferts thermiques entre plusieurs systèmes ou à partir de l’entropie (en thermodynamique et en physique statistique).
La température est une variable importante dans d’autres disciplines : météorologie et climatologie, médecine, et chimie.
/* Mesure de la température ambiante avec une CTN Bibliothèque math.h : https://www.arduino.cc/en/math/h */ // Constantes //------------------------------------------------------ // CTN const int Beta = 4300; // Kelvin const float T0 = 298.15; // Kelvin (25°C) const int R0 = 10000; // Résistance du capteur à 25°C // Diviseur de tension const int Vcc = 5; // Volt const int R1 = 12000; // Ohm // CAN const int n = 10; const int VPE = 5; // Variables //------------------------------------------------------ int CTN = A0; // La CTN et son conditionneur sont connectés sur la broche A0 int N = 0; // Image de la température, sortie du CAN double temperature = 0.0; // Résultat du calcul de la température : temperature=f(N) // Coefficient du CAN float kcan = pow(2, n) / VPE; // Coefficients utilisés pour simplifier le calcul de la température // k0, a double k0 = kcan * Vcc * R1; double a = R0 / exp(Beta / T0); // k1, k2 double k1 = k0 / a; double k2 = R1 / a; //------------------------------------------------------ void setup() { Serial.begin(9600); // Fenêtre "serial" pour la mise au point } //------------------------------------------------------ void loop() { N = analogRead(CTN); temperature = Beta / log((k1 / N) - k2) - 273.15; Serial.println(temperature); }
A venir
void setup() { Serial.begin(9600); // Débit binaire : 9600 bps } void loop() { uint16_t N; double temperature; // Lecture N=analogRead(A0);//LM35 connecté à Analog 0 // Traitement temperature = (double) N * (5/10.24); // Ecriture Serial.print("Température:"); // Affiche la température sur le moniteur Serial.print(temperature); Serial.println("C"); delay(1000); }
ou
// Matériels : Adafruit Feather Huzzah ESP8266 + Support Particle, Adafruit OLED SH1107, Sparkfun TMP117, câble Qwiic // Logiciel : Arduino // A ajouter #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SH110X.h> #include <SparkFun_TMP117.h> #define BUTTON_A 0 #define BUTTON_B 16 #define BUTTON_C 2 // Constructeurs Adafruit_SH1107 display = Adafruit_SH1107(64, 128, &Wire); TMP117 sensor; // L'adresse du circuit TMP117 est 0x48 = (GND) par défaut void setup() { // Bus I2C Wire.begin(); // Initialisation Wire.setClock(400000); display.begin(0x3C, true); // L'addresse de l'afficheur est 0x3C par défaut // Configuration de l'affichage display.setRotation(1); // Affichage horizontal display.setTextSize(1); display.setTextColor(SH110X_WHITE); display.clearDisplay(); // Pour ne pas afficher le logo Adafruit chargé // automatiquement à la mise sous tension // Test de la communication avec le capteur if (sensor.begin() == false) { display.println("DEFAUT(s)"); display.print("1. Le capteur TMP117 ne repond pas ! "); display.println(); display.print("BLOCAGE du PROGRAMME"); display.display(); // Transfert du buffer sur l'écran while (1) delay(10); // Blocage du programme } // Connexion des boutons-poussoirs pinMode(BUTTON_A, INPUT_PULLUP); pinMode(BUTTON_B, INPUT_PULLUP); pinMode(BUTTON_C, INPUT_PULLUP); } void loop() { // Efface le buffer display.clearDisplay(); // Test des boutons display.setCursor(0, 0); if (!digitalRead(BUTTON_A)) display.print("[A]"); if (!digitalRead(BUTTON_B)) display.print("[B]"); if (!digitalRead(BUTTON_C)) display.print("[C]"); // Titre display.setCursor(20, 0); display.println("Sparkfun TMP117"); // Mesure et affichage // Data Ready est un indicateur de mode de conversion - en conversion continue, l'indicateur dataReady doit toujours être haut if (sensor.dataReady() == true) // Affiche les valeurs de température que lorsque les données sont prêtes { display.setCursor(0, 12); display.print("Temp : "); display.print(sensor.readTempC(), 1); display.print("C"); delay(500); display.display(); // Transfert du buffer sur l'écran } delay(10); }
A terminer