Stellaris LaunchPad y 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:
Aquí el enlace para DESCARGAR los archivos disponibles 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 lo mas pronto posible responderlas...

Referencias: 
Stellaris LaunchPad y Energia: Sensor de temperatura LM35 Stellaris LaunchPad y Energia: Sensor de temperatura LM35 Reviewed by Pedro Sánchez Ramírez on 11/05/2016 Rating: 5

No hay comentarios:

Con la tecnología de Blogger.