pages

14 août 2016

Mesure température avec LM135 et DHT22

Aujourd’hui nous utliserons le capteur LM135 et le PIC 18F26k80 pour mesurer la température.




LM135 et DHT22


Pour mesurer une température nous avons dèja présenté plusieurs solutions :
mais il y a d’autres possibilités par exemple le circuit LM135.

LM135 : Présentation


Le circuit LM135 est un capteur de température qui fourni une tension continue fonction de la température.

Le datasheet est disponible ICI par ex.

Il ressemble à un circuit plus connu, le LM35 avec quelques différences, la plus importante est la tension en fonction de la température.

Le LM135 fourni 2,732 V pour 0°C contre 0V pour LM35.

Petit rappel : 0°C = 273.15 °Kelvin, ce qui explique la tension de 2,732V pour 0°C, dans le cas du LM135 bien sûr.

Par contre la variation de température est identique, elle est de 10mV/°C ou °K.

Nous allons l’utiliser avec une platine de test qui comprend un pic 18F26K80, un afficheur 16*4 et un circuit DHT22.

Nous verrons pourquoi l’utilisation du 18F26K80 dans quelques lignes.

schema pic 18F26K80

Le circuit DHT22 nous permettra de faire une comparaison entre les deux capteurs.

LM135 : Utilisation


Le circuit fourni donc 2732 mV pour 0°C et la variation de tension est de 10 mV/°C, d’autre part le 18F26K80 dispose d’un convertisseur A/N qui convertit une tension sur 12 bits (soit 4096 valeurs) et dispose d’une référence de tension interne de 4096 mV.

Cela devient un peu plus clair, le convertisseur mesurant la tension par pas de 1 mV (4096 / 4096) cela correspond à 0,1 °C.

Une simple soustraction pour obtenir la valeur de la température ex :

Pour 25°C : V = 2732 + (10 * 25) = 2982 mV – 2732 mV = 250

Ne reste plus qu’a diviser par 10 pour obtenir la valeur de la température au dixième de degrés.

Avec un convertisseur de 10 bits (les plus courants) un bit correspond à 4 mV, c’est moins pratique et plus fatigant.

Programme test LM135


Le programme comporte une partie pour la gestion du DHT22, une partie pour la gestion de l’affichage et la partie pour la gestion du LM135.

Pour le DHT22 voir un précedent billet et pour l’affichage lcd c’est ICI, la mesure de la tension fournie par le LM135 se base sur cet autre billet .

Détallions le traitement après l’acquisition de la valeur numérique représentative de la tension fournie par le LM135.

traitement lm135



La transcription en C :
      
ADCON0bits.GO = 1; //demarrage conversion
while (ADCON0bits.GO); // attente fin conversion
valadc = ((ADRESH << 8) | ADRESL); // lecture résultat
signelm135 = '+';
Tlm135 = (valadc - 2732);
if (valadc < 2732) {
   Tlm135 = (2732 - valadc);
   signelm135 = '-';
}


Pour l’affichage une petite ligne de code :

printf("V = %u  T = %c%u,%u", valadc, signelm135, Tlm135 / 10, abs(Tlm135 % 10));

C'est bien utile cette fonction "printf()".

Au niveau de l’affichage nous avons :
  • ligne 1 : la température et taux d’humidité mesuré par le DHT22,
  • ligne 4 : la tension en mV et la conversion en °C.

affichage lcd

Les fichiers sont téléchargeables ICI

A+

Aucun commentaire:

Enregistrer un commentaire