Arduino Nano - Sensor de temperatura LM35

Este tutorial te enseña cómo usar Arduino Nano para leer la temperatura del sensor LM35. En detalle, aprenderemos:

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
1×LM35 Temperature Sensor
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del sensor de temperatura LM35

La disposición de pines del sensor de temperatura LM35

El sensor de temperatura LM35 tiene tres pines:

  • Pin GND: Debe conectarse a la tierra (0 V).
  • Pin VCC: Debe conectarse al VCC (5 V).
  • Pin OUT: Esta señal de salida proporciona una tensión de salida que es linealmente proporcional a la temperatura y debe conectarse a un pin analógico en Arduino Nano.
Pinout del sensor de temperatura LM35

Cómo funciona

El LM35 produce una tensión que es linealmente proporcional a la temperatura en grados Celsius. Su factor de escala de salida es de 10 mV/°C, lo que significa que la temperatura puede determinarse dividiendo la tensión (en mV) de la salida entre 10.

Diagrama de Cableado

Diagrama de cableado del sensor de temperatura LM35 para Arduino Nano.

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

Cómo programar para el sensor de temperatura LM35

  • Obtenga el valor ADC del sensor de temperatura utilizando la función analogRead().
int adcVal = analogRead(PIN_LM35);
  • Transforma el valor del ADC en una tensión en milivoltios.
float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION);
  • Transforma el voltaje en temperatura en grados Celsius.
float temperature_C = milliVolt / 10;
  • Opcional: Convertir de Celsius a Fahrenheit.
float temperature_F = temperature_C * 9 / 5 + 32;

Código de Arduino Nano

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/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); }

Pasos R\u00e1pidos

  • Copia el código y ábrelo en el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE para enviarlo a tu Arduino Nano.
  • Sostén el sensor en tu mano.
  • Consulta el resultado en el Monitor Serial.
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  

Mejorando la precisión de la temperatura

En el código anterior, la tensión de referencia del ADC se establece en el valor predeterminado de 5 V (5000 mV). Para aumentar la resolución de temperatura, la tensión de referencia puede cambiarse a INTERNAL, que es de 1,1 V a 1100 mV, utilizando la función analogReference().

Esta tabla muestra la diferencia entre las tensiones de referencia de 5000 mV y 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

Código de Arduino Nano

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/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); }

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Referencias de funciones

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!