Dans ce tutoriel, vous apprendrez à utiliser un LM35 capteur de température analogique avec Arduino. J’ai inclus un schéma de câblage et des exemples de code pour vous aider à démarrer !
Dans la première partie de cet article, vous trouverez les spécifications et le brochage du LM35. Ensuite, nous verrons comment connecter le capteur à l’Arduino.
Le premier exemple de code peut être utilisé pour prendre des mesures de température avec le capteur et afficher les résultats dans le Moniteur Série. Dans le second exemple, je vous montrerai comment utiliser la tension de référence intégrée de 1,1 V de l’Arduino pour obtenir des mesures plus précises. Enfin, nous verrons comment afficher la température sur un I2C LCD pour créer un thermomètre autonome.
Matériel nécessaire
Composants matériels
| LM35 analog temperature sensor (TO-92) | × 1 | Amazon |
| Arduino Uno | × 1 | Amazon |
| Breadboard | × 1 | Amazon |
| Jumper wires | ~ 10 | Amazon |
| 16×2 character I2C LCD | × 1 | Amazon |
| USB cable type A/B | × 1 | Amazon |
Logiciel
Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.
À propos du LM35
Le LM35 est un capteur de température centigrade précis et peu coûteux fabriqué par Texas Instruments. Il fournit une tension de sortie proportionnelle linéairement à la température en degrés Celsius, ce qui le rend très facile à utiliser avec l’Arduino.
Le capteur ne nécessite aucune calibration ou ajustement externe pour fournir une précision de ±0,5°C à température ambiante et ±1°C sur la plage de −50°C à +155°C.
Un des inconvénients du capteur est qu’il nécessite une tension de polarisation négative pour mesurer des températures négatives. Si cela est nécessaire pour votre projet, je recommande plutôt d’utiliser le DS18B20 ou le TMP36. Le TMP36 d’Analog Devices est très similaire au LM35 et peut mesurer des températures de -40°C à 125°C sans composants externes.
Vous pouvez trouver un tutoriel dédié pour le TMP36 et le DS18B20 ici :
- TMP36 analog temperature sensor with Arduino tutorial
- The complete guide for DS18B20 digital temperature sensors with Arduino
Le facteur d’échelle de sortie du LM35 est de 10 mV/°C et il fournit une tension de sortie de 250 mV à 25°C (voir figure ci-dessous).

Notez que le capteur fonctionne sur une plage de tension de 4 à 30 V et que la tension de sortie est indépendante de la tension d’alimentation.
Le LM35 fait partie d’une série de capteurs de température analogiques vendus par Texas Instruments. Les autres membres de la série incluent :
- LM335 – tension de sortie directement proportionnelle à la température absolue à 10 mV/°K.
- LM34 – tension de sortie proportionnelle linéairement à la température en Fahrenheit à 10 mV/°F.
Brochage du LM35
Le LM35 est disponible en 4 boîtiers différents, mais le type le plus courant est le boîtier transistor 3 broches TO-92.

Le brochage du capteur est le suivant :

Notez que la broche 1 (+V S ) est la broche la plus à gauche lorsque la face plate du capteur (avec le texte imprimé) est tournée vers vous.
| Nom | Broche | Description |
|---|---|---|
| +V S | 1 | Broche d’alimentation positive (4 – 30 V) |
| V OUT | 2 | Sortie analogique du capteur de température |
| GND | 3 | Broche de masse du dispositif, à connecter au terminal négatif de l’alimentation |
Vous trouverez les spécifications du LM35 dans le tableau ci-dessous.
Spécifications du capteur de température analogique LM35
| Tension d’alimentation | 4 V à 30 V |
| Courant de fonctionnement | 60 µA |
| Plage de température | -55°C à +155°C |
| Précision garantie | ±0,5°C à +25°C ±1°C de -55°C à +150°C |
| Facteur d’échelle de sortie | 10 mV/°C |
| Tension de sortie à 25°C | 250 mV |
| Auto-échauffement | <0,1°C dans l’air immobile |
| Boîtier | TO-92 3 broches |
| Fabricant | Texas Instruments |
Pour plus d’informations, vous pouvez également consulter la fiche technique ici :
Câblage – Connexion du capteur de température analogique LM35 à l’Arduino
Connecter un LM35 à l’Arduino est très simple car il suffit de connecter 3 broches. Commencez par connecter la broche +V S à la sortie 5 V de l’Arduino et la broche GND à la masse.
Ensuite, connectez la broche centrale (V OUT ) à l’une des entrées analogiques de l’Arduino. Dans ce cas, j’ai utilisé la broche d’entrée analogique A0.

Les connexions sont également indiquées dans le tableau ci-dessous :
Connexions du capteur de température analogique LM35
| LM35 | Arduino |
|---|---|
| Broche 1 (+V S ) | 5 V |
| Broche 2 (V OUT ) | Broche A0 |
| Broche 3 (GND) | GND |
Conversion de la tension de sortie du LM35 en température
Pour convertir la tension de sortie du capteur en température en degrés Celsius, vous pouvez utiliser la formule suivante :
Température (°C) = V OUT / 10
avec V OUT en millivolts (mV). Ainsi, si la sortie du capteur est de 750 mV, la température est de 75°C.
Comme vous pouvez le voir dans le schéma de câblage ci-dessus, la sortie du LM35 est connectée à une des entrées analogiques de l’Arduino. La valeur de cette entrée analogique peut être lue avec la fonction analogRead(). Cependant, cette fonction ne renverra pas directement la tension de sortie du capteur.
Les cartes Arduino contiennent un convertisseur analogique-numérique (ADC) multicanal 10 bits, qui mappe les tensions d’entrée entre 0 et la tension d’alimentation (5 V ou 3,3 V) en valeurs entières entre 0 et 1023. Sur un Arduino Uno, par exemple, cela donne une résolution entre lectures de 5 volts / 1024 unités, soit 0,0049 volts (4,9 mV) par unité.
Donc, si vous utilisez analogRead() pour lire la tension sur une des entrées analogiques de l’Arduino, vous obtiendrez une valeur entre 0 et 1023.
Pour convertir cette valeur en tension de sortie du capteur, vous pouvez utiliser :
V OUT = lecture de l’ADC * (Vref / 1024)
Nous utiliserons ces formules dans les exemples de code ci-dessous.
Exemple de code Arduino pour le capteur de température analogique LM35
Avec l’exemple de code suivant, vous pouvez lire la température d’un capteur LM35 et l’afficher dans le Moniteur Série.
/* LM35 analog temperature sensor with Arduino example code. More info: https://www.makerguides.com */
// Define to which pin of the Arduino the output of the LM35 is connected:
#define sensorPin A0
void setup() {
// Begin serial communication at a baud rate of 9600:
Serial.begin(9600);
}
void loop() {
// Get a reading from the temperature sensor:
int reading = analogRead(sensorPin);
// Convert the reading into voltage:
float voltage = reading * (5000 / 1024.0);
// Convert the voltage into the temperature in degree Celsius:
float temperature = voltage / 10;
// Print the temperature in the Serial Monitor:
Serial.print(temperature);
Serial.print(" \xC2\xB0"); // shows degree symbol
Serial.println("C");
delay(1000); // wait a second between readings
}
Vous devriez voir la sortie suivante dans le Moniteur Série :

Assurez-vous que le débit en bauds du Moniteur Série est également réglé sur 9600.
Comment fonctionne le code
Tout d’abord, j’ai défini à quelle broche de l’Arduino la broche V OUT du capteur est connectée. Dans ce cas, nous avons utilisé la broche analogique A0. L’instruction #define peut être utilisée pour donner un nom à une valeur constante. Le compilateur remplacera toutes les références à cette constante par la valeur définie lors de la compilation du programme. Ainsi, partout où vous mentionnez sensorPin, le compilateur le remplacera par A0 lors de la compilation.
// Define to which pin of the Arduino the output of the LM35 is connected: #define sensorPin A0
Dans la section setup du code, nous commençons la communication série à un débit de 9600 bauds.
void setup() {
// Begin serial communication at a baud rate of 9600:
Serial.begin(9600);
}
Dans la section loop du code, nous commençons par prendre une lecture du capteur avec la fonction analogRead(pin).
// Get a reading from the temperature sensor: int reading = analogRead(sensorPin);
Ensuite, nous utilisons les formules mentionnées plus tôt dans l’article pour convertir la lecture en tension puis en température.
// Convert the reading into voltage: float voltage = reading * (5000 / 1024.0); // Convert the voltage into the temperature in degree Celsius: float temperature = voltage / 10;
Enfin, les résultats sont affichés dans le Moniteur Série :
// Print the temperature in the Serial Monitor:
Serial.print(temperature);
Serial.print(" \xC2\xB0"); // shows degree symbol
Serial.println("C");
Améliorer la précision des mesures
Comme nous avons utilisé la tension de référence par défaut de l’Arduino pour l’entrée analogique (c’est-à-dire la valeur utilisée comme limite supérieure de la plage d’entrée), la résolution maximale que nous obtenons de l’ADC est de 5000/1024 = 4,88 mV ou 0,49°C.
Si nous voulons une précision plus élevée, nous pouvons utiliser la référence intégrée de 1,1 V de l’Arduino à la place. Cette tension de référence peut être modifiée avec la fonction analogReference().
Avec 1,1 V comme tension de référence, nous obtenons une résolution de 1100/1024 = 1,07 mV ou 0,11°C. Notez que cela limite la plage de température mesurable de 0 à 110 degrés Celsius.
J’ai mis en évidence les lignes que vous devez ajouter/modifier dans le code ci-dessous :
/* LM35 analog temperature sensor with Arduino example code. More info: https://www.makerguides.com */
// Define to which pin of the Arduino the output of the LM35 is connected:
#define sensorPin A0
void setup() {
// Begin serial communication at a baud rate of 9600:
Serial.begin(9600);
// Set the reference voltage for analog input to the built-in 1.1 V reference:
analogReference(INTERNAL);
}
void loop() {
// Get a reading from the temperature sensor:
int reading = analogRead(sensorPin);
// Convert the reading into voltage:
float voltage = reading * (1100 / 1024.0);
// Convert the voltage into the temperature in degree Celsius:
float temperature = voltage / 10;
// Print the temperature in the Serial Monitor:
Serial.print(temperature);
Serial.print(" \xC2\xB0"); // shows degree symbol
Serial.println("C");
delay(1000); // wait a second between readings
}

Exemple de code LM35 avec écran LCD I2C et Arduino
Si vous souhaitez fabriquer un thermomètre autonome qui ne nécessite pas d’ordinateur, il peut être utile de savoir comment afficher les mesures de température sur un écran LCD.
Avec l’exemple de code ci-dessous, vous pouvez afficher les mesures de température sur un 16×2 character I2C LCD.
Le branchement de l’écran LCD I2C est assez simple comme vous pouvez le voir dans le schéma de câblage ci-dessous. Vous pouvez consulter mon tutoriel détaillé sur How to control a character I2C LCD with Arduino pour plus d’informations. Si vous souhaitez utiliser un écran LCD standard non-I2C, jetez un œil à How to use a 16×2 character LCD with Arduino.

Les connexions sont également indiquées dans le tableau ci-dessous :
Connexions de l’écran LCD I2C
| Écran LCD caractère I2C | Arduino |
|---|---|
| GND | GND |
| VCC | 5 V |
| SDA | A4 |
| SCL | A5 |
Notez que le capteur de température LM35 est connecté de la même manière qu’auparavant.
Installation des bibliothèques Arduino requises
Pour utiliser un écran LCD I2C, vous devez installer la bibliothèque Arduino LiquidCrystal_I2C .
Pour installer cette bibliothèque, allez dans Tools > Manage Libraries (Ctrl + Shift + I sous Windows) dans l’IDE Arduino. Le gestionnaire de bibliothèques s’ouvrira et mettra à jour la liste des bibliothèques installées.

Recherchez maintenant ‘liquidcrystal_i2c’ et cherchez la bibliothèque de Frank de Brabander . Sélectionnez la dernière version puis cliquez sur Installer.

Exemple de code LM35 avec écran LCD I2C
/* LM35 analog temperature sensor with I2C LCD and Arduino example code.
https://www.makerguides.com */
// Include the required Arduino libraries:
#include "LiquidCrystal_I2C.h"
// Create a new instance of the LiquidCrystal_I2C class:
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Degree symbol:
byte Degree[] = {
B00111,
B00101,
B00111,
B00000,
B00000,
B00000,
B00000,
B00000
};
// Define to which pin of the Arduino the output of the LM35 is connected:
#define sensorPin A0
void setup() {
// Start the LCD and turn on the backlight:
lcd.init();
lcd.backlight();
// Create a custom character:
lcd.createChar(0, Degree);
}
void loop() {
// Get a reading from the temperature sensor:
int reading = analogRead(sensorPin);
// Convert the reading into voltage:
float voltage = reading * (5000 / 1024.0);
// Convert the voltage into the temperature in degree Celsius:
float temperature = voltage / 10;
// Print the temperature on the LCD;
lcd.setCursor(0, 0);
lcd.print("Temperature:");
lcd.setCursor(0, 1);
lcd.print(temperature);
lcd.write(0); // print the custom character
lcd.print("C");
delay(1000); // wait a second between readings
}
Vous devriez voir la sortie suivante sur l’écran LCD :

Conclusion
Dans ce tutoriel, je vous ai montré comment utiliser un capteur de température analogique LM35 avec Arduino. Si vous souhaitez en savoir plus sur d’autres capteurs de température, consultez les articles ci-dessous.
- The complete guide for DS18B20 digital temperature sensors with Arduino
- How to use DHT11 and DHT22 sensors with Arduino
- TMP36 analog temperature sensor with Arduino tutorial
- How to control a character I2C LCD with Arduino
Si vous avez des questions, des suggestions, ou si vous pensez que des éléments manquent dans ce tutoriel, veuillez laisser un commentaire ci-dessous.


Raymond
Tuesday 3rd of March 2026
The displayed values are all wrong I tried with several sensors, what should I do?
Stefan Maetschke
Tuesday 3rd of March 2026
Hi, try the following simplified code and see if values change with temperature. If not, something with the wiring or the sensor is wrong. If yes, try to change the conversion from sensor readings to temperatures.
void setup() {} void loop { Serial.println(analogRead(A0)); }