Arduino - Capteur de température LM35

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×LM35 Temperature Sensor
1×Breadboard
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du capteur de température LM35

Brochage

Le capteur de température LM35 possède trois broches :

  • Broche GND : doit être connectée à GND (0V)
  • Broche VCC : doit être connectée à VCC (5V)
  • Broche OUT : broche de signal qui donne une tension de sortie proportionnelle linéairement à la température, doit être connectée à une broche analogique sur Arduino.
Brochage du capteur de température LM35

Comment ça fonctionne

Le LM35 émet une tension linéairement proportionnelle à la température en degrés Celsius. Le facteur d'échelle de sortie du LM35 est de 10 mV/°C. Cela signifie que la température est calculée en divisant la tension (mV) sur la broche de sortie par 10.

Diagramme de câblage

Schéma de câblage du capteur de température Arduino LM35

This image is created using Fritzing. Click to enlarge image

Comment programmer pour le capteur de température LM35

  • Obtenez la valeur ADC du capteur de température en utilisant la fonction analogRead().
int adcVal = analogRead(PIN_LM35);
  • Convertissez la valeur ADC en tension en millivolts.
float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION);
  • Convertir la tension en température en Celsius.
float tempC = milliVolt / 10;
  • (Facultatif) Convertissez les degrés Celsius en degrés Fahrenheit.
float tempF = tempC * 9 / 5 + 32;

Code Arduino

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-lm35-temperature-sensor */ #define ADC_VREF_mV 5000.0 // in millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A0 void setup() { Serial.begin(9600); } void loop() { // get the ADC value from the temperature sensor int adcVal = analogRead(PIN_LM35); // convert the ADC value to voltage in millivolt float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION); // convert the voltage to the temperature in Celsius float tempC = milliVolt / 10; // convert the Celsius to Fahrenheit float tempF = tempC * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("Temperature: "); Serial.print(tempC); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempF); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Étapes rapides

  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload de l'IDE Arduino pour téléverser le code vers l'Arduino
  • Saisissez le capteur avec votre main
  • Consultez le résultat sur le moniteur série.
COM6
Send
Temperature: 26.31°C ~ 79.36°F Temperature: 26.44°C ~ 79.59°F Temperature: 26.50°C ~ 79.70°F Temperature: 26.56°C ~ 79.81°F Temperature: 27.06°C ~ 80.71°F Temperature: 27.75°C ~ 81.95°F Temperature: 28.37°C ~ 83.07°F Temperature: 29.00°C ~ 84.20°F Temperature: 29.56°C ~ 85.21°F Temperature: 30.00°C ~ 86.00°F Temperature: 30.31°C ~ 86.56°F Temperature: 30.62°C ~ 87.12°F Temperature: 30.87°C ~ 87.57°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Amélioration de la précision de la température

Dans le code ci-dessus, nous utilisons par défaut la tension de référence de l'ADC (5V~5000mV). Nous pouvons augmenter la résolution de la température en changeant la tension de référence en INTERNE (1.1V~1100mV). Cette tension de référence peut être modifiée à l'aide de la fonction analogReference().

Le tableau ci-dessous montre la différence entre l'utilisation d'une tension de référence de 5000 mV et de 1100 mV.

Vref(mV) 5000 mV (by default) 1100 mV (INTERNAL)
Reading Resolution 5000/1024 = 4.88 mV 1100/1024 = 1.07 mV
Temperature Resolution 0.488 °C 0.107 °C
Temperature Range 0 to 500 °C 0 to 110 °C

Code Arduino

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-lm35-temperature-sensor */ #define ADC_VREF_mV 1100.0 // in millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A0 void setup() { Serial.begin(9600); // switch to Internal 1.1V Reference analogReference(INTERNAL); } void loop() { // get the ADC value from the temperature sensor int adcVal = analogRead(PIN_LM35); // convert the ADC value to voltage in millivolt float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION); // ADC_VREF_mV = 1100 mV // convert the voltage to the temperature in Celsius float tempC = milliVolt / 10; // convert the Celsius to Fahrenheit float tempF = tempC * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("Temperature: "); Serial.print(tempC); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempF); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Vidéo

Références de fonction

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!