Comprobando el funcionamiento del programa |
Una de las aplicaciones más comunes de una placa electrónica Arduino es el control de temperatura mediante un sencillo Termistor (sensor de temperatura), por ejemplo si queremos activar un ventilador cuando la temperatura sube de cierto valor en un ordenador/motor, o activar mediante un relé un motor circulador en una caldera cuando detectemos que la temperatura está subiendo (y por ende el fuego está encendido), como hacíamos en la caldera casera con los termostatos AKO o Keld, sólo que con Arduino no sólo nos permitirá activar algún dispositivo, sino que nos permitirá mucho más juego, pudiendo controlar y manejar otros parámetros de nuestra caldera, como la temperatura de los humos, o del aire inyectado en la cámara de combustión, etc, como ya nos explicó Oscar González en BricoGeek sobre un proyecto de Xoel de Asturias.
Un termistor (thermistor) no es más que una resistencia cuyo valor varía según varía su temperatura (aunque no de forma lineal); los hay de muchos tipos, pero en esta entrada hablaré de uno NTC (Negativo, cuyo valor de resistencia decrece según crece la temperatura), y que miden diferentes rangos de temperatura, de -50 a +99ºC en este caso. Si queremos medir más temperatura, nos haría falta un termopar tipo K o tipo J, pero eso ya lo veremos más adelante.
Pero para utilizar un termistor cualquiera que podamos conseguir, no basta con medir el valor de su resistencia y aplicar una regla de tres, porque como hemos dicho, no es un valor lineal (sino curvo), siendo mayores las diferencias de resistencia según aumenta la temperatura, de forma hiperbólica.
Para utilizar un termistor, o sabemos sus valores (datasheet), o tenemos que aproximarlos; según la fórmula SteinHart-Hart, tenemos que hallar un valor, llamado β (Beta) (el llamado valor de temperatura característica del material), y utilizarlo junto con su fórmula para obtener los ºC para un valor dado. Aquí está muy bien explicado, y aquí explicada la fórmula SteinHart-Hart.
Aunque parece difícil de entender para los que se les den mal las matemáticas (como a mí), pero no os preocupéis, que al final tenéis un programa que podéis usar y con sólo cambiar los datos del encabezado (valores de dos puntos, de la resistencia a 25ºC de vuestro termistor y del valor real de 5Vcc de vuestro Arduino y poco más) podréis usarlo en vuestro proyecto sin tener que comprender las fórmulas implicadas, pero prefiero entrar en detalle para los que les gusten tanto como a mí "el por qué de las cosas".