Sélectionnez votre langue

Présentation

Voici le descriptif d'un circuit simple qui permet d'allumer une des trois puces lumineuses d'une LED tricolore, en fonction de la température.

indic_couleur_002_pcb_3d_a

Le circuit fait appel à un microcontrôleur PIC 16F88, mais on pourrait tout aussi bien utiliser des AOP ou des comparateurs de tension (sans doute mon côté sadique qui revient). Cinq réglages sont mis à disposition, deux pour définir la plage de température et deux pour les seuils. Ah oui, vous avez raison, 2 + 2 = 4. Je retiens.

Schéma

Le circuit est basé sur un PIC 16F88 (et non sur des AOP, faites un effort SVP) qui possède un CAN (Convertisseur Analogique Numérique).

indic_couleur_002

Le CAN est exploité pour mesurer la température qu'il fait. L'intérêt du circuit est qu'il comporte très peu de composants. L'inconvénient est qu'il ne comporte aucun AOP.

Tension d'entrée

Quelle tension d'entrée ? Il y en a cinq ! Ah oui, c'est exact, précisons davantage :

  • tension sur RA4/AN4 (NTC) : issue du pont diviseur de tension constitué par RT1 et R1, cette tension est proportionnelle à la température du capteur RT1 (résistance NTC - à coefficient de température négatif) et pourquoi pas, de la température ambiante si le capteur n'est pas laissé à l'abandon dans un frigo lui-même placé dans une étuve. Plus la CTN (NTC) est chaude et plus la valeur de sa résistance chute. Vue comment elle est câblée dans le pont diviseur, la tension délivrée par le pont monte avec la température.
  • tension sur RA3/AN3 (Vref+) : tension de référence haute du CAN interne du PIC.
  • tension sur RA2/AN2 (Vref-) : tension de référence basse du CAN interne du PIC.
  • tension sur RA1/AN1 (Seuil2) : définit le seuil de transition d'allumage des LED Verte et Rouge.
  • tension sur RA0/AN0 (Seuil1) : définit le seuil de transition d'allumage des LED Bleue et Verte.

Remarque : la tension qui représente la température peut aussi provenir d'un capteur évolué tel que le LM35 (dans ce cas RT1 et R1 disparaissent), cela ne me vexera pas.

Fonctionnement

A intervales réguliers (10 fois par seconde), le PIC lit les cinq tensions analogiques présentes sur les entrées RA0/AN0 à RA4/AN4. En fonction des valeurs lue, il allume la LED bleue, la verte ou la rouge, selon les "codes" suivant :

  • La pleine échelle du CAN est définie par les deux réglages Vref- et Vref+. La tension Vref- doit impérativement être inférieure à VRef+.
  • Les deux seuils travaillent dans la pleine échelle du CAN, le Seuil1 doit être inférieur au Seuil2.
  • La LED bleue s'allume quand la valeur numérisée de la tension présente en RA4/AN4 (NTC) est inférieure à la valeur numérisée du Seuil1. La LED verte s'allume quand la valeur numérisée de la tension présente en RA4/AN4 (NTC) est comprise entre les deux seuils Seuil1 et Seuil2. La LED rouge s'allume quand la valeur numérisée de la tension présente en RA4/AN4 (NTC) est supérieure à Seuil2.

Un exemple ?
Vref- = 0 V et Vref+ = +5 V : la pleine échelle du CAN (0 à 1023) couvre une plage de tension d'entrée de 0 V à +5 V (5 V entre min et max) :
- si tension en entrée de CAN = 0 V, alors valeur numérisée = 0 (1023 / 5 * 0)
- si tension en entrée de CAN = +1 V, alors valeur numérisée = 205 (1023 / 5 * 1)
- si tension en entrée de CAN = +2,5 V, alors valeur numérisée = 512 (1023 / 5 * 2,5)
- si tension en entrée de CAN = +4 V, alors valeur numérisée = 819 (1023 / 5 * 4)
- si tension en entrée de CAN = +5 V, alors valeur numérisée = 1023 (1023 / 5 * 5)
Si on fixe le Seuil1 à +2 V (valeur numérisée = 410) et le Seuil2 à +3 V (valeur numérisée = 614) et que la tension NTC (RA4/AN4) est de 1,5 V (valeur numérisée = 307) à la température de 10°C, alors seule la LED bleue s'allume. En gardant les mêmes seuils et si la tension NTC (RA4/AN4) est de 2,2 V (valeur numérisée = 450) à la température de 25°C, alors c'est la LED verte qui s'allume.
Un autre exemple ?
Vref- = +2 V et Vref+ = +3 V : la pleine échelle du CAN (0 à 1023) couvre une plage de tension d'entrée de +2 V à +3 V (1 V entre min et max) :
- si tension en entrée de CAN = +2 V, alors valeur numérisée = 0 (1023 / (3-2) * (2-2))
- si tension en entrée de CAN = +2,2 V, alors valeur numérisée = 205 (1023 / (3-2) * (2,2-2))
- si tension en entrée de CAN = +2,6 V, alors valeur numérisée = 614 (1023 / (3-2) * (2,6-2))
- si tension en entrée de CAN = +3 V, alors valeur numérisée = 1023 (1023 / (3-2) * (3-2))
Si on fixe le Seuil1 à +2,3 V (valeur numérisée = 307) et le Seuil2 à +2,7 V (valeur numérisée = 716) et que la tension NTC (RA4/AN4) est de 2,5 V (valeur numérisée = 512) à la température de 30°C, alors seule la LED verte s'allume. En gardant les mêmes seuils et si la tension NTC (RA4/AN4) est de 2,8 V (valeur numérisée = 818) à la température de 35°C, alors c'est la LED rouge qui s'allume.

Connecteur ICSP... Quezako ?

Ce connecteur permet simplement de programmer le PIC en circuit. Si vous disposez d'un programmateur de PIC avec des supports DIL et que vous ne comptez pas reprogrammer le PIC 16F88 plus tard, point besoin de ce connecteur ICSP que vous pouvez supprimer. Pour ma part, j'utilise le programmateur PICkit2 de Microchip pour la programmation "In Situ". Sinon, ça se passe sur ma platine de développement EasyPic de MikroElektronika.

Prototype

Réalisé sur platine de développement EasyPic7 et petite plaque d'expérimentation sans soudure pour le déport de la CTN et de la LED.

indic_couleur_002_proto_001a indic_couleur_002_proto_001b indic_couleur_002_proto_001c indic_couleur_002_proto_001d  

Le schéma montre 3 LED individuelles mais j'ai utilisé une LED tricolore à 4 broches (cathode commune). Tel que j'ai réglé mon prototype, la LED bleue s'allume tant que la température est inférieure à +20 °C. La LED verte s'allume pour une température comprise entre +20 °C et +23 °C et la LED rouge s'allume quand la température dépasse +23 °C. Pour les tests, j'ai simplement posé mon doigt sur la CTN (NTC en anglais). A noter que cela fonctionnait mieux avec ma main gauche qu'avec la main droite, cette dernière était plus froide à cause des manipulations de la souris. J'ai utilisé une CTN de 15 kO mais vous pouvez sans problème en utiliser une d'une autre valeur (10 kO à 100 kO par exemple), il vous suffit de donner à R1 une valeur similaire (disons de valeur égale, pour simplifier la vie). Bien sûr, la courbe de variation température / tension obtenue avec une CTN n'est pas linéaire, mais franchement, pour cette application je m'en fiche complètement. Avec un LM35 à la place du pont diviseur RT1/R1, on disposerait d'une courbe d'évolution linéaire, à vous de voir en fonction de vos besoins.

Logiciel du PIC

Logiciel pour PIC 16F88, code source MikroPascal (V6.4.x) et fichier compilé (*.hex) dispo dans l'archive suivante :
Indicateur coloré 002.zip

Circuit imprimé

Non réalisé. Vue 3D pour aperçu des composants utilisés.