Thermomètre simple à base d’Arduino et le capteur LM35 avec écran LCD
Vidéo tuto
Bonjour, j’espère que vous allez bien, dans ce tuto on va voir comment faire un thermomètre simple avec la carte Arduino et le capteur de température LM35 (spécifiquement LM35DZ), c’est un projet pour débutant afin de se familiariser avec la carte d’Arduino UNO, l’utilisation de l’écran LCD i2c ainsi que l’utilisation d’un capteur analogue simple.
Matériel et composants:
Pour ce projet on aura besoin de:
- Carte Arduino, j’ai utilisé UNO.
- Capteur LM35DZ.
- Ecran LCD, j’ai utilisé la version I2C.
Le choix de la carte Arduino UNO, c’est pour sa popularité et simplicité, vous pouvez utiliser bien sûr d’autres versions. Pour l’écran d’affichage j’utilise généralement l’écran LCD i2c, l’utilisation du module i2c permet d’utiliser seulement 4 pins d’Arduino dont deux pour l’alimentation, au lieu de la version standard qui utilise 8 pins, et enfin j’ai choisi le capteur LM35DZ parce que c’est un capteur analogique qui ne nécessite pas de librairie d’Arduino pour fonctionner.
Le capteur est idéal pour un projet de débutant, pour mesurer la température ambiante, et voici quelques autres information sur le capteur:
- Le capteur est linéaire, ça veut dire que le signal de sortie est proportionnel à la température mesurée.
- La plage de mesure est 0-100°C pour la version D, pour d’autre version la plage peut aller depuis -55°C jusqu’à 155°C, on restera avec la version D.
- Tension d’alimentation varie de 4 à 30V, on utilisera avec l’Arduino qui utilise 5V comme tension nominale.
- Chaque 10 mV représente 1°C
- Il y a d’autres caractéristiques que vous pouvez trouver directement sur la fiche technique.

Schémas de câblage
Le capteur utilise 2 broches pour l’alimentation, gauche pour 5V et la droite pour la masse (Gnd), et utilise 2 broches pour la sortie , celle du milieu et celle de droite pur la masse (Gnd), oui la même masse, si vous utilisez une alimentation externe pour le capteur il faut veiller à utiliser la même masse.
L’écran LCD à 4 pins: Vcc et Gnd pour l’alimentation en 5V, SDA/SLC sont branchés avec les broches analogiques A4/A5.
Schéma 1

Schéma 2: Ajout de l’afficheur LCD i2c

Librairies
Une librairie est nécessaire pour le fonctionnement de l’écran LCD, vous pouvez télécharger ici.
Codes
Vous pouvez télécharger le code ici, ou vous pouvez copier ci-dessous.
Code 1
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
//Thermomètre avec Arduino, LM35dz et LCD i2c //SurtrTech Youtube channel #include <LiquidCrystal_I2C.h> float temp; //Variable pour stocker la valeur de la température int tempPin = 0; //Définition de la broche utilisé pour le capteur,0 signifie A0 #define I2C_ADDR 0x27 //Adresse de l'écran LCD i2c #define BACKLIGHT_PIN 3 //LCD Stuffs :D #define En_pin 2 #define Rw_pin 1 #define Rs_pin 0 #define D4_pin 4 #define D5_pin 5 #define D6_pin 6 #define D7_pin 7 LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin); void setup() { Serial.begin(9600); lcd.begin (16,2); //Résolutions de l'écran LCD lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); //Eclairage de LCD lcd.setBacklight(HIGH); lcd.home (); } void loop() { temp = analogRead(tempPin); //Lire la valeur mesurée par le capteur temp = temp * 0.48828125; //Calcul pour faire l'étalonnage du capteur, voir le siteweb pour l'explication lcd.clear(); //Effacer l'écran lcd.setCursor (0,0); //début d'écriture sur l'écran lcd.print("Temperature"); lcd.setCursor (0,1); lcd.print(temp); //Valeur de la température lcd.print(" C"); delay(1000); //délai de 1s puis répeter } |
Code 2 : Utilisation simple avec le moniteur série
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
/* Ceci est un code à utiliser avec le capteur LM35DZ * On mesure et on affiche la valeur de la température sur le moniteur série * Veuillez visiter https://SurtrTech.com pour plus de détails */ float temp; //Variable pour stocker la valeur de la température #define Broche_LM35 0 //Broche de sortie du captuer LM35 void setup() { Serial.begin(9600); //Taux de baude du moniteur série } void loop() { temp = analogRead(Broche_LM35); //Lire la valeur mesurée par le capteur temp = temp * 0.48828125; //Calcul pour faire l'étalonnage du capteur, 0-5V qui est 0-1024 correspond à 0-100°C avec une résolution de 10mV pour chaque °C //(5/(1024*10)) = 0.4882... Serial.print("Température: "); //Ce qu'on affiche sur le moniteur série Serial.print(temp); Serial.println(" °C"); delay(1000); //délai de 1s puis répeter } |
Code 3: à utiliser avec l’afficheur LCD i2c
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
/* Ceci est un code à utiliser avec le capteur LM35DZ et l'afficheur LCD i2c * On mesure et on affiche la valeur de la température sur l'afficheur LCD * Veuillez visiter https://SurtrTech.com pour plus de détails */ #include <LiquidCrystal_I2C.h> float temp; //Variable pour stocker la valeur de la température #define Broche_LM35 0 //Broche de sortie du captuer LM35 #define I2C_ADDR 0x27 //Adresse de l'écran LCD i2c #define BACKLIGHT_PIN 3 //LCD Stuffs :D #define En_pin 2 #define Rw_pin 1 #define Rs_pin 0 #define D4_pin 4 #define D5_pin 5 #define D6_pin 6 #define D7_pin 7 LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin); void setup() { lcd.begin (16,2); //Résolutions de l'écran LCD lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); //Eclairage de LCD lcd.setBacklight(HIGH); } void loop() { temp = analogRead(Broche_LM35); //Lire la valeur mesurée par le capteur temp = temp * 0.48828125; //Calcul pour faire l'étalonnage du capteur, 0-5V qui est 0-1024 correspond à 0-100°C avec une résolution de 10mV pour chaque °C //(5/(1024*10)) = 0.4882... lcd.clear(); //Effacer l'écran lcd.setCursor (0,0); //début d'écriture sur l'écran lcd.print("Temperature:"); lcd.setCursor (0,1); lcd.print(temp); //Valeur de la température lcd.print(" C"); delay(1000); //délai de 1s puis répeter } |
Categories
Yassine View All
Automation and Electrical Engineer, Electronics amateur trying to share my little projects.
