Sommaire | cliquez ici si le menu est absent | Sommaire |
---|
Généralités
approche analogique classique :
La mesure de la température est une opération relativement
complèxe : la démarche habituelle consiste
à utiliser un capteur analogique, qui délivre
une grandeur électrique (courant, tension) proportionnelle
à la température ; il existe plusieurs
solutions possibles : thermocouple, jonction d'une diode
alimentée à courant constant, thermistance
(mais avec un problème de linéarité), circuit
spécialisé tel que le célèbre LM335 ou
son cousin le LM35 ; le capteur est le plus souvent suivi d'un
dispositif de mise en forme (amplification, offset, correction de la
linéarité).
Sauf dans le cas d'un affichage analogique (galvanomètre,
vu-mètre), il est la plupart du temps nécessaire de le
faire suivre par un convertisseur analogique / numérique (qui peut
d'ailleurs être très rudimentaire), l'information obtenue
étant destinée à un système informatique
au sens large (PC, microcontrôleur, transmission pour
télémesures, etc.).
Il reste ensuite un autre aspect assez délicat à
envisager, l'étalonnage du dispositif. Cela revient à
ajuster deux paramètres (en supposant le système
linéaire) :
le réglage du zéro : L'utilisateur impose au capteur une première température de référence (le plus simple : 0°C) et ajuste un décalage (auquel on ne touchera plus par la suite s'il s'agit du 0) de manière à faire coincider la valeur théorique et la valeur affichée.
le gain du dispositif amplificateur (ou atténuateur) :
on impose alors une seconde température de
référence et on ajuste la sensibilité du
système pour que la nouvelle valeur affichée corresponde
à la seconde référence. À une variation de
n degrés du capteur, correspondra une variation de n
degrés de la valeur affichée.
Si le système est bien linéaire, le réglage
est terminé, mais il aura fallut pour cela disposer d'un
thermomètre étalon précis ce qui n'est
pas toujours le cas. À défaut de ce dernier, on
peut utiliser deux températures de références
universelles : la glace fondante (0°C) et l'eau bouillante
(100°C). Remarque : cela présuppose que l'on se
trouve approximativement au niveau de la mer, avec une pression
atmosphérique dite "standard".
La réalisation de la partie analogique devra être
soignée ; cette dernière impose d'ailleurs
certaines contraintes : résistances et amplificateurs
opérationnels de précision, présence d'une
alimentation symétrique, étalonnages réguliers, etc.
Une solution simplifiée et intégrée :
Les contraintes évoquées précédemment ont
de quoi rebuter un modeste bricoleur non spécialiste. Parmi les
nombreux dispositifs de la famille I2C (bien connue pour ses EEPROM
24Cxxx), on trouve maintenant deux composants qui réalisent
cette fonction : le récent et performant DS75 (qui existe
uniquement en version CMS, mais pas de panique, c'est très
simple d'utilisation !), ainsi que le DS1621 (en boîtier DIL
8 broches), tous deux fabriqués par Dallas et relativement
disponibles en France, notamment chez Farnell.
Ces deux composants intègrent toute la chaine de traitement,
il suffit alors d'aller consulter les registres internes (selon le
protocole I2C) pour lire la température ; une sortie peut
changer d'état logique lorsque la température passe en
deçà d'un seuil bas, ou au-delà d'un
seuil haut. Ces deux composants ne sont pas logiciellement compatibles,
car les commandes permettant l'accès aux registres internes
diffèrent ; pour plus de détail, je vous invite
à consulter la documentation de chaque circuit, disponible
au format PDF, en anglais uniquement :
documentation du DS75 (241 ko) |
documentation du DS1621 (648 ko) |
---|
La réalisation d'une interface simplifiée permettra de relier au port série d'un PC une sonde constituée de l'un de ces deux composants au choix. Un programme spécifique au DS75 ou bien au DS1621, et conçu pour fonctionner sous windows 95/98/Me/NT/2000/XP, permet d'accéder aux registres internes, et de lancer l'acquisition de mesures à un intervalle de temps régulier et paramétrable par l'utilisateur. Je vous recommande vivement l'utilisation du DS75 car celui-ci est à la fois bien plus puissant et meilleur marché que le DS1621 :
J'ai maintenu et actualisé la description et le programme
correspondant au DS1621, puisque la version précédente
du thermomètre utilisait ce composant. Je recommande vivement
aux internautes qui auraient réalisé l'ancienne version
du montage (avec le DS1621, mais sans le CD4081) de construire cette
nouvelle interface ; l'ancien montage surchargeait un peu la sonde,
ce qui pouvait avec certains PC induire chez elle un léger
échauffement et donc une (petite) erreur dans la température
renvoyée (voir description de l'interface) ; à ce
propos, la dernière version du programme permet d'introduire une
correction sur la valeur affichée.
Signalons qu'il existe d'autres composants pour la mesure de températures, dont je vous laisse le soin d'explorer les possibilités : le LM76 (prometteur), LM77, DS1620 (bus "trois fils"), DS1820 et 1821 (bus "un fil", la chronologie des échanges est assez critique). Le LM75 de National est identique au DS75 (compatible matériellement et logiciellement), mais avec les performances plus limitées du DS1621 soit une résolution de 0,5°C. Pour plus d'informations sur les circuits existant, je vous invite à consulter les pages correspondantes des sites web de Dallas et de National.
Concernant le DS75 et le DS1621, voici les quelques caractéristiques à retenir :
Une gamme de température mesurée de -55 à +125°C.
La résolution (écart mini entre deux températures successives lues) vaut 0,5°C (échantillons sur 9 bits) pour le DS1621, et peut atteindre 0,0625°C pour le DS75 (échantillons sur 9, 10, 11 ou 12 bits).
Durée de la mesure : inférieure à 1 seconde pour le DS1621, et de 0,3 à 1,2 seconde au maximum pour le DS75 selon la résolution (maxi pour 12 bits, mais une lecture par seconde semble ne pas poser de problème dans la gamme des températures ambiantes).
Précision de la mesure : +/- 2°C entre -25°C et +100°C, et un peu meilleure dans la gamme des températures ambiantes. Cette valeur n'est pas forcément négligeable, d'où l'intérêt de pouvoir ajuster la température affichée. La bonne résolution du DS75 ne doit pas masquer ce paramètre !
Concernant la dernière caractéristique, j'ai prévu un réglage dit "d'offset" qui permet d'introduire un décalage constant (ajustable entre -10 et +10°C) pour compenser une éventuelle erreur de lecture due d'une part à l'imprécision de la sonde, mais surtout à la manière dont celle-ci est utilisée (par exemple : sonde positionnée dans un courant d'air froid ce qui donne une température apparente plus basse).
Dans un premier temps, je m'étais proposé
d'utiliser ces circuits pour réaliser des thermostats
programmables sur PC, puis destinés à fonctionner
de manière autonome en pilotant grâce à
leur sortie des dispositifs quelconques (radiateur ou étuve,
par exemple) ; j'ai dû renoncer, car ces deux circuits
se prètent difficilement à un fonctionnement
autonome :
- Le DS1621 à besoin d'une instruction pour initialiser
la conversion à la mise sous tension (ou après
une coupure du courant).
- Le LM75 stocke les seuils de déclenchement de la sortie,
non pas en EEPROM comme le DS1621, mais en RAM, d'où perte
des données à la coupure du courant. Les seuils bas
et haut reprennent alors les valeurs par défaut : 75
et 80°C, ce qui n'est pas forcément exploitable.
Les utilisateurs souhaitant réaliser un thermostat autonome
devront donc accompagner le circuit d'un microcontrôleur
(idéalement un PIC12C508, disponible et peu couteux), en
développant eux-même le soft qui va avec ; les
programmes présentés sur cette page devraient pour
cela leur permettre de mieux appréhender le fonctionnement
des registres des DS1621 et LM75. Un autre composant semble mieux
adapté pour un fonctionnement en thermostat autonome :
le DS1620, mais je ne l'ai pas encore expérimenté
(consultez vos moteurs de recherches favoris).
Signalons à l'attention des programmeurs sous Windows qu'il existe
maintenant une DLL permettant un accès direct et complet à tous
les registres du DS75 ; pour tous les détails, cliquez sur l'option
[DLL pour le DS75] du menu.
En conclusion, il ne faut certe pas attendre monts et merveilles
de ces composants, mais ils ont au moins l'avantage d'exister et
de proposer une solution simple et bon marché à
la mesure de température, sans nécessiter de
réglages délicats, pour les applications qui se
satisfont de la précision offerte...
Dernière mise à jour : le 22 juin 2003.
Sommaire | cliquez ici si le menu est absent | Sommaire |
---|