Mesure de la température a l’aide d’une thermistance et de l’Arduino
Température et thermistance MF52-103

Pour une bouchée de pain on trouve sur le net des lots de thermistances. J’ai acheté un lot de 10 thermistances, MF52-103 10KOhms. Celle-ci vont nous permettre de connaitre une température ambiante.
Je me suis ensuite penché sur quelques articles pour connaitre la température ambiante. Après quelques déceptions ci et là, j’ai retenu cette source. (hélas il semblerai que le lien ne fonctionne plus)
C’est en fait le “manuel d’utilisation” du module température du kit Grove. Un kit très sympa que je me suis moi même procuré. Mais on a vite fais le tours des kits Arduino. On a vite envie de fabriquer ses propres modules soi-même 🙂 (enfin dans mon cas).
Dans un premier temps on va procéder a la connexion. On a donc sous la main, une thermistance, une résistance de 10Kohms, et un Arduino.
Ce dont vous aurez besoin
Branchement de la MF52-103 à l’Arduino
Aux pôles de la thermistances nous iront au port Analogique 0 (A0) et VCC (+5V)
Quant à la seconde patte de la thermistance. Nous la placerons au GND. Voir image ci-dessous.

Code Arduino pour la MF52-103
int a;
float ctemperature;
int B=3975;
float resistance;
void setup()
{
Serial.begin(9600);
}
void loop()
{
a=analogRead(0);
resistance=(float)(1023-a)*10000/a;
ctemperature=1/(log(resistance/10000)/B+1/298.15)-273.15;
Serial.print(ctemperature);
Serial.write(186);
Serial.println("C ");
delay(1000);
}
J’ai légèrement modifié le sketch pour n’afficher que les degrés Celsius. Le code étant plus léger et plus lisible comme ca.
Il suffit ensuite de lancer le moniteur série pour récupérer la température ambiante.
Informations complémentaires
Symbole de la thermistance en électronique

Questionnements & réflexions:
L’afficheur digital de mon chauffage m’affiche 25°C (il n’as pas de décimales) quant à l’Arduino il me renvoi 25.12°C. J’en conclu donc que le calcule du sketch ainsi que ma thermistance sont largement fiable pour ce type de projet.
Et si quelqu’un avais une explication pour cette ligne: ctemperature=1/(log(resistance/10000)/B+1/298.15)-273.15; Je suis preneur
Réponse de zithro
Pour la formule, appelée “relation de Steinhart-Hart”, elle est ici : https://fr.wikipedia.org/wiki/Thermistance#CTN
J’ai pas développé mathématiquement mais à mon avis c’est la 2ème qui est utilisée ici, càd la version simplifiée:
Rt/R0=exp(B x 1/T-1/T0).
Pour R0 et T0, il faut la datasheet constructeur ou bien mesurer/chercher soi-même des valeurs.
Mais en général ce sont des valeurs standardisées pour un même composant.
Je viens de remarquer :
– sur wiki c’est écrit “T0 est souvent 25°”, et 25 = 298.15 – 273.15 (deux valeurs dans la formule)
– on dit souvent de ces résistances qu’elles sont à 10k (10000), ce qui donne R0 à mon avis
– B (bêta sur wiki) semble donné au début du sketch Arduino (3975)
– Rt est calculée la ligne au-dessus de la formule dans le sketch (avec l’ADC)
La seule inconnue restante est donc T !
Après pour les maths, me souviens plus très bien, chope un formulaire ^^
Peut-être que cela te suffira :
log d’un produit = somme des logs
x = exp ( ln(x) ) = ln ( e(x) )
log(x) = ln(x) . ln(10)
Réponse de Teacher5
Souvent en thermodynamique, 25°C est la température standard, c’est certainement la raison pour laquelle, il donne la résistance R0 = 10 kohm à la température standard.
0 commentaires