Ignorer la navigation

Capteur de température

Il existe de multiples capteurs de température. Je vous propose ici de voir comment utiliser le TMP36, qui est un capteur qui permet de mesurer des températures entre -50°C et 125°C, ce qui devrait correspondre à la majorité des climats terrestres et aux données que vos robots pourront récolter dans un environnement peu hostile. ;)

Alors comme d'habitude, une petite photo pour qu'on ait une idée de sa tête...

TMP36
TMP36

Et là vous me direz encore, mais ça ressemble beaucoup à un transistor !!! Et bien oui : trois pattes, un côté plat, un côté rond... Mais il y a des inscriptions dessus qui permettent de distinguer son nom ! (Oui Lukas, un peu comme votre gourmette !), du coup, on peut aller voir la datasheet qui va bien ! Mais ce n'est pas très lisible pour les connexions, alors je vous aide. Prenez le composant les pattes en bas et le côté plat face à vous :

  • patte de gauche : connectée au +5V ;

  • patte de droite : connectée au ground ;

  • patte du centre : connectée à un CAN de l'Arduino.

Bien, une fois connectée, il faut pouvoir s'en servir ! Plus bas dans la datasheet, on voit ce graphique :

courbe de relation entre température et tension
courbe de relation entre température et tension

 Ce graphique présente le rapport entre la tension lue à la sortie (patte du centre) et la température. Je vous rappelle qu'on parle bien de tension car les convertisseur analogique-numériques (CAN) de l'Arduino convertissent bien une tension lue entre 0V et 5V en nombre entre 0 et 1023.

On lit sur le graphique que le TMP36 correspond à la droite b qui va de 0°C (pour 0V) à 125°C (pour 1,75V). Il est aussi indiqué que la tension d'entrée Vs (S pour "supply") vaut 3V, mais sachez que le TMP36 fonctionne aussi à 5V (pour les mêmes valeurs).

Alors comment faire ? Tout simplement en mappant correctement les valeurs. Voici le programme qui affiche la température lue par le TMP36 :

void setup() {
Serial.begin(9600);
}
void loop() {
int valeur=analogRead(A0);//on lit la valeur au CAN 0
int t=map(valeur,0,1023,0,5000);//on transforme la valeur lue en valeur de tension entre 0 et 5000 mV (car pas de virgule)
int tmp=map(t,0,1750,-50,125); //on transformela tension (de 0 à 1750mV en température (de -50°C à 125°C);
Serial.println(tmp); //on affiche le résultat
}

Et bien voilà ! Vous avez un thermomètre ! (Lukas vous l'utiliserez pour ce que vous voudrez, je ne veux pas le savoir)

Quand utiliser un capteur de température ?

Et bien tout ce qui concerne la température : station météo, déclenchement de chauffage (attention, les connexions doivent respecter les normes de sécurité EDF !!!), analyse de variation de température d'un liquide (biberon, eau des nouilles, avec bien sûr un bricolage sans risque ;)). De quoi bien vous occuper !