Interfaz del sensor de temperatura LM35 con Arduino

Arduino es una plataforma de código abierto que ha revolucionado el mundo de la programación y la electrónica. Uno de los sensores más utilizados con Arduino es el LM35, que permite medir con precisión la temperatura ambiente. En este artículo, aprenderemos cómo conectar y utilizar el sensor de temperatura LM35 con Arduino para realizar diversas aplicaciones que requieran monitoreo térmico. ¡Sigue leyendo para descubrir todas las posibilidades que este sensor tiene para ofrecer!

Una de las formas más fáciles y rentables de agregar una medición de temperatura a su proyecto Arduino es utilizar el sensor de temperatura LM35. Estos sensores son bastante precisos y no requieren ningún componente externo para funcionar. Entonces, con solo unas pocas conexiones y algo de código Arduino, ¡puedes medir la temperatura en poco tiempo!

Sensor de temperatura LM35

El LM35 es un sensor de temperatura Celsius de precisión de bajo voltaje fabricado por Texas Instruments. Es un chip que proporciona una salida de voltaje linealmente proporcional a la temperatura en °C y por lo tanto es muy fácil de usar con un Arduino.

Interfaz del sensor de temperatura LM35 con Arduino

El sensor de temperatura LM35 es bastante preciso, nunca se desgasta, funciona en muchas condiciones ambientales y no requiere ningún componente externo para funcionar. Además, el sensor LM35 no requiere calibración y ofrece una precisión típica de ±0,5 °C a temperatura ambiente y ±1 °C en todo el rango de temperatura de -55 °C a +155 °C.

El sensor puede funcionar con una fuente de alimentación de 4 V a 30 V y consume menos de 60 µA durante las conversiones activas de temperatura, lo que garantiza un autocalentamiento muy bajo (menos de 0,08 °C en aire en calma).

Aquí están las especificaciones completas:

Fuente de alimentación 4V a 30V
Consumo de corriente 60 µA
Rango de temperatura −55 °C a +155 °C
exactitud ±0,5 °C
Factor de escala de salida 10mV/°C
Salida a 25°C 250mV

Puede encontrar más información en la siguiente hoja de datos.

El único inconveniente del sensor LM35 es que requiere una polarización negativa para medir temperaturas negativas. Entonces, si planea usar el sensor para medir temperaturas negativas, se recomienda usar el sensor de temperatura TMP36. El TMP36 de Analog Devices es bastante preciso (-40 °C a 125 °C) y tiene la ventaja de poder medir temperaturas negativas sin la necesidad de polarización negativa. A continuación se muestra un tutorial dedicado para el TMP36.

Interfaz del sensor de temperatura LM35 con Arduino
Interfaz del sensor de temperatura TMP36 con Arduino
Una de las formas más fáciles y rentables de agregar una medición de temperatura a su proyecto Arduino es utilizar el sensor de temperatura TMP36. Estos sensores son bastante…

Una mejor alternativa al LM35 es utilizar un sensor de temperatura digital como el DS18B20, incluido en el mismo paquete. Los sensores de temperatura digitales tienen una mejor inmunidad al ruido, lo cual resulta útil cuando el sensor se coloca lejos o en un entorno con ruido eléctrico.

Interfaz del sensor de temperatura LM35 con Arduino
Conexión del sensor de temperatura digital de 1 cable DS18B20 a Arduino
Una de las formas más fáciles y rentables de integrar sensores de temperatura en su proyecto Arduino es utilizar un sensor de temperatura de 1 cable DS18B20. Estos sensores…

Principio de funcionamiento

El LM35 utiliza tecnología de estado sólido para medir la temperatura. Se utiliza la caída de voltaje entre la base y el emisor (voltaje directo – V).Ser) de Transistor conmutado por diodo disminuye a un ritmo conocido a medida que aumenta la temperatura. Al amplificar con precisión este cambio de voltaje, es fácil generar una señal analógica que sea directamente proporcional a la temperatura.

Interfaz del sensor de temperatura LM35 con Arduino

Esta relación lineal entre el voltaje directo y la temperatura es la razón por la cual los transistores conectados por diodos se utilizan como dispositivos de medición de temperatura. Básicamente, así es como se mide la temperatura, aunque ha habido algunas mejoras en esta técnica a lo largo de los años. Puedes encontrar más información sobre esta técnica aquí. Aquí.

La buena noticia es que todos estos cálculos complejos se realizan en el LM35. Simplemente genera un voltaje que es linealmente proporcional a la temperatura.

Cómo medir la temperatura

El LM35 es fácil de usar; Simplemente conecte el pin izquierdo a la alimentación (4 V a 30 V) y el pin derecho a tierra (suponiendo que el lado plano del sensor esté hacia usted). Luego hay un voltaje analógico en el pin central que es directamente proporcional (lineal) a la temperatura en °C. Esto se puede ver fácilmente a partir de la característica del voltaje de salida versus la temperatura. Tenga en cuenta que el voltaje de salida analógica es independiente de la fuente de alimentación.

Interfaz del sensor de temperatura LM35 con Arduino

Para convertir voltaje a temperatura, simplemente use la fórmula básica:

Temperatura (°C) = Vsal * 100

Por ejemplo, si el voltaje de salida es 0,5 V, significa que la temperatura es 0,5 * 100 = 50 °C.


Probando el sensor LM35

Probar el LM35 es bastante fácil. Simplemente conecte el pin izquierdo a una fuente de alimentación de 4 a 30 V (cuatro baterías AA funcionan muy bien) y el pin derecho a tierra (suponiendo que el lado plano del sensor esté hacia usted). Ahora conecte su multímetro a tierra y al pin del medio en modo de voltaje CC. A temperatura ambiente (25°C), el voltaje debe ser de aproximadamente 0,25 V.

Intente apretar ligeramente la carcasa de plástico del sensor para observar un aumento de temperatura.

Interfaz del sensor de temperatura LM35 con Arduino

O intente tocar el sensor con un cubito de hielo (en una bolsa de plástico para que su circuito no entre en contacto con el agua) y observe cómo baja la temperatura.

Interfaz del sensor de temperatura LM35 con Arduino

Distribución de pines del sensor LM35

El LM35 está disponible en tres factores de forma diferentes, pero el tipo más común es el encapsulado TO-92 de 3 pines, que luce exactamente como un transistor. Echemos un vistazo al pinout.


Interfaz del sensor de temperatura LM35 con Arduino

+vs es la fuente de alimentación del sensor, que puede estar entre 4V y 30V.

votar El pin produce un voltaje analógico que es directamente proporcional (lineal) a la temperatura. Debe estar conectado a una entrada analógica (ADC).

Tierra es un pin de tierra.

Conexión del sensor de temperatura LM35 a un Arduino

Conectar el LM35 a un Arduino es muy fácil. Sólo necesitas conectar tres pines: dos de alimentación y uno para leer el valor del sensor.

El sensor se puede alimentar con 5V. El voltaje positivo está conectado a “+Vs” y la tierra está conectada a “GND”. El pin central “Vout” es la salida de señal analógica del sensor y está conectado a la entrada analógica A0 de un Arduino.

A continuación se muestra la conexión para los experimentos con el LM35:

Interfaz del sensor de temperatura LM35 con Arduino

Para medir la temperatura del aire, deje el sensor al aire libre o conéctelo a un objeto cuya temperatura desee medir, como un disipador de calor.

Lectura de los datos de temperatura analógicos

Como puede ver en el esquema anterior, la salida del LM35 está conectada a una de las entradas analógicas del Arduino. El valor de esta entrada analógica también se puede leer analogRead() Función.


Sin embargo, eso es analogRead() En realidad, la función no devuelve el voltaje de salida del sensor. En cambio, el voltaje de entrada entre 0 y el voltaje de referencia del ADC (técnicamente es el voltaje de funcionamiento, por lo que 5 V o 3,3 V a menos que lo cambie) se asigna a valores enteros de 10 bits en el rango de 0 a 1023. Para convertir este valor nuevamente a Para encontrar el voltaje de salida del sensor, use esta fórmula:

Vout = (leído del ADC) * (5/1024)

Esta fórmula convierte el número 0-1023 del ADC a 0-5V


Luego, para convertir voltios a temperatura, use esta fórmula:

Temperatura (°C) = Vsal * 100

Código Arduino – Termómetro simple

El siguiente esquema muestra una forma rápida de leer el sensor de temperatura LM35 y puede servir como base para futuros experimentos y proyectos prácticos. Simplemente lee el valor del LM35 a través del puerto analógico A0 e imprime la temperatura actual (en °C y °F) en el monitor serie. Continúe y cárguelo en su Arduino.

// Define the analog pin, the LM35's Vout pin is connected to
#define sensorPin A0

void setup() {
  // Begin serial communication at 9600 baud rate
  Serial.begin(9600);
}

void loop() {
  // Get the voltage reading from the LM35
  int reading = analogRead(sensorPin);

  // Convert that reading into voltage
  float voltage = reading * (5.0 / 1024.0);

  // Convert the voltage into the temperature in Celsius
  float temperatureC = voltage * 100;

  // Print the temperature in Celsius
  Serial.print("Temperature: ");
  Serial.print(temperatureC);
  Serial.print("xC2xB0"); // shows degree symbol
  Serial.print("C  |  ");
  
  // Print the temperature in Fahrenheit
  float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
  Serial.print(temperatureF);
  Serial.print("xC2xB0"); // shows degree symbol
  Serial.println("F");

  delay(1000); // wait a second between readings
}

Debería ver el siguiente resultado en el monitor serie.

Interfaz del sensor de temperatura LM35 con Arduino

Explicación del código:

El boceto comienza definiendo el pin Arduino al que está conectado el pin Vout del sensor.

#define sensorPin A0

En la configuración inicializamos la conexión serie a la computadora.

void setup() {
  Serial.begin(9600);
}

En el bucle primero leemos la señal analógica del LM35. analogRead() Función.

int reading = analogRead(sensorPin);

A continuación, utilizamos las fórmulas que analizamos anteriormente en este artículo para convertir la lectura analógica a voltaje y luego a temperatura.

float voltage = reading * (5.0 / 1024.0);

float temperatureC = voltage * 100;

Luego, los resultados se imprimen en el monitor serie.

Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.print("xC2xB0"); // shows degree symbol
Serial.print("C  |  ");

El valor de temperatura que obtenemos es en grados Celsius (°C). Se convierte a Fahrenheit (°F) mediante una fórmula sencilla y se imprime en el monitor de serie.

t(°F) =T(ºC) × 9/5 + 32

float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.print(temperatureF);
Serial.print("xC2xB0"); // shows degree symbol
Serial.println("F");

Proyecto Arduino: termómetro independiente con LM35 y una pantalla LCD I2C

A veces se le ocurre la idea de mostrar las lecturas de temperatura en tiempo real y mostrar una alerta cuando la temperatura está fuera del rango especificado. Entonces probablemente necesite una pantalla LCD de 16 × 2 caracteres en lugar de un monitor en serie.

En este ejemplo, conectamos la pantalla LCD I2C al Arduino junto con el LM35.

Conectar la pantalla LCD I2C es bastante simple, como puede ver en el siguiente esquema. Si no está familiarizado con las pantallas LCD I2C, debe leer (al menos hojear) el siguiente tutorial.

Interfaz del sensor de temperatura LM35 con Arduino
Conecte una pantalla LCD I2C a Arduino
Si alguna vez has intentado conectar una pantalla LCD a un Arduino, probablemente hayas notado que utiliza muchos pines Arduino. Incluso en…

El siguiente diagrama le muestra cómo cablear todo.

Interfaz del sensor de temperatura LM35 con Arduino

El siguiente boceto imprime los valores de temperatura en la pantalla LCD I2C. El código es similar al ejemplo anterior excepto que los valores están impresos en la pantalla LCD I2C.

// Include the LiquidCrystal_I2C library
#include <LiquidCrystal_I2C.h>

// Create a new instance of the LiquidCrystal_I2C class
LiquidCrystal_I2C lcd(0x3F, 16, 2);

// Define a custom degree character
byte Degree[] = {
  B00111,
  B00101,
  B00111,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};

// Define the analog pin, the LM35's Vout pin is connected to
#define sensorPin A0

void setup() {
  // Start the LCD and turn on the backlight
  lcd.init();
  lcd.backlight();

  // Create a custom character
  lcd.createChar(0, Degree);
}

void loop() {
  // Get the voltage reading from the LM35
  int reading = analogRead(sensorPin);

  // Convert that reading into voltage
  // Replace 5.0 with 3.3, if you are using a 3.3V Arduino
  float voltage = reading * (5.0 / 1024.0);

  // Convert the voltage into the temperature in Celsius
  float temperatureC = voltage * 100;

  // Print the temperature on the LCD;
  lcd.setCursor(0, 0);
  lcd.print("Temperature:");
  lcd.setCursor(0, 1);
  lcd.print(temperatureC, 1);
  lcd.write(0); // print the custom degree character
  lcd.print("C ");
  
  // Print the temperature in Fahrenheit
  float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
  lcd.print(temperatureF, 1);
  lcd.write(0); // print the custom degree character
  lcd.print("F ");

  delay(1000); // wait a second between readings
}

Debería ver el siguiente resultado en la pantalla LCD:

Interfaz del sensor de temperatura LM35 con Arduino
Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Interfaz del sensor de temperatura LM35 con Arduino

Descripción del sensor de temperatura LM35

El LM35 es un sensor de temperatura centígrado de precisión de baja tensión fabricado por Texas Instruments. Este chip proporciona una salida de voltaje que es linealmente proporcional a la temperatura en °C y es muy fácil de usar con un Arduino.

El LM35 es un sensor de temperatura bastante preciso, que nunca se desgasta, funciona en diversas condiciones ambientales y no necesita componentes externos para funcionar. Además, el sensor LM35 no requiere calibración y ofrece una precisión típica de ±0.5°C a temperatura ambiente y ±1°C en un rango completo de temperatura de −55°C a +155°C.

Para más información, consulte la hoja de datos aquí.

Principio de funcionamiento

El LM35 utiliza una técnica de estado sólido para medir la temperatura. Aprovecha el hecho de que la caída de voltaje entre la base y el emisor (voltaje directo – Vbe) del transistor conectado en diodo disminuye a una tasa conocida a medida que la temperatura aumenta. Al amplificar precisamente este cambio de voltaje, es fácil generar una señal analógica que es directamente proporcional a la temperatura.

Esta relación lineal entre el voltaje directo y la temperatura es la razón por la que se utilizan transistores conectados en diodo como dispositivos de medición de temperatura. Esencialmente, así es como se mide la temperatura, aunque ha habido algunas mejoras en esta técnica a lo largo de los años.

Cómo medir la temperatura

El LM35 es fácil de usar; simplemente conecte el pin izquierdo a la alimentación (4V a 30V) y el pin derecho a tierra. Luego, el pin central tendrá un voltaje analógico que es directamente proporcional (lineal) a la temperatura en °C. Para convertir el voltaje en temperatura, simplemente use la fórmula básica:

Temperatura (°C) = Vout * 100

Por ejemplo, si el voltaje de salida es 0.5V, eso significa que la temperatura es 0.5 * 100 = 50 °C.

Conectar el sensor LM35 a un Arduino

Conectar el LM35 a un Arduino es muy sencillo. Solo necesitas conectar tres pines: dos para la alimentación y uno para leer el valor del sensor. La salida del sensor se puede alimentar desde 5V. El voltaje positivo se conecta a ‘+Vs’ y la tierra se conecta a ‘GND’. El pin central ‘Vout’ es la salida de la señal analógica del sensor y se conecta al pin de entrada analógica A0 de un Arduino.

En cuanto al código para leer la temperatura del sensor LM35 en un Arduino, puedes utilizar el siguiente código:

«`evitar-salto-de-vueltas
// Define el pin analógico, el pin Vout del LM35 está conectado a
#define sensorPin A0

void setup() {
// Iniciar comunicación serial a una velocidad de 9600 baudios
Serial.begin(9600);
}

void loop() {
// Obtener la lectura de voltaje del LM35
int lectura = analogRead(sensorPin);

// Convertir esa lectura en voltaje
float voltaje = lectura * (5.0 / 1024.0);

// Convertir el voltaje en temperatura en Celsius
float temperaturaC = voltaje * 100;

// Imprimir la temperatura en Celsius
Serial.print(«Temperature: «);
Serial.print(temperaturaC);
Serial.print(«xC2xB0»); // muestra el símbolo de grados
Serial.print(«C | «);

// Imprimir la temperatura en Fahrenheit
float temperaturaF = (temperaturaC * 9.0 / 5.0) + 32.0;
Serial.print(temperaturaF);
Serial.print(«xC2xB0»); // muestra el símbolo de grados
Serial.println(«F»);

delay(1000); // esperar un segundo entre lecturas
}
«`

Este código te permitirá medir y mostrar la temperatura del sensor LM35 en tu proyecto de Arduino.

Proyecto Arduino – Termómetro autónomo con LM35 y una pantalla LCD I2C

Si deseas mostrar las lecturas de temperatura en tiempo real y recibir una alerta cuando la temperatura esté fuera del rango especificado, necesitarás una pantalla LCD de 16×2 caracteres en lugar de un monitor serial. Uno de los térmetros autónomos que puedes hacer es utilizar un LCD I2C.

Te compartimos el siguiente diagrama de conexión, para aprender más sobre la conexión de una pantalla LCD con Arduino, considera leer el siguiente tutorial: Enlace al tutorial.

¡Disfruta explorando y experimentando con el sensor de temperatura LM35 en tus proyectos de Arduino!

3 comentarios en «Interfaz del sensor de temperatura LM35 con Arduino»

Deja un comentario