Étape 5: calibrage
J’ai travaillé avec des capteurs de température avant. Je sais qu’ils sont difficiles à calibrer en particulier dans l’air. Il est très difficile de les amener à un degré F de l’autre.
Comme avec la plupart des capteurs de température, les KTY81s ne sont pas très précis et doivent être calibrées. Par exemple, la résistance à la température ambiante peut varier de 1900 à 2100 ohms.
Si vous voulez construire cela, alors vous aurez besoin de calibrer vos capteurs. Il s’agit d’algèbre, peut-être un tueur en jeu pour certains lecteurs. Mais je vais essayer de vous emmener à travers un simple ajustement linéaire de deux points.
Théorie de la procédure : Tout d’abord vous avez besoin pour obtenir le capteur (ou dans ce cas des capteurs) à une température fixe et connue. La température connue est mesurée par un instrument connu. J’ai utilisé mon thermomètre IR. L’Arduino lira le capteur associé et envoyer un certain nombre de 0 à 1023. La température et le comte est enregistré. Puis, pour une température différente, l’ensemble du processus est répété.
Procédure appliquée : J’ai enveloppé le câble Ethernet piraté dans une bobine et eux coincé dans une boîte, puis fermée. (Voir photos) Je l’ai mis dans un environnement assez stable sur mon plancher et laisser, qu'elle s’est fixé un certain temps. Puis j’ai eu une lecture de l’Arduino, juste crus comtes des capteurs analogiques et j’ai mesuré la température dans la boîte avec mon thermomètre infrarouge. (Voir photo)
Ensuite, j’ai mis la boîte à l’extérieur à une température plus chaude et répété le processus.
Alors maintenant, vous devriez avoir deux températures différentes et deux différents chefs d’accusation pour chaque capteur.
Algèbre : Ces capteurs sont donc assez linéaires. Cela signifie que les modifications de résistance assez uniformément avec la température. J’ai donc utilisé un ajustement linéaire.
TempF = multiplicateur * compter + Offset
TempF est la température en degrés Fahrenheit.
Count est le nombre d’Arduino.
Multiplicateur est une constante pour chaque capteur.
Offset est une constante différente pour chaque capteur.
Une fois que vous comprendre quel est le multiplicateur et l’Offset pour chaque capteur puis lorsque l’Arduino indique le décompte du capteur, le logiciel va multiplier ce chiffre par le multiplicateur et ajouter le décalage pour donner la température en degrés Fahrenheit.
Pour trouver le multiplicateur et l’Offset pour un capteur, vous connaissez le TempF et les chefs d’accusation pour deux différents points afin d’avoir deux équations différentes. Exemple :
À 83,5 degrés, le cinquième capteur était 999,3 chefs d’accusation.
À 75,5 degrés, le cinquième capteur était 979,5 chefs d’accusation.
Les deux équations sont :
83,5 = M * 999,3 + O
75,5 = M * 979.5 + O
M = O et des multiplicateur = décalage
À l’aide de l’algèbre, vous pouvez soustraire la deuxième équation du premier
83,5-75,5 = M * 999,3 - M * 979.5 + O - O
Simplifier :
8 = M * 999,3 - M * 979.5
8 = 19,8 * M
M = 0.4040
Alors maintenant vous savez ce qui est M. Pour trouver O, il suffit de brancher le M dans l’une des équations du départ :
83,5 = M * 999,3 + O
83,5 = 0.4040 * 999,3 + O
83,5 = 403.7576 + O
83,5-403.7576 = O
O =-320.258
Pour vérifier vos calculs, vous pouvez brancher M et O dans l’autre équation.
Attirer l’attention de lecteurs : Certains peuvent se demander comment j’ai eu un comte de 999,3 quand l’Arduino seulement sorties 0 à 1023. C’est exact, mais je suis en utilisant une valeur moyenne sur 25 échantillons.
L’Offset est un nombre négatif. C’est pas grave comme l’ordinateur sait qu’ajouter un nombre négatif est le même qu’enlève pas.
Répétez la procédure ci-dessus pour les cinq autres capteurs et branchez les valeurs dans le logiciel. Soit dit en passant, j’ai utilisé Excel pour effectuer les calculs.
Le logiciel Arduino est attaché.
Logiciel Notes :
Une fois que le logiciel est chargé à l’Arduino, le terminal série sert à afficher les résultats. Chaque ligne contient les températures de la sonde de haut vers le bas, séparés par des virgules.
Le logiciel devra courir à travers les 25 échantillons avant qu’elle commence en moyenne correctement. Cela prendra environ une minute.
Notes du code :
flotteur TempArray [NUM_SAMPLES] [MAX_TEMPS] ;
Il s’agit d’un tableau double, capteurs de 25 échantillons x 6
Sous "void setup(void) {" vous verrez les multiplicateurs et les décalages pour chaque capteur.
Sous "float getTemperatureF (unsigned int TempNum) {}"
Il y a deux instructions return.
Celui mis en commentaire « //return (SumTotal/NUM_SAMPLES); »
est décommenté pour obtenir les chiffres bruts moyens pour étalonnage
L’autre « retour multiplicateur [TempNum] *(SumTotal/NUM_SAMPLES) + décalage [TempNum]; »
retourne la température calibrée.