Guide des capteurs de température LM35, LM335 et LM34 avec Arduino

Guide des capteurs de température LM35, LM335 et LM34 avec Arduino

Ce guide montre comment utiliser les capteurs de température LM35 (LM35DZ), LM335 et LM34 avec la carte Arduino. Nous allons vous montrer comment câbler les capteurs et écrire le code pour obtenir des lectures de température. Enfin, nous allons créer un exemple de projet pour afficher les lectures des capteurs sur un écran OLED.

LM35 LM35DZ LM34 LM335 Carte Arduino OLED température Celsius Fahrenheit lectures

Présentation des capteurs de température LM35, LM335 et LM34

Les LM35, LM335 et LM34 sont des capteurs de température linéaires qui délivrent une tension proportionnelle à la valeur de la température.

Capteur de température Tension de sortie Linéarité
LM35 (LM35DZ) proportionnel à la température dans Celsius (°C) 10mV/ºC
LM335 proportionnel à la température dans Kelvin (°K) 10mV/ºK
LM34 proportionnel à la température dans Fahrenheit (°F) 10mV/ºF

Ces capteurs fonctionnent de manière similaire, mais sont calibrés différemment pour produire une tension proportionnelle aux différentes unités de température.

Le LM35 délivre 10 mV par degré Celsius d’augmentation de température. De la même manière, le LM335 délivre 10 mV par degré Kelvin d’élévation de température et le LM34 délivre 10 mV par degré Fahrenheit d’élévation de température.

Par exemple, si le LM35 délivre une tension de 345 mV, cela signifie que nous avons une valeur de température de 34,5°C.

Pour plus d’informations sur ces capteurs, vous pouvez consulter leur fiche technique :

Où acheter?

Tu peux aller à Conseiller fabricant pour trouver le meilleur prix des Capteurs de température dans différents magasins :

Brochage LM35 (LM35DZ)

Le LM35 n’a que trois broches, VCC, Vout et GND.

Brochage LM35 LM35DZ.  Broches : VCC, Vout et GND

Voici les connexions que vous devez faire entre le LM35 et l’Arduino :

LM35 / LM34 Arduino
VCC 5V
Vout N’importe quelle broche analogique
GND GND

Noter: si vous utilisez un capteur de température LM34, le brochage est le même que celui du LM35.

Brochage LM335

Le brochage du capteur de température LM335 est légèrement différent.

Brochage LM335 LM335Z.  Broches : VCC, Vout et GND
LM335 Arduino
Ajuster Ne pas se connecter
Vout N’importe quelle broche analogique (tirez avec une résistance de 2k Ohm)
GND GND

le adj La broche peut être utilisée pour calibrer le capteur et obtenir des lectures de température plus précises. Nous n’utiliserons pas cette broche dans ce didacticiel, elle doit donc être laissée déconnectée.

Diagramme schématique

Vous devez suivre le même schéma, que vous utilisiez un capteur de température LM35 ou LM34. Vous devez suivre un schéma légèrement différent si vous utilisez le LM335.

LM35 et LM34 avec Arduino

Schéma de câblage LM35 / LM35DZ et LM34 vers Arduino

LM335 avec Arduino

Schéma de câblage LM335 et LM34 vers Arduino

Code – Lire la température

Schéma de câblage OLED de la carte Arduino LM35 LM35DZ LM34 LM335

Le code suivant lit la température du capteur LM35 et affiche les lectures dans le moniteur série. Ce code est également compatible avec les LM335 et LM34 – il vous suffit de décommenter certaines lignes du code pour utiliser le bon capteur.

/*
 * Rui Santos
 * Complete Project Details https://Raspberryme.com
 */
 
const int sensorPin = A0; 
float sensorValue;
float voltageOut;

float temperatureC;
float temperatureF;

// uncomment if using LM335
//float temperatureK;

void setup() {
  pinMode(sensorPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  sensorValue = analogRead(sensorPin);
  voltageOut = (sensorValue * 5000) / 1024;
  
  // calculate temperature for LM35 (LM35DZ)
  temperatureC = voltageOut / 10;
  temperatureF = (temperatureC * 1.8) + 32;

  // calculate temperature for LM335
  //temperatureK = voltageOut / 10;
  //temperatureC = temperatureK - 273;
  //temperatureF = (temperatureC * 1.8) + 32;

  // calculate temperature for LM34
  //temperatureF = voltageOut / 10;
  //temperatureC = (temperatureF - 32.0)*(5.0/9.0);

  Serial.print("Temperature(ºC): ");
  Serial.print(temperatureC);
  Serial.print("  Temperature(ºF): ");
  Serial.print(temperatureF);
  Serial.print("  Voltage(mV): ");
  Serial.println(voltageOut);
  delay(1000);
}

Afficher le code brut

Comment fonctionne le code

Vous commencez par définir la broche qui est connectée à la sortie du capteur. Ce doit être une broche analogique. Nous utilisons une épingle A0, mais vous pouvez utiliser n’importe quelle autre broche analogique.

const int sensorPin = A0;

Définissez une variable qui contiendra la valeur analogique lue par le capteur :

float sensorValue;

le tensionSortie La variable stockera la valeur de sortie de tension réelle provenant du capteur.

float voltageOut;

Ensuite, créez des variables qui stockeront la valeur de température. Ici, nous créons un températureC et un températureF variables pour maintenir la température en degrés Celsius et Fahrenheit, respectivement.

float temperatureC;
float temperatureF;

Si vous utilisez le capteur LM335, vous avez également besoin d’une variable pour maintenir la température en Kelvin. Donc, si vous utilisez ce capteur, vous devez décommenter la ligne suivante :

//float temperatureK;

Dans le mettre en place(), déclare le capteurPin en entrée :

pinMode(sensorPin, INPUT);

Initialisez une communication série à un débit en bauds de 9600. Vous devez initialiser la communication série afin de pouvoir afficher les lectures sur le moniteur série :

Serial.begin(9600);

Dans le boucler(), lisez la valeur provenant de votre capteur et enregistrez-la dans tensionSortie variable. Pour lire une valeur analogique avec Arduino il suffit d’utiliser analogRead() fonction et passez la broche que vous voulez lire comme argument.

voltageOut = analogRead(sensorPin);

Comme mentionné précédemment, ces capteurs délivrent une valeur de tension proportionnelle à la température.

Les valeurs analogiques lues à partir de l’Arduino peuvent avoir une valeur comprise entre 0 et 1024, où 0 correspond à 0V et 1024 à 5V. Ainsi, nous pouvons facilement obtenir la tension de sortie du capteur en mV.

voltageOut = (sensorValue * 5000) / 1024

Dans le cas du capteur LM35, nous avons vu que 10 mV correspond à une élévation de température d’un degré Celsius. Ainsi, la température en Celsius correspond à la tension lue par le capteur en mV divisée par 10mV.

temperatureC = voltageOut / 10;

Pour obtenir la température en Fahrenheit, il suffit d’utiliser la conversion Celsius -> Fahrenheit :

temperatureF = (temperatureC * 1.8) + 32;

Si vous utilisez un LM335 ou un LM34, vous utilisez les mêmes calculs pour obtenir la température. Vous devez juste garder à l’esprit que le LM335 renvoie la température en degrés Kelvin et le LM34 en degrés Fahrenheit. Ensuite, vous pouvez convertir les valeurs dans d’autres unités si nécessaire.

Enfin, imprimez les lectures des capteurs sur le moniteur série en degrés Celsius et Fahrenheit.

Serial.print("Temperature(ºC): ");
Serial.print(temperatureC);
Serial.print("  Temperature(ºF): ");
Serial.print(temperatureF);

À des fins de débogage, nous imprimons également la tension.

Serial.print("  Voltage(mV): ");
Serial.println(voltageOut);

le boucler() est répété toutes les secondes.

delay(1000);

Manifestation

Téléchargez le code sur votre IDE Arduino. N’oubliez pas de sélectionner la bonne carte et le bon port COM dans le menu Outils.

Après cela, ouvrez le moniteur série à un débit en bauds de 9600. Vous devriez obtenir de nouvelles lectures de température toutes les secondes. Vous pouvez couvrir le capteur avec votre doigt pour voir les valeurs de température augmenter.

Capteurs de température LM35/LM35DZ, LM335 et LM34 avec carte Arduino.  Imprimer les lectures série dans Arduino IDE Serial Monitor

Lectures de température sur l’écran OLED

Dans cette section, nous allons vous montrer comment afficher les lectures de vos capteurs dans un Écran OLED.

Pour un didacticiel détaillé sur l’utilisation de l’écran OLED avec l’Arduino, suivez le guide suivant :

Pièces requises

Pour ce projet, vous aurez besoin des pièces suivantes :

Vous pouvez utiliser les liens précédents ou aller directement sur MakerAdvisor.com/tools pour trouver toutes les pièces pour vos projets au meilleur prix !

1641274566 301 Guide des capteurs de temperature LM35 LM335 et LM34 avec

Diagramme schématique

Câblez tous les composants comme indiqué dans le schéma suivant :

Schéma de principe de l'affichage OLED Arduino LM35/LM35DZ

Installation des bibliothèques OLED

Pour contrôler l’écran OLED, vous avez besoin du adafruit_SSD1306.h et le adafruit_GFX.h bibliothèques. Suivez les instructions suivantes pour installer ces bibliothèques.

1. Ouvrez votre IDE Arduino et accédez à Esquisser > Inclure la bibliothèque > Gérer les bibliothèques. Le gestionnaire de bibliothèque devrait s’ouvrir.

2. Tapez « SSD1306” dans le champ de recherche et installez la bibliothèque SSD1306 d’Adafruit.

Installation de la carte Arduino UNO de la bibliothèque SSD1306 OLED

3. Après avoir installé la bibliothèque SSD1306 d’Adafruit, tapez « GFX » dans la zone de recherche et installez la bibliothèque.

Installation de la carte Arduino UNO de la bibliothèque GFX

4. Après avoir installé les bibliothèques, redémarrez votre IDE Arduino.

Code – Affichage des lectures sur OLED

Après avoir câblé le circuit et installé les bibliothèques requises, téléchargez le code suivant sur votre carte Arduino.

/*
 * Rui Santos
 * Complete Project Details https://Raspberryme.com
 */

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

const int sensorPin = A0; 
float sensorValue;
float voltageOut;

float temperatureC;
float temperatureF;

// uncomment if using LM335
//float temperatureK;

void setup() {
  pinMode(sensorPin, INPUT);
  Serial.begin(9600);

  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }
  
  delay(2000);
  display.clearDisplay();
  display.setTextColor(WHITE);
}

void loop() {
  sensorValue = analogRead(sensorPin);
  voltageOut = (sensorValue * 5000) / 1024;
  
  // calculate temperature for LM35 (LM35DZ)
  temperatureC = voltageOut / 10;
  temperatureF = (temperatureC * 1.8) + 32;

  // calculate temperature for LM335
  //temperatureK = voltageOut / 10;
  //temperatureC = temperatureK - 273;
  //temperatureF = (temperatureC * 1.8) + 32;

  // calculate temperature for LM34
  //temperatureF = voltageOut / 10;
  //temperatureC = (temperatureF - 32.0)*(5.0/9.0);

  Serial.print("Temperature(ºC): ");
  Serial.print(temperatureC);
  Serial.print("  Temperature(ºF): ");
  Serial.print(temperatureF);

  // clear display
  display.clearDisplay();

  // display temperature Celsius
  display.setTextSize(1);
  display.setCursor(0,0);
  display.print("Temperature: ");
  display.setTextSize(2);
  display.setCursor(0,10);
  display.print(temperatureC);
  display.print(" ");
  display.setTextSize(1);
  display.cp437(true);
  display.write(167);
  display.setTextSize(2);
  display.print("C");

  // display temperature Fahrenheit
  display.setTextSize(1);
  display.setCursor(0, 35);
  display.print("Temperature: ");
  display.setTextSize(2);
  display.setCursor(0, 45);
  display.print(temperatureF);
  display.print(" ");
  display.setTextSize(1);
  display.cp437(true);
  display.write(167);
  display.setTextSize(2);
  display.print("F");

  display.display();    
  delay(1000);
 }

Afficher le code brut

Manifestation

Toutes nos félicitations! Vous avez terminé le projet. Maintenant, vous pouvez vérifier les lectures du capteur sur l’écran OLED. De nouvelles lectures de température sont affichées toutes les secondes.

LM35 LM35DZ LM34 LM335 Arduino board OLED lectures de température d'affichage

Conclusion

Les LM35, LM335 et LM34 sont des capteurs de température linéaires qui délivrent une tension proportionnelle à la valeur de la température. Ils peuvent être alimentés par la broche Arduino 5V, et pour lire la tension, vous utilisez une broche analogique.

La lecture de la tension du capteur est aussi simple que d’utiliser le analogRead() fonction sur la broche du capteur. Ensuite, il vous suffit de faire un calcul simple pour obtenir la température dans l’unité souhaitée.

Nous espérons que vous avez trouvé ce guide utile. Nous avons d’autres guides sur les capteurs et modules Arduino que vous pourriez aimer :

Si vous aimez Arduino, vous aimerez aussi notre cours Arduino : Projets Arduino étape par étape

Merci d’avoir lu.

  • Marne 10 x LM35 LM35DZ CENTIGRADES CAPTEUR DE TEMPERATURE
    Courant de fonctionnement: moins de 133 Tension de fonctionnement: DC 4 ~ 30V; Plage de temprature nominale de fonctionnement: -55 ~ 150 Celsius. La tension de sortie: 6 V ~-1.0V
  • Mahnoor 10 x LM35 LM35DZ CENTIGRADES CAPTEUR DE TEMPERATURE
    de fonctionnement: moins de 133 La tension de sortie: 6 V ~-1.0V Tension de fonctionnement: DC 4 ~ 30V; de temprature nominale de fonctionnement: -55 ~ 150 Celsius.
  • POPESQ® 2 pcs. x LM335 Capteur de Temperature #A5347
    2 pcs. x LM335Z Capteur de temperature similaire LM35DZ / 2 pcs. x LM335Z Temperature sensor similar LM35DZ Analogue 10.0 mV/°K / Analog 10.0 mV/°K max. 1°C Tolerance / max. 1°C Tolerance -40...100°C (125°C) / -40...100°C (125°C) TO-92 / TO-92