Je travaille sur un système de contrôle du chauffage pour ma maison, mais j'ai des problèmes avec la lecture du capteur de température plus élevée que prévu.
J'ai un clone Arduino Mini Pro 5V branché à un module relais, un écran HD47780 et un module Tiny RTC, avec un DS18B20 attaché.
Le DS18B20 est alimenté par le Vcc 5 V appliqué au module Tiny RTC plutôt que d'utiliser une alimentation parasite sur la ligne DQ (car je n'étais pas sûr que les bibliothèques Onewire prennent en charge ce mode de fonctionnement) et la fiche technique du DS18B20 indique que le Vcc peut être compris entre 3.0v et 5.5v. J'ai mesuré la puissance régulée du Mini Pro à 5,2 V.
Je compare la température du DS avec le thermostat d'ambiance existant (bimétallique), un moniteur de température de bureau RS avec deux capteurs, un petit `` thermo-hygromètre '' et un thermomètre de réfrigérateur bimétallique (dans le quart supérieur de sa température † ) . La lecture de la DS est toujours environ 1-2 degrés plus élevée que la lecture des autres capteurs, qui sont à un degré les uns des autres.
† Pas le vrai, mais quelque chose de similaire.
En lisant divers forums, j'ai entendu dire que ces capteurs sont assez précis mais peuvent souffrir d'un échauffement localisé des composants à proximité, j'ai donc déplacé le capteur sur un câble de 20 cm et l'ai placé bien loin du reste de l'électronique. Cela n'a fait aucune différence.
J'ai ensuite lu que la DS peut devenir auto-chauffante si elle est alimentée avec une tension Vcc trop élevée, j'ai donc ajouté une LED rouge avec une chute de 1,7 V et mesuré la nouvelle tension sur la DS à 3,5 V, mais encore une fois, après avoir attendu la les températures se stabilisent une fois de plus, cela ne fait aucune différence.
Quelqu'un peut-il suggérer pourquoi la DS peut lire haut et ce que je peux faire pour éviter cela?
la source
Réponses:
J'ai mis en place un grand nombre de capteurs DS18B20 sur différents nœuds de capteurs - peut-être 50 environ. J'ai appris un peu sur les relevés qui en sont ressortis. Je sais que vous en avez isolé certains comme n'étant pas la cause, mais il est bon de confirmer qu'il s'agit de problèmes.
Je ne sais pas si vous utilisez Celsius ou Fahrenheit, donc le degré du problème n'est pas clair.
Chauffage localisé
Je ne pense pas à l'Arduino comme une puce "chaude", mais le fait de placer un DS18B20 dans un boîtier avec un Arduino et un LCD m'a fait voir des lectures 2-3 ° C plus élevées que prévu.
Le déplacer hors de l'enceinte a corrigé ce problème.
Chauffage à haute Vcc / conversions fréquentes
Si vous fournissez la puce avec un Vcc élevé et effectuez des conversions fréquentes (c'est-à-dire aussi souvent que possible), la puce se réchauffe. J'ai vu cette augmentation des lectures de 1-2 ° C.
Je n'ai pas vu le problème avec un Vcc élevé seul, mais j'utilise la plupart des DS18B20 en mode parasite et convertis au plus une fois toutes les 10s. Ceux qui fonctionnent en mode actif ont généralement l'alimentation hors tension lorsqu'ils ne sont pas utilisés.
OneWire et DallasTemperature prennent en charge le mode parasite.
Tous les capteurs de température ne sont pas créés égaux
J'avais un certain nombre de capteurs de température avant de commencer à jouer avec le DS18B20. Presque sans exception, ces sous-lecture. La plupart d'entre eux sont basés sur des thermistances et l'étalonnage est médiocre. Je pensais que le DS18B20 était en cours de lecture, mais lorsque j'ai utilisé un bon thermocouple et un bon compteur, j'ai pu vérifier qu'ils étaient corrects.
Il s'agissait d'apprendre à faire confiance au DS18B20.
Chaleur conduite le long du fil
Si vous avez les capteurs sur un fil, le fil conduit une quantité surprenante de chaleur. Cela peut être un problème lors de l'exécution du câblage le long des tuyaux.
Fake DS18B20
Ces capteurs sont très populaires, et cela semble avoir provoqué l'apparition de faux. J'ai un lot de capteurs étanches en acier inoxydable qui ont sur-lu et les chronomètres étaient passés. Ils ont travaillé avec la bibliothèque OneWire, mais pas avec un maître DS2482 OneWire. J'ai entendu dire que les boîtiers TO-92 normaux étaient également faux.
la source
Dans mon cas, le câblage entre mon uC et le capteur était trop court et transmettait de la chaleur. Je pensais que cela ne pouvait pas être le cas au début, car un autre capteur de température signalait des températures précises à la même distance. Je l'ai déplacé vers un autre emplacement sur le tableau et le tour est joué!
la source
Vous voudrez peut-être calibrer votre capteur.
Que lit-elle lorsqu'elle est immergée dans de l'eau bouillante (en supposant le niveau de la mer)? 102,5 degrés Celsius? Cela vous donnerait un étalonnage à haute température de -2,5 ° C.
Évidemment, il vaut mieux calibrer autour des températures que vous attendez de moi. Cela signifie faire confiance (ou faire la moyenne?) À un appareil de mesure et l'étalonner en conséquence.
la source
J'ai vu des décalages de plusieurs degrés C lors de l'utilisation du DS18B20 sur un bus 3,3 V, en passant à un bus 5,0 V stable et j'ai obtenu des valeurs plus raisonnables. (testé avec et sans puissance parasite)
la source
J'ai fait quelques expériences. Si le DS18B20 était sur un câble court <1 cm vers mon Arduino Pro Micro, les lectures étaient 5 degrés de plus que l'environnement. Sur une longueur de câble> 10 cm de la carte Arduino et peu importe où la résistance a été montée (près d'Arduino ou près de DS18B20), les lectures étaient bonnes.
la source