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.
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.
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.
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.
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.
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.
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.
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.
+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:
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.
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.
El siguiente diagrama le muestra cómo cablear todo.
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
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!
¡Este artículo es genial! Me ayudó a entender cómo funciona el sensor de temperatura LM35 con Arduino de una manera sencilla. ¡Gracias por compartir!
¡Excelente explicación sobre cómo usar el LM35 con Arduino! Me ayudó a tener una mejor comprensión de cómo funciona este sensor de temperatura. ¡Gracias por compartir tus conocimientos!
¡Muy útil la información! Gracias por explicar de manera clara cómo conectar el LM35 con Arduino. ¡Ahora puedo hacer mi propio proyecto de termómetro!