lecture de température moteur

Bonjour,
Je possède une thermistance type NTC100K récupérée sur une imprimante 3D.
Je parviens à récupérer des données via l'arduino ( montage avec une résistance de 10k pour le moment, j'attends des 100k sous peu).
Ma question est la suivante : comment, à partir de ces données, obtenir une température en degrés Centigrade ?
Merci pour vos réponses...

Bonsoir,
La réponse est dans la lecture du document technique de ta thermistance (datasheet).
Qui dit thermistance, dit résistance variable en fonction de la température.
Lorsque tu mesures la tension aux bornes de ta sonde, tu peux calculer la valeur résistive de ta thermistance -> pont diviseur de tension.
Avec la courbe résistance = f(température), tu pourras en déduire la température.
@+

Merci Icare pour ta réponse.
J'ai bien saisi le fonctionnement théorique de cette thermistance.
Toutefois, la fonction f(temperature) n'est pas de type linéaire et je souhaiterais que l'arduino calcule et affiche la valeur de la température obtenue..

Il faut créer un tableau de valeurs d'après la datasheet, avec d'autant plus de valeurs que tu as besoin de précision.
Dans ce tableau tu cherches la valeur de résistance la plus proche de celle lue et tu lis la température qui a le même indice.

Bonjour,
En complément de la réponse de micol, tu peux aussi extraire l'équation de la courbe à partir des valeurs de la datasheet.
Mais en général, on se contente d'un tableau de valeur avec une interpolation linéaire entre 2 valeurs.
@+

Un peu de lecture: http://www-connexe.univ-brest.fr/lpo/instrumentation/05.htm

Re,
En regardant la courbe R = f(T) de la datasheet, on peut la linéariser des manières suivantes :
Avec R en kOhm et T en °C

entre -40 °c et 200 °C:

R = -7.819070015458588 e-12 T^7 + 5.24244277631918e-9 T^6 - 1.38522736454621e-6 T^5 + 0.0001846488 T^4 - 0.0134289383 T^3 + 0.5692908863 T^2 - 16.404339393 T + 314.5770505548

Ce qui est inexploitable avec Arduino.

entre -40 °C et -30 °C :

R = -164.0952380952 T - 3117.8095238095

entre -30 °C et 50 °C :

R = 0.0001182038 T^4 - 0.0127573538 T^3 + 0.5711638123 T^2 - 17.0000033656 T + 325.7314398395

entre 50 °C et 200 °C :

R = -0.272212 T + 55

Éventuellement utilisable avec Arduino.

Comme préciser par micol, le plus simple est d'utiliser un tableau.
@+

Préambule : dans tout les cas d'approximations il faut bien fixer les limites de la gamme de température pour alléger les contraintes.

L'atmega aura du mal à gérer l'exponentielle de la formule de la thermistance.
Ce qui suis n'est rien d'autre que l'explication des formules d'Icare.
On peut tracer la courbe de la thermistance selon les données constructeur et faire une approximation polynomiale.
Cela peut se faire avec le tableur LibreOffice ou avec plus de souplesse avec Qtiplot (sous Linux ok, mais je sais que sous windows ce logiciel est un peu dur à trouver).
L'Atmega n'aura pas de mal à gérer un polynôme.

On peut aussi essayer de linéariser la courbe de réponse avant approximation polynomiale pour étendre la gamme de température. Certes avec une perte de dynamique mais on a rien sans rien.
La linéarisation consiste à ajouter une résistance en série avec la thermistance et une autre en parrallèle avec la thermistance.

Cela peut toujours se faire avec un tableur en y introduisant l'équation de la thermistance, ou avec le tableau constructeur.
On calcule la tension du pont diviseur en fonction de la température.
NB : la "Nouvelle Thermistance" est maintenant composée de 3 composants : R1+ Therm//R2

On trace la courbe et on joue sur les valeurs des deux résistances jusqu'à obtenir une courbe la plus rectiligne possible. On travaille un peu à l'intuition, il n'y a pas de formule.
Ensuite on fait une approximation polynomiale comme précédemment.

S'il fait une petite recherche sur le net avec "linéarisation thermistance" il y a des outils et/ou des procédures qui existent déjà.

Merci à tous,
Je vais faire mes recherches sur la «linéarisation thermistance» et voir ça.
Ma plage de températures irait de 20 à 100°c environ. A moi de trouver la façon la plus légère à mettre en place...

Re,
Avec une résistance en // de 1k (attention à la dynamique, voire remarques 68tjs).
On obtient une équation linéaire :

R = -0.0024363856 T + 1.0589589064

Les revers de cette linéarisation :

  • précision +/-5% entre 4°C et 65°C

  • précision +/-7.5% entre -5°C et 145°C

  • précision +/-10% entre -15°C et 150°C

  • précision entre -2% et +6% entre 20°C et 100°C