Bonjour,
J'ai un problème avec le capteur de température SKU SEN0198 qui utilise un sonde Pt100 (voici le site : https://wiki.dfrobot.com/HighTemperatureSensor_SKU_SEN0198).
Je m'y connais très mal en arduino et je n'ai aucune idée de comment étalonner ce genre de capteur. J'ai lu pas mal de documentation disant d'étalonner la sonde en trouvant une relation entre la resistance et la température mais je ne sais pas comment mettre ca en application... De plus je ne comprend pas le code fournit sur le site ce qui ne m'aide pas trop.
Merci d'avance pour toute aide possible.
Il n'y a à priori pas d'étalonnage à faire. La librairie contient une table de valeurs et elle te retourne une température directement.
- Tu décompresses le .zip que tu as chargé dans un répertoire de ton choix
- Tu lances l'IDE Arduino.
- Tu vas dans le menu Croquis/Importer une bibliothèque/Ajouter la bibliothèque .ZIP...
- Dans le dialogue qui s'ouvre tu indiques la location du fichier librairies.zip qui se trouve dans le répertoire que tu as crée au pas 1
Tu trouveras le code de test dans les exemples installés avec la librairie.
Ton sujet est un sujet de métrologie, la programmation est un sujet secondaire.
Je dis que le plus important est le montage sur lequel est connectée la sonde PT100.
Dans ton cas le SKU SENO198.
Première question à se poser : de quelle précision as-tu besoin ?
Il ne faut pas tout croire sur internet au risque d'utiliser un marteau-pilon pour enfoncer une punaise.
Toi seul peux répondre, puisque tu ne nous as pas dit à quoi doit servir le montage.
Si tu veux faire une calibration, il faut commencer par faire un étalonnage à plusieurs températures.
Étalonnage : détermination de l'écart entre les valeurs fournies par l'appareil à étalonner et celles d'un thermomètre étalon.
Évidence : Il faut un étalon ou désigner un thermomètre comme étant l'étalon.
Pour la calibration, on considère que la mesure fournie par l'étalon est juste.
Calibration : correction de la mesure affichée par l'appareil à calibrer pour qu'elle entre dans la précision que l'on s'est fixé à l'avance. La boucle est bouclée : de quelle précision as-tu besoin pour ton application.
Quelques explications :
Les sondes PT100 sont très précises, ce qui est important, c'est le comportement du SKU dont le schéma se trouve :
Hypothèse : seule la sonde se trouve portée à la température à mesurer, l'électronique se trouve à une température très faiblement variable → il y aura peu d'effet dus aux variations de la température de la pièce.
Les imprécisions sont :
— L'erreur statique sur la sonde PT100 qui ne fait pas exactement 100,00000 ohms à la température nominale.
— L'erreur statique sur les résistances du SKU.
Première source d'erreur : le pont R1, R2, R3.
L''erreur est égale à ± 3 fois 0,1%.
Seconde source d'erreur : le gain de l'ampli : R4, R5, R6, R7.
L'erreur est ± 4 fois 0,1%.
Soit une erreur globale de ± 0,7%.
Il faut ajouter les erreurs dues au voltmètre du microcontrôleur (ADC).
Tu ne nous as pas dit quel microcontrôleur tu utilises. Dire arduino pour une carte microcontrôleur, c'est dire : j'ai une Renault sans indiquer si c'est une essence, un diesel ou une électrique, une clio ou un espace.
PS :
Il ne faut pas mettre la charrue avant les bœufs.
Soit, tu ne cherches qu'un code fonctionnel, sans avoir aucune envie de continuer par la suite avec les microcontrôleurs.
Soit, tu cherches à coder, s'il le faut avec l'aide du forum, et dans ce cas, il n'y a pas de miracle, il faut commencer par suivre des tutos.
Un bon tuto de l'avis général est celui-ci : eskimon.fr.
Je veux simplement utiliser ce montage comme un thermomètre précis à 0.01°C de préférence mais si c'est à 0.05°C ca me va aussi. Le but est simplement de mettre la sonde dans de l'eau dont la température varie et d'en récupérer les mesures sur la température.
J'espère que c'est clair...
- Ça me parait difficile avec un ADC sur 10 bits. Il va falloir passer sur un ADC externe avec une résolution bien plus grande et tenir un rapport signal sur bruit important et je ne suis pas certain que la montage proposé avec ta sonde tienne ces performances.
- Il va falloir trouver les paramètres de ta sonde avec une grande précision. Et implémenter par toi même la conversion tension ==> température.
- Il va falloir trouver un thermomètre de référence avec au minimum la précision que tu cherches à obtenir pour faire ta calibration.
Tout ça pour dire que franchement je ne le sens pas.
Je plussoies l'avis de @fdufnews, j'ai demandé à l'IA de faire les calcules pour moi, sur un cas théorique.
0.01° sur un PT100 avec un alpha standard donne 32µV de variation, il faudrait donc en théorie au moins 16bits, pour avoir un pas de l'ADC de 50µV.
Tout ceci sans parler de la précision du régulateur pour la tension et la précision de la résistance mis en série avec ta sonde, et la précision de la PT100 que tu aura choisis.
Quel contexte impose cette contrainte de précision ? (une mesure de température avec un dixième de degré d’exactitude est déjà plus qu’honorable !)
De mon point de vue avec une carte carte Arduino quelconque + ce module module cette performance est hors d’atteinte sauf peut être en restreingant très fortement la plage de température à mesurer, un peu comme on le fait avec les thermomètres médicaux.
cf : impact des résistances R1 à R7 au message #3 , pour ce qui est du module lui même, donc sans tenir compte de la conversion analogique/numérique en aval
De plus un thermometre de référence est il disponible pour élalonner celui-ci ?
Schéma du module SKU SEN0198
