Sommaire cliquez ici si le menu est absent Sommaire


Présentation du capteur de température pour PC :



Retour en haut de la page 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) : Retour en haut de la page


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 (0C) et l'eau bouillante (100C). 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.


Retour en haut de la page 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 : Retour en haut de la page


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. Retour en haut de la page


Concernant le DS75 et le DS1621, voici les quelques caractéristiques à retenir :

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). Retour en haut de la page


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). Retour en haut de la page


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