Electronique > Réalisations > Affichage / Mesures > Thermomètre 003

Dernière mise à jour : 13/06/2011

Présentation

Ce thermomètre dispose de deux sondes de température, une première pour mesurer la température ambiante intérieure et une seconde pour la température extérieure (ou une deuxième intérieure).

thermometre_003_pcb_3d_a

L'affichage se fait sur deux afficheurs LED sept segments, avec 7 modes d'affichage possibles :
- affichage en continu de la température intérieure actuelle (Int), minimale enregistrée (Int-Min) ou maximale enregistrée (Int-Max)
- affichage en continu de la température extérieure actuelle (Ext), minimale enregistrée (Ext-Min) ou maximale enregistrée (Ext-Max)
- affichage alterné des températures intérieure et extérieure (Int / Ext).
Le mode d'affichage en cours est spécifié par l'allumage d'une LED parmi sept. Le circuit emploie deux capteurs de température de type LM35 et un PIC de type 16F88 programmé pour l'occasion. Certains rétorqueront qu'un tel système est disponible dans le commerce pour un coût faible, et c'est vrai. Mais connaissez-vous la précision des capteurs utilisés dans les thermomètres bas de gamme ? Et pouvez-vous définir des actions spécifiques pour des températures données ? L'avantage du circuit décrit ici est que vous pouvez modifier le code source et le recompiler pour obtenir ce que vous voulez. Mais s'il est un avantage indiscutable, c'est celui de faire soi-même et de découvrir quelques lignes de code logiciel qui pourront probablement servir ailleurs. Et puis, avez-vous déjà vu dans le commerce un thermomètre double dont le mode d'affichage est spécifié par la position du curseur d'un potentiomètre ? Il faut bien varier les plaisirs de temps en temps.

Avertissement

Montage conçu et simulé avec succès dans le monde virtuel de Proteus, mais pas réalisé pratiquement. Dans son ensemble le montage fonctionne bien mais il me reste à vérifier ce que ça donne côté stabilité affichage (vérification absence de scintillements gênants). 

Schéma

Le PIC 16F88 est le coeur du montage. Il dispose de plusieurs entrées analogiques et trois d'entre elles sont exploités ici.

thermometre_003

Lecture des températures
Les valeurs de température sont obtenues en lisant directement la tension analogique en sortie des capteurs de température LM35. Ces derniers délivrent une tension qui est proportionnelle à la température, à raison de 10 mV par °C (100 mV pour 10 °C, 270 mV pour 27 °C, etc). Il est important de comprendre que la précision de mesure que l'on peut espérer ici est faible pour les basses températures, à cause du pas de mesure du convertisseur A/N intégré au PIC. Ce dernier travaille en effet sur 10 bits (1024 pas de quantification) et pour une pleine échelle de mesure de 5 V cela donne environ 5 mV de résolution. Ce qui est une valeur élevée en regard de nos 10 mV par °C, surtout entre 0 °C et +10 °C. Dans la pratique, la valeur affichée est précise au degré près, et on peut compter sur un affichage correct à partir de +5 °C (mais soyons raisonnables et disons à partir de +10 °C). Côté valeur température maximum, on est limité par la valeur max que le LM35 peut délivrer, qui est d'un peu plus de 100 °C, ce qui donne donc une tension de 1 V. On peut donc dire pour résumer que la plage de température mesurable avec une précision "correcte" (à 1 °C près) est comprise entre +5 °C et +100 °C. Une mesure de valeurs négatives est tout à fait possible, il faut modifier un peu le circuit (je proposerai une telle modification seulement s'il y a de la demande).

Meilleur précision ?
Pour gagner en précision, il est possible d'insérer un amplificateur de tension continue à AOP apportant un gain voisin de 5. Ainsi, la tension appliquée à l'entrée du CAN du PIC n'est plus de 10 mV par °C mais de 50 mV par °C. C'est ce que je propose dans mon thermostat 003 qui quand j'y pense fait aussi thermomètre.

thermostat_003_lm35_001

Pour plus de détails concernant cette adaptation, merci de vous reporter au paragraphe "Fonctionnement avec capteur LM35" du thermostat 003.
Une autre solution pour obtenir une meilleure précision consiste à ajouter quelques composants autour du LM35, comme le montre le schéma suivant :

thermometre_001c

En procédant ainsi, la précision est meilleure entre 0 °C et +10 °C, mais la température maximale affichable pourra à peine atteindre 50 °C car l'évolution de la tension passe alors à 100 mV par °C :
A 10 °C, Vout = 1.00V
A 15 °C, Vout = 1.50V
A 20 °C, Vout = 2.00V
A 25 °C, Vout = 2.50V
etc.
Remarque : pour avoir une pente de conversion de 250 mV par °C (10 V pour +40 °C) au lieu de 100 mV par °C, il faudrait donner à R101 la valeur 100 ohms et à R102 la valeur 1,8 kO (je n'ai pas de formule, j'ai déterminé ça de façon empirique).
En résumé, la solution de simplicité reste le câblage direct du LM35 sur l'entrée analogique du PIC, avec pour résultat une précision plus faible en-dessous de 10 °C et meilleure au-delà. Avec la modification proposée ci-avant ou avec l'ajout d'un amplificateur x5 à AOP, la précision est bien meilleure entre 0 et 10 °C mais on ne peut plus monter aussi haut en température. A vous de choisir votre camp (retenez cependant que le code compilé proposé ici se base sur le principe du schéma principal, où la solution la plus simple a été retenue. Donc code source à modifier si vous adaptez le circuit d'entrée de mesure contenant le LM35).

Modes d'affichage
La sélection du mode d'affichage, qui permet de choisir quelle valeur de température afficher, se fait au moyen d'un potentiomètre linéaire classique. La tension issue de son curseur est lue par la troisième entrée analogique du PIC (entrée RA2/AN2) et selon sa valeur, le programme sait quoi afficher. D'un point de vue retour utilisateur, le type de valeur affichée est matérialisé par l'affichage d'une LED parmi sept (D1 à D7). Dans le mode d'affichage Int/Ext, les deux valeurs de température sont affichées à tour de rôle toutes les deux secondes environ. Afin de savoir quelle valeur est en cours d'affichage, la LED Int ou la LED Ext s'allume en plus de la LED Int/Ext.

Affichage général et multiplexage
Les deux afficheurs LED 7 segments et les sept LEDs individuelles sont allumées selon un mode d'affichage multiplexé. Le tout se fait en trois étapes, à une vitesse suffisante pour que l'oeil ne voit pas la supercherie. Dans un premier temps, seul l'afficheur AFF1 est alimenté grâce à la mise en conduction du transistor Q1 (sortie RA3 du PIC activée). Pendant ce temps l'afficheur AFF2 et les autres LEDs ne peuvent s'allumer car les transistors Q2 et Q3 sont bloqués (sorties RA4 et RB7 du PIC désactivées). Puis c'est au tour de Q2 de devenir passant (activation sortie RA4) pour que les segments de l'afficheur AFF2 puissent se rendre utiles. Puis pour finir le cycle, le transistor Q3 devient passant pendant que les deux autres se reposent. Seules les LEDs individuelles peuvent alors s'exprimer. A la suite de quoi on réactive l'afficheur AFF1, et ainsi de suite. Bien sûr, les données issues des sorties RB0 à RB6 correspondent à la valeur qui va bien à chaque changement de "colonne".

Effacement des valeurs mémorisées
Pour remettre à "zéro" les valeurs de température min et max mémorisées, il suffit de placer le curseur du potentiomètre de sélection de mode d'affichage en position minimale pendant au moins 3 secondes. En procédant ainsi les afficheurs LED sept segments affichent les lettres "CL" (CLear) et au bout des trois secondes affichent les signes '-' pour confirmer l'opération d'effacement. Si le curseur du potentiomètre est déplacé avant que les trois secondes ne soient écoulées, l'effacement des valeurs mémorisés n'a pas lieu.

Brochage du LM35
Attention, brochage vu de dessous !

LM35 - Brochage Capteur Temp 001 - LM35

+Vs = alim positive (par raport à la masse)
Vout = tension de sortie proportionnelle à la température
GND = masse.
Il existe plusieurs modèles de LM35. Pour la présente application, je vous conseille le modèle LM35CZ ou LM35DZ.

Logiciel PIC

Le fichier binaire compilé *.hex à flasher dans le PIC et les fichiers de code source (MikroPascal Pro V3.80) sont compris dans l'archive zip dont le lien suit.
Thermomètre 003 - 16F88 - (29/08/2010)
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Circuit imprimé

Non réalisé. Vue 3D seulement là pour donner un aperçu des composants utilisés.