Arduino Nano - Capteur de température LM35

Ce tutoriel vous explique comment utiliser un Arduino Nano pour lire la température à partir d'un capteur LM35. En détail, nous apprendrons :

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
1×LM35 Temperature Sensor
1×Breadboard
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino Nano
1×(Recommended) Screw Terminal Adapter for Arduino Nano

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 du capteur de température LM35

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

  • Broche GND : Elle doit être connectée à la masse (0V).
  • Broche VCC : Elle doit être connectée au VCC (5V).
  • Broche OUT : Cette broche de signal fournit une tension de sortie qui est proportionnelle linéairement à la température et doit être connectée à une broche analogique sur Arduino Nano.
Brochage du capteur de température LM35

Comment ça marche

Le LM35 produit une tension qui est proportionnelle de manière linéaire à la température en degrés Celsius. Son facteur d'échelle de sortie est de 10 mV/°C, ce qui signifie que la température peut être déterminée en divisant la tension (en mV) à la broche de sortie par 10.

Diagramme de câblage

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

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);
  • Transformez la valeur ADC en une tension en millivolts.
float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION);
  • Transformez la tension en température Celsius.
float temperature_C = milliVolt / 10;
  • Facultatif : Convertir le Celsius en Fahrenheit.
float temperature_F = temperature_C * 9 / 5 + 32;

Code Arduino Nano

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-lm35-temperature-sensor */ #define ADC_VREF_mV 5000.0 // in millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A6 // The Arduino Nano pin connected to LM35 sensor 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 temperature_C = milliVolt / 10; // convert the Celsius to Fahrenheit float temperature_F = temperature_C * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("Temperature: "); Serial.print(temperature_C); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(temperature_F); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Étapes rapides

  • Copiez le code et ouvrez-le dans l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE pour l'envoyer à votre Arduino Nano.
  • Tenez le capteur dans 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, la tension de référence de l'ADC est définie par défaut à 5V soit 5000mV. Pour augmenter la résolution de la température, la tension de référence peut être modifiée en INTERNAL, soit 1.1V ou 1100mV, en utilisant la fonction analogReference().

Ce tableau montre le contraste entre les tensions de référence de 5000mV et 1100mV.

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 Nano

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-lm35-temperature-sensor */ #define ADC_VREF_mV 1100.0 // in millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A6 // The Arduino Nano pin connected to LM35 sensor 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 temperature_C = milliVolt / 10; // convert the Celsius to Fahrenheit float temperature_F = temperature_C * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("Temperature: "); Serial.print(temperature_C); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(temperature_F); // 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!