1 Présentation du projet – Cahier des charges
Ce document présente un montage qui capte la température intérieure (entre +2°C et +100°C) à l'aide d'un
capteur LM35DZ. La tension issue de ce capteur est numérisée régulierement par le CAN du PIC en
mode 10 bits. Puis les 8 bits de poid faible du résultat de la conversion sont envoyés par laison radio en
utilisant un protocole série (1 bit de start, 8 bits de données, 1 bit de stop, pas de parité) à l'aide d'un
module de Telecontrolli RT6-433.
L'échantillonnage régulier de la température est réalisé en utilisant le mode ULPWU (Ultra Low Power
Wake-Up = Réveil en mode basse consommation) du PIC. Entre chaque mesure, le PIC est endormi
(mode SLEEP). Dans ce mode, on coupe l'alimentation du module RT6-433 et du capteur de température,
on obtient alors une consommation inférieur à 1uA donc on peut avoir une alimentation par piles.
Le réveil du PIC est donc périodique et dépend de la capacité qui est connecté au port GP0. Dans les
conditions normales d'utilisation (à 25°C), on tire 135nA (Isink) et lorsque la tension aux bornes du
condensateur passe en dessous de Vil (Vil=0,58V indépendant de la tension d'alimentation), cela
déclenche une interruption et réveille le PIC.
Le temps entre deux mesures est donc donné par la formule suivante (Voir la note d'application AN879
de Microchip) :
T en s = [(Vo – Vil).C] / (Isink + Ifuite)
avec
●Vo : tension de départ en Volt à laquelle est chargé le condensateur (généralement on le chargera à
son maximum donc pas très loin de la tension d'alimentation)
●Vil : tension de seuil bas du PIC indépendante de l'alimentation égale à 0,58V (en fait cette
tension varie avec la température)
●C : la capacité en Farad du condensateur connecté à la broche GP0/ULPWU
●Isink : le courant absorbé par le PIC en mode ULPWU, cette valeur est égale à 135nA à 25°C
mais varie avec la température
●Ifuite : le courant de fuite du condensateur (que j'ai négligé dans les calculs)
Défauts qui seront corrigés dans la prochaine version :
●L'alimentation devrait être faite à l'aide d'une pile bouton CR2032 qui donne 3V mais le capteur
de température ne fonctionne qu'à partir de 4V et jusqu'à 20V. On prendra donc un autre capteur
de température pouvant fonctionner à partir de 2,4V.
●La conversion A/N prend comme référence la tension d'alimentation (qui peut fluctuer) donc on
utilisera une référence de tension externe de 1,024V sur l'entrée GP1. On aura ainsi un quantum de
1mV (Vref = 1,024V et résolution de 10bit donc 1024 pas) donc une numérisation très précise de
la tension du capteur (d'ailleurs supérieur à sa résolution propre de 0,5°C soit 5mV)
●Si on réalise une conversion complète sur 10 bits on ne se contentera plus d'envoyer les 8 bits de
poids faibles. Il faudra transmettre les bits de poids forts et de poids faibles. Pour fiabiliser la
liaison radio on définira une certaine trame avec des octets de synchronisation (valeur 0x55), un
octet de début de trame, les deux octets de la mesure de la température, un octet de vérification
(obtenu soit par addition des deux octets précédents, soit en réalisant un XOR), un octet de fin de
trame. De plus on utilisera le code de Hamming pour avoir une valeur moyenne de la trame
transmise égale à 0V ce qui est meilleure dans le cas d'une transmission radio.
!"#$%!& '(