Arduino - Capteur de température TMP36

Préparation du matériel

1×Arduino Uno R3
1×Câble USB 2.0 type A/B (pour PC USB-A)
1×Câble USB 2.0 type C/B (pour PC USB-C)
1×TMP36 Temperature Sensor
1×Plaque d'essai
1×Fils de connexion
1×Optionnel: 9V Power Adapter for Arduino
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables STEM V3 (Arduino inclus)
1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du capteur de température TMP36

Brochage

Le capteur de température TMP36 possède trois broches :

  • Broche GND : doit être connectée à GND (0V)
  • Broche VCC : doit être connectée à VCC (5V)
  • Broche +Vs : est l'alimentation pour le capteur qui peut varier entre 2,7V à 5,5V.
  • Broche Vout : broche de signal donnant une tension de sortie qui est proportionnelle linéairement à la température, doit être connectée à une broche analogique sur Arduino.
Schéma de brochage du capteur de température TMP36

Comment ça marche

TMP36 délivre une tension proportionnelle de manière linéaire à la température en degrés Celsius. Le facteur d’échelle de sortie du TMP36 est de 10 mV/°C. Cela signifie que la température est calculée en divisant la tension (mV) sur la broche de sortie par 10.

Diagramme de câblage

Schéma de câblage du capteur de température Arduino TMP36

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Comment programmer pour le capteur de température TMP36

  • Obtenez la valeur ADC du capteur de température en utilisant la fonction analogRead().
int adcVal = analogRead(PIN_TMP36);
  • Convertissez la valeur ADC en tension en volts.
// Remplacez 5.0 par 3.3, si vous utilisez un Arduino 3.3V float voltage = adcVal * (5.0 / 1024.0);
  • Convertir la tension en température en Celsius.
float tempC = (voltage - 0.5) * 100;
  • (Facultatif) Convertissez les Celsius en Fahrenheit.
float tempF = tempC * 9 / 5 + 32;

Code Arduino

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-tmp36-temperature-sensor */ #define ADC_VREF 5.0 // in volt #define ADC_RESOLUTION 1024.0 #define PIN_TMP36 A0 void setup() { Serial.begin(9600); } void loop() { // get the ADC value from the TMP36 temperature sensor int adcVal = analogRead(PIN_TMP36); // convert the ADC value to voltage float voltage = adcVal * (ADC_VREF / ADC_RESOLUTION); // convert the voltage to the temperature in Celsius float tempC = (voltage - 0.5) * 100; // convert the Celsius to Fahrenheit float tempF = tempC * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("TMP36 Temperature: "); Serial.print(tempC); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempF); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Étapes rapides

  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload sur l'IDE Arduino pour téléverser le code vers Arduino
  • Saisissez le capteur avec votre main
  • Consultez le résultat sur le moniteur série.
COM6
Send
TMP36 Temperature: 26.31°C ~ 79.36°F TMP36 Temperature: 26.44°C ~ 79.59°F TMP36 Temperature: 26.50°C ~ 79.70°F TMP36 Temperature: 26.56°C ~ 79.81°F TMP36 Temperature: 27.06°C ~ 80.71°F TMP36 Temperature: 27.75°C ~ 81.95°F TMP36 Temperature: 28.37°C ~ 83.07°F TMP36 Temperature: 29.00°C ~ 84.20°F TMP36 Temperature: 29.56°C ~ 85.21°F TMP36 Temperature: 30.00°C ~ 86.00°F TMP36 Temperature: 30.31°C ~ 86.56°F TMP36 Temperature: 30.62°C ~ 87.12°F TMP36 Temperature: 30.87°C ~ 87.57°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Amélioration de la précision de la température

Dans le code ci-dessus, nous utilisons par défaut une tension de référence de l'ADC (5V~5000mV). Nous pouvons augmenter la résolution de la température en changeant la tension de référence à 3.3V (3300mV). Cette tension de référence peut être modifiée en connectant ensemble les deux broches 3.3V et AREF comme le montre le schéma ci-dessous.

Schéma de câblage du capteur de température Arduino TMP36

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Le tableau ci-dessous montre la différence entre l'utilisation d'une tension de référence de 5000 mV et de 1100 mV.

Vref(mV) 5000 mV (by default) 3300 mV
Reading Resolution 5000/1024 = 4.88 mV 3300/1024 = 3.22 mV
Temperature Resolution 0.49°C 0.32°C

Code Arduino

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-tmp36-temperature-sensor */ #define ADC_VREF 3.3 // in volt #define ADC_RESOLUTION 1024.0 #define PIN_TMP36 A0 void setup() { Serial.begin(9600); analogReference(EXTERNAL); // set the voltage reference from VREF pin } void loop() { // get the ADC value from the TMP36 temperature sensor int adcVal = analogRead(PIN_TMP36); // convert the ADC value to voltage float voltage = adcVal * (ADC_VREF / ADC_RESOLUTION); // convert the voltage to the temperature in Celsius float tempC = (voltage - 0.5) * 100; // convert the Celsius to Fahrenheit float tempF = tempC * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("TMP36 Temperature: "); Serial.print(tempC); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempF); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Vidéo

#Références de fonction

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !