Le LM35 est un capteur de température analogique : il délivre une tension proportionnelle à la température, à raison de 10 mV par degré Celsius. Aucune bibliothèque, aucun protocole, aucune adresse à définir — on lit une tension sur une entrée analogique, on divise par dix, et on obtient des degrés. C’est le capteur de température le plus simple à mettre en œuvre sur une carte Arduino.
Celui que nous livrons est en boîtier plastique TO-92 à trois broches, le format le plus répandu : il se pique directement dans une plaque d’essai ou se soude sur un circuit imprimé. Sa sortie est calibrée en usine, en degrés Celsius — pas en kelvins, donc rien à retrancher dans le programme.
Pourquoi choisir un capteur analogique ?
Un capteur numérique (DHT22, DS18B20) renvoie des octets et demande une bibliothèque. Le LM35 renvoie une tension, et c’est tout : trois fils, une broche analogique, deux lignes de calcul. Cette simplicité le rend très facile à diagnostiquer — un multimètre suffit pour vérifier qu’il fonctionne.
- Calibré en Celsius — 0 mV à 0 °C, 250 mV à 25 °C. La correspondance est directe, sans constante à soustraire.
- Très faible consommation — moins de 60 µA : un projet sur pile peut l’alimenter en permanence.
- Sortie à faible impédance — 0,1 Ω, donc une entrée analogique la lit sans déformation du signal.
- Auto-échauffement négligeable — 0,08 °C dans l’air immobile : le capteur ne fausse pas sa propre mesure.
- Linéaire — non-linéarité de ±¼ °C seulement, sans correction logicielle à prévoir.
Ses limites sont réelles, et il vaut mieux les connaître avant de choisir : la résolution dépend du convertisseur de la carte (environ 0,5 °C avec la référence 5 V), et une sortie analogique supporte mal les longues longueurs de fil. Pour mesurer à dix mètres ou pour poser plusieurs sondes sur un même câble, un capteur numérique à bus est préférable.
Caractéristiques techniques
| Type | Capteur de température analogique de précision, série LM35 |
|---|---|
| Boîtier | TO-92 plastique, 3 broches |
| Alimentation | 4 à 30 V continu (5 V en pratique, comme l’Arduino) |
| Sortie | Analogique : 10 mV par °C, 0 mV à 0 °C |
| Plage de mesure | Selon le grade : −55 °C à +150 °C (LM35), −40 °C à +110 °C (LM35C), 0 °C à +100 °C (LM35D) |
| Précision | ±0,5 °C à 25 °C |
| Non-linéarité | ±0,25 °C typique sur la plage |
| Consommation | Moins de 60 µA |
| Auto-échauffement | 0,08 °C dans l’air immobile |
| Impédance de sortie | 0,1 Ω pour une charge de 1 mA |
Ces trois grades portent le même boîtier et le même brochage : ils ne se distinguent que par la plage garantie et la précision. Le programme de cette page fonctionne avec tous.
Brochage : trois broches dans un ordre précis
Tenez le composant face plate vers vous, broches pointées vers le bas. Les trois broches se numérotent alors de gauche à droite :
Broche 1 — +VS | Alimentation positive. À relier au 5 V de l’Arduino (le composant accepte jusqu’à 30 V). |
|---|---|
Broche 2 — VOUT | La sortie. À relier à une entrée analogique, A0 par exemple. |
Broche 3 — GND | La masse. À relier au GND de l’Arduino — référence commune indispensable. |
Ne vous trompez pas de sens. Contrairement à beaucoup de composants qui supportent l’inversion, un +VS et un GND croisés sur le LM35 le détruisent en quelques secondes, sans signe avant-coureur. Vérifiez deux fois avant de mettre sous tension : la broche du milieu est toujours VOUT, et la masse est du côté du chanfrein du boîtier.
Aucune résistance n’est nécessaire, ni sur l’alimentation, ni sur la sortie : le capteur se branche tel quel.
Convertir la tension en degrés
La correspondance est linéaire, et le calcul tient en une phrase : la température en degrés Celsius est égale à la tension de sortie en millivolts divisée par dix.
| 0 °C | 0 mV |
|---|---|
| 10 °C | 100 mV |
| 25 °C | 250 mV |
| 37 °C | 370 mV |
| 50 °C | 500 mV |
| 100 °C | 1 000 mV |
C’est aussi ce qui permet de contrôler le capteur sans programme : alimentez-le, mesurez la tension entre la broche VOUT et la masse avec un multimètre, et lisez la température directement. Un doigt posé sur le boîtier doit faire monter la tension de quelques dizaines de millivolts — c’est la preuve la plus simple que le composant est vivant.
Mini-projet : un thermomètre sur le port série
Le montage le plus court possible : le capteur, trois fils, et l’affichage de la température dans le moniteur série Arduino. Comptez dix minutes.
Ce qu’il faut
| Le capteur | Le LM35 de cette page, en boîtier TO-92 |
|---|---|
| La carte | Uno R3 + câble USB |
| Les liaisons | 10 × fil mâle-femelle |
| Le support | Plaque d’essai 400 points — facultatif, le capteur peut se brancher directement sur la carte à l’aide de fils |
Pourquoi des fils mâle-femelle ? Les broches du LM35 sont des broches mâles rigides. L’extrémité femelle du fil se clipse dessus, l’extrémité mâle se pique dans la plaque d’essai ou dans un connecteur de la carte.
Le câblage
LM35 broche 1, +VS | → Arduino 5V |
|---|---|
LM35 broche 2, VOUT | → Arduino A0 |
LM35 broche 3, GND | → Arduino GND |
Trois fils, aucune résistance. Le capteur peut rester dans la plaque d’essai ou être porté au bout des fils pour mesurer la température d’un endroit précis.
Le programme
À copier dans l’IDE Arduino, puis à téléverser sur la carte :
/*
* Thermometre numerique - capteur de temperature analogique LM35
* Carte : Arduino Uno R3
* Le LM35 delivre 10 mV par degre Celsius, soit 0 mV a 0 C
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
const byte PIN_LM35 = A0; // sortie VOUT du capteur
const float VREF_MV = 5000.0; // tension de reference de la carte, en millivolts
const int NB_PAS = 1024; // nombre de pas du convertisseur analogique 10 bits
// Une seule lecture est bruitee : on moyenne sur plusieurs mesures
const int NB_MESURES = 16;
void setup() {
Serial.begin(9600);
Serial.println("Thermometre LM35 pret");
}
void loop() {
long somme = 0;
for (int i = 0; i != NB_MESURES; i++) {
somme += analogRead(PIN_LM35);
delay(2);
}
float lecture_moyenne = somme / (float) NB_MESURES;
float tension_mV = lecture_moyenne * VREF_MV / NB_PAS;
float temperature = tension_mV / 10.0;
Serial.print("Tension : ");
Serial.print(tension_mV, 1);
Serial.print(" mV Temperature : ");
Serial.print(temperature, 1);
Serial.println(" C");
delay(1000);
}Comment ça marche
analogRead()renvoie un nombre entier de 0 à 1023, proportionnel à la tension sur la brocheA0. Multiplier ce nombre par la tension de référence de la carte, puis diviser par 1024, redonne la tension réellement mesurée.- Cette tension, exprimée en millivolts, est divisée par 10 : c’est la conversion du LM35. Une lecture de 245 mV correspond à 24,5 °C.
- Le programme fait seize lectures et en calcule la moyenne. Une mesure unique sur une entrée analogique varie de quelques unités : la moyenne stabilise l’affichage d’environ 0,3 °C et évite les chiffres qui sautent d’un dixième à l’autre.
delay(2)entre deux lectures laisse au convertisseur le temps de se stabiliser ;delay(1000)en fin de boucle affiche une valeur par seconde.
Pour aller plus loin
- Meilleure résolution — la référence 5 V de la carte donne des pas d’environ 4,9 mV, soit près de 0,5 °C. En basculant sur la référence interne de 1,1 V avec
analogReference(INTERNAL), les pas descendent à environ 1 mV et la résolution approche 0,1 °C, en échange d’une plage de mesure limitée à un peu plus de 100 °C. La formule d’exploitation reste la même. - Afficher en façade — un afficheur LCD 16×02 I2C remplace le port série et rend le montage autonome, sans ordinateur.
- Seuils et alarmes — comparer
temperatureà une consigne et déclencher un relais de ventilation, ou un buzzer au-delà du seuil. - Étalonner sans matériel de laboratoire — plongez le capteur dans un mélange d’eau et de glace fondante : il doit afficher très près de 0 °C. C’est le point de contrôle le plus simple, et il ne coûte rien.
Questions fréquentes
Mon affichage reste bloqué à 0 °C ou à une valeur absurde. Pourquoi ?
Dans l’ordre : la broche VOUT est-elle bien reliée à A0 et non laissée en l’air ? La masse de la carte et celle du capteur sont-elles communes ? Le +VS reçoit-il bien du 5 V ? Mesurez la tension entre VOUT et GND au multimètre : si elle est proche de 250 mV, le capteur fonctionne et le problème est dans le programme ; si elle reste à 0 V, l’alimentation est en cause.
Le capteur chauffe-t-il suffisamment pour fausser la mesure ?
Non : moins de 60 µA traversent le composant, soit 0,08 °C d’auto-échauffement dans l’air immobile. En revanche, gardez-le éloigné du régulateur de la carte Arduino, qui chauffe réellement, et du microcontrôleur. C’est presque toujours la source d’erreur quand le capteur mesure une température ambiante plus haute que la réalité.
Peut-il mesurer une température négative ?
Le boîtier TO-92 courant est spécifié à partir de 0 °C ; en dessous de cette valeur, la tension de sortie deviendrait négative et il faut une alimentation négative accompagnée d’une résistance de tirage, comme le décrit la fiche du constructeur. Pour une mesure fiable sous zéro — chambre froide, extérieur —, un capteur numérique DS18B20 est mieux adapté : il descend à −55 °C et se relie à l’abri d’un câble long.
Comment obtenir une décimale supplémentaire ?
Il faut agir sur deux fronts. Côté logiciel, la moyenne de plusieurs lectures et une référence de tension plus basse (voir plus haut) font gagner en stabilité : l’électronique de la carte fournit une résolution voisine de 0,1 °C. Côté physique, attendez la stabilisation thermique du capteur : il faut plusieurs dizaines de secondes pour que le boîtier se mette à la température de ce qu’il mesure. Cette seconde attente est presque toujours la vraie limite, pas la résolution.
Puis-je utiliser un câble de plusieurs mètres ?
Techniquement oui, mais mal : la sortie est analogique, et un fil long capte le bruit électrique environnant (éclairages, moteurs, alimentation à découpage). Le seul cas qui fonctionne à peu près, c’est un câble blindé, avec la tresse reliée à la masse d’un seul côté. Pour une sonde déportée, préférez un DS18B20, dont le signal numérique se transmet sans perte sur des dizaines de mètres.
Quelle différence avec le DHT22 ou l’AM2302 ?
Ces deux modules mesurent la température et l’humidité de l’air, avec une précision correcte mais une cadence de lecture lente, et ils nécessitent une bibliothèque. Le LM35 ne mesure que la température, mais il le fait en continu, sans attendre, et se contente de trois fils. Les deux familles sont complémentaires : un DHT22 pour une station météo, un LM35 pour une régulation thermique réactive.
À combiner avec
Si vous partez de zéro, le KIT Starter fournit la carte Uno R3, la plaque d’essai, les fils et un afficheur : il ne manque que ce capteur pour transformer le montage de cette page en thermomètre autonome. Pour un affichage permanent en façade, ajoutez un afficheur LCD 16×02 I2C ou son adaptateur I2C, qui ne demande que deux fils. Et pour comparer avec une mesure sans contact ou une mesure de l’air ambiant, parcourez notre catégorie modules, shields et capteurs.







