Stellaris LaunchPad & Energia: Sensor de temperatura LM35


Saludos! Siguiendo con los ejemplos básicos con la Stellaris LaunchPad y aprovechando que estamos en el tema del puerto serie, vamos a leer la temperatura del sensor LM35 y la mostraremos en la terminal serial del Energia.

El circuito utilizado es muy sencillo, solo tenemos que conectar Vout del LM35 al canal analógico A0 de la Stellaris, en esta ocasión alimentaremos el sensor a +3.3V obtenidos de la misma tarjeta, como se muestra a continuación.


Para obtener la temperatura necesitamos realizar unos cuantos cálculos, por ejemplo en el datasheet del LM35 nos indica que Vout = 10mV/°C, dicho en otras palabras 1°C = 10mV, con este dato y aplicando una regla de tres, podemos saber aproximadamente que voltaje estará presente en el pin A0, por ejemplo si tenemos una temperatura de 30°C vamos a tener Vout = 300mV, otro punto que debemos considerar sera la resolución del canal analógico de la Stellaris, en este caso el ADC es de 12 bits, esto quiere decir que podemos tener valores de 0 a 4096, para saber que voltaje le corresponde a un bit podemos decir que; 1Bit = 3.3V / 4096 = 3300mV / 4096 = 0.8056mV.

Con lo anterior y usando regla de tres podremos saber cuantos bits estarán presentes en A0 cuando la temperatura sea de 30°C, por lo tanto Bitsa30°C = 300mV/0.8056mV = 372.39.

Las formas de plantear la ecuación que describa el comportamiento de la temperatura puede ser de diferentes formas pero al final se logra el mismo resultado, yo lo hago de la siguiente forma, claro considerando los cálculos anteriores.

1 Bit = 0.8056mV
1 °C = 10mV

Y aplicando una regla de tres tenemos 1 Bit = 0.8056mV*°C / 10mV = 0.08056 °C

Entonces puedo deducir que si esta constante la multiplico por los bits en A0, obtendré mi temperatura deseada, por ejemplo; 0,08056 * 373.30 = 29.99 °C, considerando que no hemos usado todos los decimales podemos decir que nuestra temperatura es correcta.

Con esta constante reducimos un poco el proceso en el código, al evitarnos hacer las divisiones, debo también mencionar que en el código tomo 32 muestras (1 muestra cada 32mS aproximadamente) y luego saco el valor promedio con un desplazamiento, así actualizo la temperatura en aproximadamente 1 segundo.

Importante decir que la temperatura puede variar un poco ya que no se han tomado todos los decimales, también interfiere mucho el voltaje de referencia que usa el microcontrolador para el ADC.

El código utilizado es el siguiente:
Aquí un vídeo del circuito en acción:


Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.


Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.


Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.

Publicar un comentario

2 Comentarios

  1. Excelente muchas gracias por la explicacion de este sensor de temperatura, creo que me cmprare uno, donde compre mi Sensor de Torque FSH01979

    ResponderEliminar
    Respuestas
    1. Es bueno saber que te fue de utilidad la información.

      Eliminar