Wemos d1 lm35


En este post vamos a crear el proyecto wemos d1 lm35, explicaremos su funcionamiento, la conexión para obtener la temperatura

oscar Escrito por oscar 05 December 2021 2080 0

Acerca del proyecto

El LM35 es un sensor que puede medir temperatura, donde su salida de voltaje es proporcional a la temperatura del ambiente, el cual requiere para su lectura que el controlador tenga la capacidad de realizar la conversión de análogo a digital. En este post vamos a crear el proyecto wemos d1 lm35, explicaremos su funcionamiento, la conexión para obtener la temperatura.

Conocimiento previo

Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.

Proyecto Descripción
Conversor análogo a digital Este post proporciona una breve panorámica del procesamiento digital de la señal, donde vamos a centrarnos principalmente en las características del sistema ideal y también mencionaremos algunos métodos de conversion A/D.
LM35 datasheet En este post encontrara la hoja de datos del lm35, describimos el elementos, sus características y la forma de conexión
analogRead() Contienen un convertidor de analógico a digital multicanal de 10 bits. Esto significa que mapeará voltajes de entrada entre 0 y el voltaje de operación (5V o 3.3V) en valores enteros entre 0 y 1023.

Conversión análogo a digital

He creado un post completo en donde realizamos la explicación de Conversor análogo a digital, damos los conceptos básicos y el paso a paso teórico en donde mostramos como de una señal análoga creamos los valores digitales, recomiendo leer un poco de este tema antes de continuar

Resumen de lectura ADC

Cuando se lee un voltaje analógico desde uno de los pines del arruino, el converso de análogo a digital (ADC) realiza una conversión de ese voltaje en un número que podamos manipular con el programa. El voltaje que soporta es de 0 a 5V y su valor de conversión va a hacer entre 0 a 1023 a 10bit de resolución.

Si realizamos la gráfica con los datos de voltaje y el valor de conversión, podemos observar que nos genera una gráfica lineal, en donde los resultados son proporcionales, observemos la siguiente imagen.

Voltaje vs valor conversión
Voltaje vs valor conversión

 

Si deseamos obtener el valor del voltaje de la entrada analógica teniendo en cuenta los parámetros mencionados en el párrafo anterior, podemos multiplicar el valor leído del pin analógico por 5 voltios que es lo máximo que puede llegar y dividirlo por 1023 que es el mas grande dentro del rango de 10 bits.

V =Valor ADC * 51023

De este modo, tenemos relacionada el voltaje de salida del sensor con los valores digitales de Arduino.

LM35

La serie LM35 son dispositivos de temperatura de circuito integrado de precisión con un voltaje de salida linealmente proporcional a la temperatura centígrada. El dispositivo LM35 tiene una ventaja sobre los sensores lineales de temperatura calibrados en Kelvin, ya que no se requiere que el usuario reste un voltaje constante grande de la salida para obtener una escala centígrada conveniente.

Para mas detalles, tenemos la hoja de datos de este componente para que tambien le den un repaso antes de seguir con el circuito.

Variable del sensor

Vamos a obtener la variable de conversión del sensor lm35, para ello nos dirigimos al datasheet, en las características vamos a buscar algo como escala del factor lineal el cuan nos indica que es 10mV/°C, esto se explica mejor con una gráfica.

Gráfica valor lineal
Gráfica valor lineal

 

Con esto, tenemos que multiplicar el voltaje obtenido en el paso anterior por el valor de la relación voltaje-variable (en este caso 100) y obtendremos la variable de medida del sensor.

Valor =V * Relación variable

ADC en ESP8266

El SoC ESP8266EX, que es el procesador principal en todas las placas ESP8266, tiene un ADC de un solo canal. El ADC en ESP8266 tiene una resolución de 10 bits y es de tipo Registro de aproximación sucesiva (SAR). La resolución de 10 bits significa que los valores de salida estarán en el rango de 0 a 1023.

Si consulta la hoja de datos de ESp8266EX SoC, el pin ADC es el pin 6, también conocido como pin TOUT. El ADC se puede utilizar básicamente para dos tipos de medidas. Son:

  • Mida el voltaje de la fuente de alimentación en las clavijas 3 y 4.
  • Mida el voltaje de entrada del pin 6, es decir, el pin TOUT.

Ambas medidas no se pueden implementar al mismo tiempo. Para medir el voltaje de la fuente de alimentación, el pin TOUT debe dejarse flotando. Pero al medir voltaje externo en el pin TOUT, el rango de voltaje de entrada debe estar entre 0V y 1V.

Si está creando el firmware desde el SDK, consulte la hoja de datos y otra documentación relevante, ya que hay mucha más información sobre el ADC y su configuración.

Materiales

Los materiales los describimos en la siguiente tabla:

Material Cantidad Descripción
Wemos d1 1 Placa wemos d1
LM35 1 Sensor de temperatura
Cables de conexión 3 Cables macho a macho

Circuito

La conexión que realizamos desde el sensor a la placa wemos d1 es por medio del pin análogo, como se observa ademas de la alimentación, en la siguiente tabla describimos los pines que conectamos:

Wemos d1 LM35
+5 1
Pin 2 2
VCC 3

Este es un ejemplo de conexión con una breadboard.

Wemos d1 lm35 breadboard
Wemos d1 lm35 breadboard

 

Wemos d1 lm35 schem
Wemos d1 lm35 schem

 

Wemos d1 lm35 foto
Wemos d1 lm35 foto

 

Código

El código que vemos a continuación no requiere mucho análisis, solo es aplicar las formulas vistas anteriormente y podemos obtener los datos de temperatura.

//Paso 1
const int sensorPin = A0;
 
void setup()
{
  Serial.begin(9600);
}
 
void loop()
{
  //Paso 2
  float valueAdc = analogRead(sensorPin);
  Serial.println(valueAdc);

  //Paso 3
  float volts = (valueAdc / 1023.0) * 3.3;
  Serial.println(volts);

  //Paso 4
  float celsius = volts * 100.00; 
  //Paso 5
  Serial.print(celsius);
  Serial.println(" C");
  delay(1000);
}
  1. Declaramos una constante sensorPin con el pin analógico que vamos a usar.
  2. Leemos el valor del análogo con analogRead() usando la constante declarada al inicio.
  3. Realizamos la conversión a de análogo a digital y lugo con la primera formula obtenemos el voltaje de entrada. Nota: el esp8266 trabaja a 3.3v. por eso en este paso se multiplica por 3.3
  4. Realizamos la conversión del voltaje a grados celsius usando la variable del factor lineal.
  5. Por ultimo mostramos en terminal el resultado.

Finalizamos mostrando una imagen de como se ve el resultado de medir la temperatura del ambiente.

LM35 funcionamiento
LM35 funcionamiento

 


Comentario

Debe aceptar antes de enviar