Proyecto 15 – LM35 Sensor de temperatura

Proyecto en el cual usaremos el Arduino para leer un sensor de temperatura LM35 a través del puerto serial. Este es otro de esos proyectos muy fáciles de implementar y de código muy sencillo. Este va a ser el primer proyecto con el cual vamos a realizar una verdadera medición con unidades de medida específicos.

Sensor de temperatura LM35

Sensor de temperatura LM35

El LM35 es un sensor de temperatura muy popular y de bajo costo. Tiene un rango de medición desde -55°C hasta 150°C. Tiene una salida analógica y lineal, por lo tanto la tensión de salida es directamente proporcional a la temperatura, en donde cada grado centígrado equivale a 10mV. Este sensor viene calibrado de fábrica con una precisión 0.5°C

Una de las ventajas del LM35 es que no requiere de circuitos adicionales para calibrarlo externamente. La baja impedancia de salida, su salida lineal y su precisa calibración hace posible que este integrado sea instalado fácilmente en un circuito de control. Debido a su baja corriente de alimentación se produce un efecto de auto calentamiento muy reducido. Se encuentra en diferentes tipos de encapsulado, el más común es el TO-92, el mismo que utilizan los transistores de baja potencia.

Especificaciones:

  • Voltaje de operación: 4V – 30V (se recomiendan 5V)
  • Rango de trabajo,: -55°C hasta 150°C
  • Pendiente: 10mV/°C
  • Consumo: 60uA
  • Está calibrado directamente en °C
  • Baja impedancia de salida

Componentes

  • Arduino UNO o placa compatible
  • Protoboard o placa de pruebas
  • Sensor de temperatura LM35
  • Cables o Jumpers
Proyecto 15 – LM35 Sensor de temperatura

En el diagrama vemos el sensor LM35 conectado al Arduino, esta conexión es bastante simple, el primer pin del sensor debe ir a los 5v del Arduino, el segundo pin del sensor debe ir conectado al A0 y por último el tercer pin del sensor irá conectado al GND del Arduino.

Podríamos utilizar un protoboard para poner todos los componentes como esta en el diagrama, pero en este caso no veo la necesidad, por lo que utilizamos lo cables para conectar nuestro sensor directamente al Arduino.

Código

float tempC; 
int pinLM35 = 0;

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

void loop() 
{
  tempC = analogRead(pinLM35); 
  tempC = (5.0 * tempC * 100.0)/1024.0; 
  Serial.println(tempC);
  delay(1000);
}

Comenzaremos a revisar el código, primero vamos a ver las declaraciones de las variables.

float tempC; 
int pinLM35 = 0; 

Declaramos 2 variables, la primera de tipo float float tempC, con la cual haremos los cálculos matemáticos, por otro lado declararemos la segunda variable del tipo entero int pinLM35 = 0, que utilizaremos para hacer las operaciones matemáticas para dar el valor de la temperatura y hemos utilizado una variable de punto flotante para poder visualizar los datos con valores decimales.

En la función setup:

Serial.begin(9600);

Solo vemos una sola línea en la función setup, Serial.begin(9600) donde inicializamos la comunicación serial a una velocidad de 9600 baudios, la cual utilizaremos más adelante para ver los valores del sensor de temperatura.

Y en la función loop:

  tempC = analogRead(pinLM35); 
  tempC = (5.0 * tempC * 100.0)/1024.0;
  Serial.println(tempC);
  delay(1000);

Lo primero que vemos en el loop es que a la variable valor le asignamos la lectura del sensor de llama a la variable tempC, tempC = analogRead(pinLM35), luego tenemos tempC = (5.0 * tempC * 100.0)/1024.0, donde hacemos el cálculo de la temperatura según el valor que recibimos por nuestro puerto A1.

Luego enviamos por serial el valor de la temperatura para que sea visualizado en nuestro monitor serial Serial.println(tempC) . Por último hacemos una pausa de un segundo delay(1000), y vuelve a comenzar el ciclo.

La Fórmula

Para poder entender el origen de la fórmula debemos tener en cuenta los siguientes datos:

– Los pines análogos registran un valor desde 0 hasta 1023, es decir un total de 1024 posibilidades.
– Vamos a utilizar los 5V de salida del Arduino.
– La pendiente del sensor es 10mV/ °C, lo que significa que cada 10mV equivalen a 1°C.
– 10 mv equivalen 0.01V

Lo primero que debemos hacer es determinar el voltaje que tenemos en la entrada analógica, esto lo podemos lograr multiplicando los 5 voltios por el valor que tenemos en la entrada analógica en ese momento y esto lo dividimos en 1024, que son la cantidad de valores posibles de esta entrada. A este resultado lo vamos a dividir por 0.01V dado que por cada grado centígrado son 10mV.

Temperatura= (Valor * 5 / 1024) / 0.01

Al simplificar:

Temperatura = Valor * 5 * 100 / 1024

Resumen

Al encender el Arduino estaremos monitorizando la temperatura que registra nuestro sensor LM35, y visualizándola por el monitor serial.


Deja un comentario

Este sitio está protegido por reCAPTCHA y se aplican la política de privacidad y los términos de servicio de Google.