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.
Vos commentaires
# Le 5 octobre 2017 à 14:29, par rezzouqi
En réponse à : Capteur de température analogique
merci de vos explications :-)
Répondre à ce message
# Le 29 avril 2011 à 22:37, par PLOUM
En réponse à : Capteur de température analogique
Je suis bien content que de tels articles nous redonnent le goût à ce métier. Je viens de découvrir les outils "ARDUINO", je recherchais une méthode pour parfaire à ma régulation de chauffage bois munie d’un ballon tampon et en collecteur ouvert pour deux départs, je rencontrais des problèmes d’inversion de sens d’eau et voulais bloquer ce phénomène avec les vannes 3 voies associées. A l’origine, je regulais simplement avec les circulateurs et je donnais un coup de doigt sur les vannes 3 voies selon ... mon inspiration en vue du temps ! Cela allait pas mal, à vraie dire, mais toutefois, je relevais une incohérance de fonctionnement. A force de gratter, je me suis persuadé, qu’il fallait, à un moment donné, que ces vannes puissent être non passantes lorsqu’elles n’étaient pas solicitées.
Je ne voulais pas mettre d’electronique là dedans, mais je pense qu’il va me falloir y (re)venir. D’ou ces articles qui nous facilitent la vie et je prends la plume sur ce clavier pour en remercier les auteurs ! ! !
# Le 6 février 2012 à 09:42, par PetitCoucou
En réponse à : Capteur de température analogique
Bonjour,
Il manque des informations importantes...
Quelle est la résistance utilisée ?
Car j’ai beau essayé un tel montage, je ne parviens pas à obtenir la bonne température :(
Dommage car le script est bon, et le montage aussi...
Help me please !
# Le 7 février 2012 à 03:02, par Julien H.
En réponse à : Capteur de température analogique
Bonjour. L’information recherchée pouvait se déduire en cherchant un peu... Sur la photo, on voit la résistance utilisée : le code couleur "rouge violet rouge" des anneaux correspond à une 2,7 kOhms.
On pouvait aussi consulter la doc technique fournie dans l’article (datasheet PDF). On y trouve des schémas de référence, notamment page 7 : "simple temperature controller" où l’on voit une résistance de 2 kOhms.
A votre service (mais faut pas attendre que ça tombe tout cuit dans le bec non plus).
Répondre à ce message