Capteur de température analogique LM35 avec Arduino

Capteur de température analogique LM35 avec tutoriel Arduino

Dans ce tutoriel, vous apprendrez à utiliser un  capteur de température analogique LM35  avec Arduino. J’ai inclus un schéma de câblage et des exemples de codes 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 à partir du capteur et afficher les résultats dans le moniteur série. Dans le deuxième exemple, je vais vous montrer comment utiliser la tension de référence intégrée de 1,1 V de l’Arduino pour obtenir des lectures plus précises. Enfin, nous verrons comment afficher la température sur un  LCD I2C  pour créer un thermomètre autonome.

Si vous souhaitez en savoir plus sur les autres capteurs de température, consultez les articles ci-dessous.

Composants matériels

Capteur de température analogique LM35  (TO-92) × 1 Lien
Arduino Uno × 1 Lien
Planche à pain × 1 Lien
Fils de liaison ~ 10 Lien
LCD I2C 16 × 2 caractères × 1 Lien
Câble USB type A/B × 1 Lien

Logiciel

EDIArduino

À propos du LM35

Le LM35 est un capteur de température centigrade de précision peu coûteux fabriqué par  Texas Instruments . Il fournit une tension de sortie linéairement proportionnelle à la température centigrade et est donc très facile à utiliser avec l’Arduino.

Le capteur ne nécessite aucun étalonnage ou réglage externe pour fournir des précisions de ± 0,5 ° C à température ambiante et de ± 1 ° C sur la plage de températures de -50 ° C à + 155 ° C.

L’un des inconvénients du capteur est qu’il nécessite une tension de polarisation négative pour lire les températures négatives. Donc, si cela est nécessaire pour votre projet, je vous recommande d’utiliser le DS18B20 ou le TMP36 à la place. Le TMP36 d’Analog Devices est très similaire au LM35 et peut lire des températures de -40°C à 125°C sans aucun composant externe.

Vous pouvez trouver un tutoriel dédié pour le TMP36 et le DS18B20 ici :

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 la figure ci-dessous).

Tension de sortie du LM35 en mV en fonction de la température
Tension de sortie du LM35 en mV en fonction de la température
A noter 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 comprennent:

  • LM335 – tension de sortie directement proportionnelle à la température absolue à 10 mV/°K.
  • LM34 – tension de sortie linéairement proportionnelle à la température Fahrenheit 10 mV/°F.

Brochage LM35

Le LM35 est disponible en 4 boîtiers différents, mais le type le plus courant est le boîtier de transistor TO-92 à 3 broches.

TO 92 package 1
Ensemble TO-92

Le brochage du capteur est le suivant :

Brochage du capteur de température analogique LM35

Notez que la broche 1 (+V S ) est la broche la plus à gauche lorsque le côté plat du capteur (avec le texte imprimé dessus) est tourné vers vous.

Nom Broche La description
+V S 1 Broche d’alimentation positive (4 – 30 V)
V SORTIE 2 Sortie analogique du capteur de température
Terre 3 Broche de terre de l’appareil, connectez-vous à la borne négative 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
Écart de température -55°C à + 155°C
Précision assurée ±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 en air calme
Forfait TO-92 à 3 broches
Fabricant Texas Instruments
Coût Vérifiez le prix

Pour plus d’informations, vous pouvez également consulter la fiche technique ici:


Câblage – Connexion du capteur de température analogique LM35 à Arduino

La connexion d’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 du milieu (V OUT ) à l’une des entrées analogiques de l’Arduino. Dans ce cas, j’ai utilisé la broche d’entrée analogique A0.

Capteur de température analogique LM35 avec schéma de câblage Arduino Uno
Capteur de température analogique LM35 avec schéma de câblage Arduino Uno
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 ) 5V
Broche 2 (V SORTIE ) Broche A0
BROCHE 3 (TERRE) Terre

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 :

Temperature (°C) = VOUT / 10

avec V OUT  en millivolt (mV). Donc 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 à l’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 réellement 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 de fonctionnement (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 les lectures de 5 volts / 1024 unités ou 0,0049 volts (4,9 mV) par unité.

Ainsi, si vous utilisez analogRead() pour lire la tension sur l’une des entrées analogiques de l’Arduino, vous obtiendrez une valeur comprise entre 0 et 1023.

Pour reconvertir cette valeur en tension de sortie du capteur, vous pouvez utiliser :

V OUT  = lecture de ADC * (Vref / 1024)

Nous utiliserons ces formules dans les exemples de code ci-dessous.


Capteur de température analogique LM35 avec exemple de code Arduino

Avec l’exemple de code suivant, vous pouvez lire la température d’un capteur LM35 et l’afficher dans le moniteur série.

Vous pouvez télécharger l’exemple de code sur votre Arduino à l’aide de l’  IDE Arduino .

Pour copier le code, cliquez sur le bouton dans le coin supérieur droit du champ de code.

/* Capteur de température analogique LM35 avec exemple de code Arduino. Plus d'infos : https://www.makerguides.com */

// Définir à quelle broche de l'Arduino la sortie du LM35 est connectée :
#définir capteurPin A0

void setup() {
  // Commencer la communication série à un débit en bauds de 9 600 :
  Série.begin(9600);
}

boucle vide() {
  // Obtenez une lecture du capteur de température :
  int lecture = analogRead(sensorPin);

  // Convertit la lecture en tension :
  tension flottante = lecture * (5000/1024.0);

  // Convertit la tension en température en degré Celsius :
  température flotteur = tension / 10 ;

  // Imprime la température dans le Serial Monitor :
  Serial.print(température);
  Serial.print(" \xC2\xB0"); // affiche le symbole du degré
  Serial.println("C");

  retard(1000); // attend une seconde entre les lectures
}

Vous devriez voir la sortie suivante dans le moniteur série :

LM35 Serial Monitor output
Sortie moniteur série

Assurez-vous que le débit en bauds du moniteur série est également défini 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 lorsque le programme sera compilé.

// Définir à quelle broche de l'Arduino la sortie du LM35 est connectée :
#définir capteurPin A0

Dans la section de configuration du code, nous commençons la communication série à un débit en bauds de 9600.

void setup() {
  // Commencer la communication série à un débit en bauds de 9 600 :
  Série.begin(9600);
}

Dans la section boucle du code, nous commençons par prendre une lecture du capteur avec la fonction analogRead(pin).

  // Obtenez une lecture du capteur de température :
  int lecture = analogRead(sensorPin);

Ensuite, nous utilisons les formules que j’ai mentionnées plus tôt dans l’article pour convertir la lecture en tension puis en température.

  // Convertit la lecture en tension :
  tension flottante = lecture * (5000/1024.0);

  // Convertit la tension en température en degré Celsius :
  température flotteur = tension / 10 ;

Enfin, les résultats sont imprimés dans le Serial Monitor :

  // Imprime la température dans le Serial Monitor :
  Serial.print(température);
  Serial.print(" \xC2\xB0"); // affiche le symbole du degré
  Serial.println("C");

Améliorer la précision des lectures

Parce que 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 haut 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 plus grande précision, nous pouvons utiliser la référence 1,1 V intégrée de l’Arduino à la place. Cette tension de référence peut être modifiée à l’aide de la fonction  analogReference() .

Avec 1,1 V comme tension de référence, on obtient une résolution de 1100/1024 = 1,07 mV ou 0,11°C. Notez que cela limite la plage de température que nous pouvons mesurer à 0 à 110 degrés Celsius.

J’ai mis en surbrillance les lignes que vous devez ajouter/modifier dans le code ci-dessous :

/* Capteur de température analogique LM35 avec exemple de code Arduino. Plus d'infos : https://www.makerguides.com */

// Définir à quelle broche de l'Arduino la sortie du LM35 est connectée :
#définir capteurPin A0

void setup() {
  // Commencer la communication série à un débit en bauds de 9 600 :
  Série.begin(9600);

  // Définissez la tension de référence pour l'entrée analogique sur la référence intégrée de 1,1 V :
  analogReference(INTERNE);
}

boucle vide() {
  // Obtenez une lecture du capteur de température :
  int lecture = analogRead(sensorPin);

  // Convertit la lecture en tension :
  tension flottante = lecture * (1100 / 1024,0);

  // Convertit la tension en température en degré Celsius :
  température flotteur = tension / 10 ;

  // Imprime la température dans le Serial Monitor :
  Serial.print(température);
  Serial.print(" \xC2\xB0"); // affiche le symbole du degré
  Serial.println("C");

  retard(1000); // attend une seconde entre les lectures
}
LM35 Serial Monitor output 2
Remarquez les incréments plus petits entre les lectures

LM35 avec LCD I2C et exemple de code Arduino

Si vous souhaitez créer un thermomètre autonome qui ne nécessite pas d’ordinateur, il peut être utile de savoir comment afficher les relevés de température sur un écran LCD.

Avec l’exemple de code ci-dessous, vous pouvez afficher les relevés de température sur un  écran LCD I2C de 16 × 2 caractères .

La connexion 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é ci-dessous pour plus d’informations.

Si vous souhaitez plutôt utiliser un écran LCD non I2C standard, consultez cet article :

Capteur de température analogique LM35 avec écran LCD I2C 16x2 caractères et schéma de câblage Arduino.
Capteur de température analogique LM35 avec écran LCD I2C 16 × 2 caractères et schéma de câblage Arduino.

Les connexions sont également indiquées dans le tableau ci-dessous :

Connexions LCD I2C

LCD à caractères I2C Arduino
Terre Terre
VCC 5V
SDA A4
SCL A5

Notez que le capteur de température LM35 est connecté de la même manière que précédemment.

Installation des bibliothèques Arduino requises

Pour utiliser un LCD I2C, vous devez installer la  bibliothèque LiquidCrystal_I2C  Arduino.

Pour installer cette bibliothèque, allez dans Outils > Gérer les bibliothèques (Ctrl + Maj + I sous Windows) dans l’  IDE Arduino . Le gestionnaire de bibliothèques ouvrira et mettra à jour la liste des bibliothèques installées.

Installation d'une bibliothèque Arduino étape 1 ouvrir Library Manager

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

installing the liquidcrystal i2c arduino library
Installation de la bibliothèque LiquidCrystal_I2C Arduino

LM35 avec exemple de code LCD I2C

/* Capteur de température analogique LM35 avec LCD I2C et exemple de code Arduino. Plus d'infos : https://www.makerguides.com */

// Incluez les bibliothèques Arduino requises :
#include <LiquidCrystal_I2C.h>

// Crée une nouvelle instance de la classe LiquidCrystal_I2C :
LCD LiquidCrystal_I2C (0x27, 16, 2);

// Symbole de degré :
octet Degré[] = {
  B00111,
  B00101,
  B00111,
  B0000,
  B0000,
  B0000,
  B0000,
  B00000
};

// Définir à quelle broche de l'Arduino la sortie du LM35 est connectée :
#définir capteurPin A0

void setup() {
  // Démarrez l'écran LCD et allumez le rétroéclairage :
  lcd.init();
  LCD rétro-éclairage();

  // Crée un personnage personnalisé :
  lcd.createChar(0, Degré);
}

boucle vide() {
  // Obtenez une lecture du capteur de température :
  int lecture = analogRead(sensorPin);

  // Convertit la lecture en tension :
  tension flottante = lecture * (5000/1024.0);

  // Convertit la tension en température en degré Celsius :
  température flotteur = tension / 10 ;

  // Imprimer la température sur l'écran LCD ;
  lcd.setCursor(0, 0);
  lcd.print("Température :");
  lcd.setCursor(0, 1);
  lcd.print(température);
  lcd.write(0); // imprime le caractère personnalisé 
  lcd.print("C"); 

  retard(1000); // assiste une seconde entre les lectures 
}

Vous devriez voir la sortie suivante sur l’écran LCD :

DS18B20-16x2-I2C-LCD-sortie


Conclusion

Dans ce tutoriel, je vous ai montré comment utiliser un capteur de température analogique LM35 avec Arduino. J’espère que vous l’avez trouvé utile et informatif. Si c’est le cas,  partagez cet article  avec un ami qui aime aussi l’électronique et la fabrication d’objets.

J’aimerais savoir quels projets vous envisagez de construire (ou avez déjà construit) avec ce capteur. Si vous avez des questions, des suggestions ou si vous pensez qu’il manque des choses dans ce tutoriel,  veuillez laisser un commentaire ci-dessous .

Notez que les commentaires sont conservés pour modération afin d’éviter les spams.

Licence Creative Commons

Autres liens utiles sur le Web :

    • Exemple de projet avec l’I2C
    • Un autre exemple de projet simple
    • Tutoriel LCD Circuit Geeks I2C
    • Tutoriel LCD Micro Controllers Lab I2C
    • Tutoriel YouTube utile sur l’écran LCD I2C avec Arduino

6 Comments

  1. Hello ! je veux un circuit simplifier d'un détecteur lm35 avec buzzer,son code Arduino et son schéma Proteus
  2. Merci pour ces descriptions claires et précises. Je parcourais différents articles sur l'arduino afin d'avoir une vue élargie du produit quand mes recherches m'ont fait découvrir cette page ... et Ce commentaire. Pour ceux qui s'imagine que tout leur est dû : L'auteur de cet article (comme d'autres auteurs sur des thèmes variés : unix, oracle, PI etc) le font par "gentillesse" dans un but d'aide et de partage de compétences mais également pour valoriser le travail de tout en chacun. Que les vautours en prennent de la graine pour qu'à leur tour deviennent des éléments moteurs.
  3. Bonsoir, qu'est ce que qu'on peut conclure de l'utilisation de ce capteur? ..j'ai pas bien compris .Merci
  4. Bonjour. Votre site est très remarquable, et ce genre de tutoriel très intéressant. Toutefois, je doute qu'un débutant s'en sorte avec le code que vous publiez, qui a l'air d'être passé par un traducteur automatique, qui a traduit certaines instructions comme #define en "Définir" ou encore delay par "retard". Evidemment un débutant en ARDUINO ne s'en sortira pas. Ci-dessus un exemple corrigé : /* Capteur de température analogique LM35 avec exemple de code Arduino. Plus d'infos : https://www.makerguides.com */ #define capteurTemp A2 // Définit la broche à laquelle le LM35 est connecté void setup() { Serial.begin(9600); } void loop() { int lecture = analogRead(capteurTemp); // Lit la valeur renvoyée par le capteur int tension = lecture * (5000/1024.0); // Convertit la lecture en tension int temp = tension / 10 ; // Convertit la tension en température en degré Celsius // Affiche la température dans le Moniteur Série Serial.print(temp); Serial.print(" \xC2\xB0"); // affiche le symbole du degré Serial.println("C"); delay(5000); // attend une seconde entre les lectures }

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Main Menu

بحاجة الى مساعدة ؟