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).
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.
Remarque : les sorties Out1 et Out2 ne sont actuellement pas utilisées.
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.
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 :
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 détermine le paramètre (la température Int ou Ext) à
afficher. Le paramètre affiché est indiqué par l'illumination 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 !
+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.