|
Les capteurs... |
Description :
Précision, sa valeur est exprimée à 25°C....
Exemple CTN 10 KΩ.... A 25°C...
C'est pour mon chef, Hi !
Il s'agit d'un composant électronique passif.
D'un coût de production extrêmement bon marché, il est mis à toutes les
sauces...
Usages et utilisation :
Pour ne citer qu'un exemple, votre chaudière, même ancienne, en est
blindée...
Ce composant permet l'asservissement de la puissance calorifique en fonction de
la demande de chaleur à fournir.
Par exemple, je mesure la température du corps de chauffe de ma chaudière, et
j'adapte le débit de gaz au brûleur.
Je mesure simultanément la température de départ et de retour du corps de
chauffe...
Vous savez le radiateur disposé au dessus de la flamme du brûleur...
Et en fonction des différentes mesures, j'extrapole si l'eau de chauffage
circule à l'intérieur.
Cela évitera de faire bouillu ("?!?") ma marmite, Hi !
D'autre part, elle permet l'adaptation de la puissance de la chaudière à la
température d'eau sanitaire demandée.
Un simple potentiomètre permet d'étalonner en plus ou en moins la valeur mesurée
et d'ajuster cette valeur à votre confort.
Votre machine à laver le linge...
Elle permet d'adapter la température de chauffage de l'eau.
Ça évite de transformer le pull en laine de madame en string, Hi !
Bon, si cela arrive quand même, vous pourrez toujours incriminer le composant...
Le composant :
Un petit point sur la thermistance.
Il s'agit d'une sonde de température dont la résistance varie en fonction de la
température.
La sonde NTC (Negative Temperature Coefficient, ou CTN en Français, Coefficient
de Température Négative) voit sa valeur décroître lorsque la température
augmente.
La sonde PTC (Positive Temperature Coefficient, ou CTP en Français, Coefficient
de température Positive) voit sa valeur augmenter lorsque la température s'accroit.
Vous pourrez en apprendre plus dans le détail sur
Wikipédia....
Le marquage est souvent absent, voir avec un code de couleur identique à celui
des résistance banalisée....
Rouge, marron, orange = CTN 10 KΩ à 25°C.
Personnellement je choisi ce type car j'ai l'habitude de les utiliser dans
mon métier.
Ensuite, les 10K ne sont pas le fruit du hasard.
Si j'utilise une valeur inférieur, la résistance va chauffer, ce qui faussera la
mesure.
Si j'utilise une valeur supérieure, je perdrais en précision sur le
convertisseur analogique de l'Arduino
Vous les trouverez sous de nombreuses déclinaisons :
Caractéristiques de la CTN :
Résistance à 25°C : 10 KΩ
Précision : 10 %
Facteur K : 3977
Coefficient A : -146337
Coefficient B : 4791,842
Coefficient C : -115334
Coefficient D : -3.730535E-06
Coefficient A1 : 3.354016E-03
Coefficient B1 : 2.56985E-04
Coefficient C1 : 2.620131E-06
Coefficient D1 : 6.383091E-08
En gras, les informations que nous allons utiliser pour le programme.
Les mesures obtenues :
Temp °C | CTN 10KOhm |
0 | 32 555 |
10 | 19 873 |
20 | 12 488 |
25 | 10 000 |
30 | 8 059 |
40 | 5 330 |
50 | 3 605 |
60 | 2 490 |
70 | 1 753 |
80 | 1 256 |
90 | 915 |
100 | 677 |
110 | 508 |
120 | 387 |
Le montage :
Rien de bien compliqué, c'est un simple diviseur de tension
Voici le montage à réaliser
Comment procéder :
Dans un premier temps, nous allons récupérer la valeur analogique (0 ~1024)
pour la convertir en ohms et en Volts.
Nous en aurons besoin pour les calculs
Ensuite, ça se complique !
Connaissez vous la relation de Steinhart & Hart ?
Retour sur l'article de
Wikipedia
De façon extrêmement simpliste, cette relation va nous permettre de calculer la
température grâce à la valeur de la résistance et des coefficients de la
thermistance.
Comme vous pouvez le voir sur la page Wiki, il y a 3 coefficients A, B et C que
nous extrairons du datasheet de la
sonde.
Dans ce même datasheet, le constructeur nous fourni une formule extrapolée de la
relation de Steinhart-Hart pour calculer la température en fonction des 4
coefficients A1, B1, C1 et D1.
J'ai préféré prendre cette formukle fournie pour réaliser le calcul :
Le résultat calculé par la formule est en degré Kelvin.
Pour la convertir en degré Celcius, il suffit de soustraire au résultat la
valeur 273.15...
Simple, non ?
Le programme :
On arrive à la partie interressante !
Tout d'abord, vous pouvez voir qu'il y a des calculs complexes à faire.
Pour les logarithmes naturels (ln), ce type nécessite la librairie math.h
Autre élément, dans la fonction pour calculer la relation Steinhart-Hart, j'ai
volontairement séparé l'équation.
Les 4 parties distinctes facilitent la lisibilité du programme.
Dans le programme, la valeur de la résistance et de la température sont envoyées
au moniteur série.
Vous pourrez l'utiliser comme bon vous semble dans vos programmes.
Le code :
#include <math.h> #define PIN_NTC 0 double Rref = 10000.0; //Résistance de référence à 25°C double V_IN = 5.0; //Alimentation électrique //Information de la thermistance double A_1 = 3.354016E-3; double B_1 = 2.569850E-4; double C_1 = 2.620131E-6; double D_1 = 6.383091E-8; double SteinhartHart(double R) { //Division de l'équation en 4 parties. La premiere est //uniquement A1 double equationB1 = B_1 * log(R/Rref); double equationC1 = C_1 * pow(log(R/Rref), 2); double equationD1 = D_1 * pow(log(R/Rref), 3); double equation = A_1 + equationB1 + equationC1 + equationD1; return pow(equation, -1); } void setup() { Serial.begin(9600); } void loop() { //Calcul de la tension sur la borne analogique double valeurAnalog = analogRead(PIN_NTC); double V = valeurAnalog / 1024 * V_IN; //Calcul de la résistance de la thermistance double Rth = (Rref * V ) / (V_IN - V); Serial.print("Rth = "); Serial.print(Rth); //Calcul de la température en kelvin( Steinhart and Hart) double kelvin = SteinhartHart(Rth); double celsius = kelvin - 273.15; //Conversion en celsius Serial.print("Ohm - T = "); Serial.print(celsius); Serial.print("C\n"); delay(1000); } |
Le fichier ICI.
Conclusion :
Un composant à metre à toutes les sauce, comme dit plus haut dans l'article.
Quelques centimes à l'achat... Avec une précision correcte...
D'autres composants permettent une précision plus importante....
Nous en parlerons dans les autres articles...
Des questions, des commentaires en direct ?
© 01/05/2015 - Dernière modification : 01/05/2015 - F4CVM / Pascal