Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Capteurs > Capteurs d’environnement > Capteur de température analogique

Capteur de température analogique

jeudi 14 janvier 2010, par Julien H.

Le LM335Z est un simple capteur de température qui s’utilise très facilement.

Nous avions déjà étudié un capteur de température numérique, le LM75 décrit dans cet article, qui nécessitait d’utiliser un protocole de communication, I2C.

Le LM335Z est plus simple, il est analogique, c’est-à-dire qu’il présente une tension variable en fonction de la température. La variation de tension est linéaire : 10 mV par degré Kelvin (K). Avec un microcontrôleur (carte Arduino par exemple), on utilisera un convertisseur analogique/numérique pour connaitre la température en fonction de la valeur analogique lue sur l’entrée connectée.

Electroniquement, ce capteur est équivalent à une diode zéner à 2 sorties, mais dispose dans son boitier standard TO92 d’une troisième sortie d’ajustement, permettant avec un potentiomètre d’obtenir une plus grande précision.

Montage

Avec une carte Arduino pour faire la lecture analogique et la conversion pour envoyer sur l’ordinateur et visualiser la valeur pour simuler ce que ferait une installation domotique ou un robot, et avec une plaque d’essai (breadboard), on peut réaliser rapidement le montage "simple" consistant à relier la diode zéner représentant le capteur de température en pont diviseur de tension.

Schéma

Voici le schéma de connexion : comme vous le remarquez, la première patte n’est pas utilisée car dans le mode simple, nous n’en avons pas besoin.

Si vous lisez la datasheet, notez bien le "bottom view" sur le schéma du boitier TO-92 qui indique que le composant est décrit vu de dessous, la partie bombée étant alors vers l’arrière et non vers le devant.

Calculs

Voici les correspondances, pour un convertisseur analogique numérique de 10 bits et une tension d’alimentation de 5 volts :

 à valeur 0 = 0 volts, la température est de 0 K (degré Kelvin)
 à valeur 2 = 10 millivolts, la température est de 1 K
 à valeur 610 = 2,99 volts, la température est de 298 K
 à valeur 1024 = 5 volts, la température est de 500 K

Pour obtenir des degrés courants (Celsius dans cette partie du globe), il faut se souvenir que 0 degré Kelvin = -273,15 degrés Celsius (°C). Donc 298 K = 25 degrés Celsius.

Lecture de valeur

Voici un code très simple :

void setup()
{
  Serial.begin(38400);
}

void loop()
{
  int val = analogRead(0);
  
  double kelvin = ((double) val * 500.0) / 1024.0;
    
  double degres = kelvin - 273.15;
    
  Serial.println(degres);  
  delay(500);  
}

C’est très simple, mais il ne faut pas oublier d’utiliser des "double" (nombres réels ou "à virgule") et de faire une conversion de type (ou "cast" en anglais) de la valeur numérique entière lue sur le convertisseur en une valeur réelle compatible avec la multiplication et la division.

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.