Calculando la temperatura
Hola de nuevo. Siguiendo la línea de
interactuar con nuestro Arduino y el entorno, vamos a hablar de los sensores de
temperatura, y de cómo ensamblarlos con nuestro Arduino.
Un sensor de temperatura es un tipo de
dispositivo que transforma un cambio de temperatura en un cambio en sus
características ( resistencia, caída de voltaje, etc), que podemos medir con un
equipo electrónico.
Hay varios tipos de distintos de sensores, en
función de si varían su resistencia en función de la temperatura, (PTC, NTC,
RTD), o si transforman el calor en diferencias de tensión como el termopar.
Para el ejemplo vamos a usar un económico, y
fácil de encontrar TMP-36. Este semiconductor actúa parecido a un diodo Zener. Cuando se le somete a una diferencia de potencial entre dos de sus terminales, varía la caída de
tensión en el tercero en función de la temperatura. Y esto será lo que mediremos en
el conversor ADC de nuestro Arduino.
Aún hay más…. Entre las bondades del TMP-36
está que es completamente lineal en su rango de trabajo , -40°C a 150°C, y que su salida es
en grados Celsius. Pero ,¿cómo haremos para medir la temperatura? Bien, el
montaje es muy sencillo, conectaremos el terminal correspondiente a 5V, otro a
GND, y el de en medio a una entrada analógica del Arduino. Tal que así:
El montaje en la protoboard no podría ser más sencillo:
El montaje en la protoboard no podría ser más sencillo:
Después, y si nos dirigimos al datasheet del
fabricante, encontraremos lo siguiente:
A nosotros nos interesa la curva b, señalada
en rojo. Vemos que corta los 0°C en 0.5V, y que gana 10mV por cada incremento de 1°C. Por lo tanto la
fórmula matemática que rige el comportamiento de este dispositivo sería:
T = ( V-0.5)*100
Donde :
T : es la temperatura en C, y
V: es la tensión en Volts.
Para este primer ejemplo con las temperaturas, usaremos para
visualizarlas el monitor serie del IDE.
Con lo que el algoritmo para nuestro ejemplo, sería:
Con lo que el algoritmo para nuestro ejemplo, sería:
-Abrir la comunicación serie con el Arduino,
- Realizar la lectura del voltaje en el pin
del sensor,
- Convertirla en grados Celsius,
- Mostrarla en pantalla.
Mi propuesta para este ejemplo es la siguiente:
Lo podeis descargar desde aquí.
Se trata de un ejemplo muy sencillo, con pocas particularidades. Quizás convenga resaltar, que para ganar precisión hemos usado variables del tipo float para hacer los cálculos, pues del tipo integer no obtendríamos decimales en las operaciones necesarias.
Este caso tan solo tenemos que cargarlo en el IDE, y enviarlo a nuestra placa.
Activar el monitor serie, está dentro de la pestaña herramientas. Aquí obtendremos las temperaturas con la cadencia que hayamos marcado.
En la siguiente entrada trabajaremos con otras alternativas para visualizar valores.
Nos vemos!
Mi propuesta para este ejemplo es la siguiente:
/* Lectura de temperatura Con un TMP-36 */ // Declaración de constantes const int sensorPin = A0; // Pin conectado al TMP36 float voltaje; //variable para calcular la tensión float temperatura; //variable para almacenar la temperatura; void setup() { // Empezamos la comunicación con el puerto serie // para mostrar los valores en el serial monitor Serial.begin(9600); } void loop(){ // Leemos el valor de tensión en el pin // donde está conectado el sensor TMP36 int sensorVal = analogRead(sensorPin); // Convertimos el valor de la lectura digital // en voltaje float voltaje = (sensorVal/1024.0) * 5.0; // Mostramos el valor del voltaje en pantalla Serial.print(", Volts: "); Serial.print(voltaje); // Convertimos el valor de tensión en temperatura // en grados Celsius. Para ello usamos la formula // explicada en http://arduinopractico.blospot.com.es // restando al voltaje el offset de 0.5V que tiene el sensor // e incrementando la temperatura en 1ºC por cada 10 mV // T = (V-0.5)*100 , siendo V el voltaje leido Serial.print(", Temperatura en C: "); float temperatura = (voltaje - .5) * 100; Serial.println(temperatura); delay(1000); }
Lo podeis descargar desde aquí.
Se trata de un ejemplo muy sencillo, con pocas particularidades. Quizás convenga resaltar, que para ganar precisión hemos usado variables del tipo float para hacer los cálculos, pues del tipo integer no obtendríamos decimales en las operaciones necesarias.
Este caso tan solo tenemos que cargarlo en el IDE, y enviarlo a nuestra placa.
Activar el monitor serie, está dentro de la pestaña herramientas. Aquí obtendremos las temperaturas con la cadencia que hayamos marcado.
En la siguiente entrada trabajaremos con otras alternativas para visualizar valores.
Nos vemos!
No hay comentarios:
Publicar un comentario