Introduction: Ejemplo Básico De Termistor NTC Y Arduino

Como hemos visto en un tutorial anterior, aunque con un microcontrolador no podemos medir directamente una resistencia, podemos hacer uso de un divisor de tensión para transformar el valor de una resistencia en un equivalente de voltaje.

Aunque con ello podríamos construir un ohmímetro (medidor de resistencia) básico, no es que sea el uso más práctico que le podemos dar.

Existen varios componentes básicos en electrónica que detectan las variaciones de algún parámetro en el ambiente y lo transforman en una variación de resistencia. Esta es una característica que podemos explotar positivamente (también tiene su contraparte negativa, cuando esperamos estabilidad de los componentes) para emplear sensores básico con nuestro microcontrolador.

Podemos emplear diferentes sensores para diferentes parámetro que busquemos medir, pero en este ejemplo emplearemos el más común: un termistor.

Step 1: Termistores: NTC Y PTC

En la inmensa mayoría de casos, el tipo de termistores que se usan son NTC (siglas en inglés de Coeficiente de Temperatura Negativo). Pero existen dos tipos de termistores: NTC y PTC.

Su diferencia es muy simple, la forma en la que varía su resistencia es inversa. En un NTC si aumenta la temperatura disminuye la resistencia; en un PTC al aumentar la temperatura aumenta la resistencia.

Un uso habitual de los PTC, por sus características, es en sistema de protección de circuitos, en forma de fusibles regenerables. Si hacemos pasar mayor corriente por un fusible de la que permite su denominación, se fundirá y deberemos cambiarlo (con lo que ello implica si se trata de un aparato de consumo que no debería abrir quien no tenga un mínimo de conocimiento en electricidad y electrónica).

Con los fusibles regenerables (hay varias denominaciones: fusible reseteable, polyfuse, polyswitch, PPTC...) si se hace pasar más corriente de la permitida, el elemento se calentará y al aumentar su resistencia en varios órdenes de magnitud dejará de alimentarse el circuito. Cuando el elemento se enfríe de nuevo, volverá a su funcionamiento normal.

Es habitual encontrarlo en placas de desarrollo como las Arduino, aunque en el caso de Arduino simplemente actúan como protección del puerto USB y no del conjunto de la alimentación. Sea como sea, ¡lo mejor es no tener que probar que el fusible funcione!

Respecto a nuestro NTC no hay mucho más que decir, su funcionamiento es simple: mayor temperatura -> menor resistencia y con ello, mayor flujo de corriente eléctrica que podemos medir como una diferencia de voltaje gracias a nuestro divisor de tensión.

Step 2: Montaje

En nuestra configuración hemos elegido que el termistor sea R1 mientras que R2 será una resistencia de valor fijo. El montaje se puede ver claramente en los esquemas sin que ofrezca demasiada duda. Empleamos la entrada analógica A0 para obtener el voltaje resultado del divisor de tensión.

Seleccionar la resistencia apropiada es algo que debemos valorar en base al rango de temperaturas que pensamos medir. En un termistor NTC de 10K, su valor de 10K se alcanzará entorno a los 25ºC.

Por lo general no será necesario cambiar el valor de esta resistencia, 25ºC entra dentro de la escala habitual de medición de este tipo de NTC, pero si de manera habitual esperamos medir temperaturas en un horno o en un congelador, podemos escoger una resistencia distinta.

Lo que debemos es tomar una resistencia del valor igual (más cercano) al valor del NTC en el centro de la escala que va a trabajar el NTC. Si por ejemplo esperamos medir temperaturas entre -20ºC y -10ºC, es mejor que usemos una resistencia fija de 70KΩ que de 10KΩ.

Para obtener el valor que mejor se ajuste a nuestras necesidades debemos medir directamente la resistencia del NTC en unas condiciones determinadas (con un polímetro, por ejemplo) o bien consultar alguna de las tablas precalculadas. Las características de los NTC de 10K no suelen permitir gran margen de características entre fabricantes.

Step 3: Materiales

Para este montaje vamos a emplear los siguientes materiales y herramientas

1x Placa Nano

1x Breadboard de 400 puntos

1x Termistor NTC de 10K

1x Resistencia de 10K

Step 4: Transformar La Resistencia En Temperatura

Hasta el momento, nuestro montaje nos podría devolver simplemente el voltaje resultado del divisor de tensión, que podemos transformar en resistencia como ya vimos en otro tutorial. Pero a nosotros la resistencia no nos dice nada, ¡queremos la temperatura!

Podríamos felizmente pensar que la resistencia se puede transformar en temperatura con un simple cambio entre unidades equivalentes. Igual que quien transforma centímetros en pulgadas. Hay en la red muchos ejemplos que hacen poco más que eso, pero su precisión es muy muy dudosa.

Los termistores NTC no tienen un comportamiento lineal, una variación de la resistencia puede significar un cambio de temperatura mayor o menor, dependiendo de la temperatura. Es por ello que no nos llega con emplear un factor de conversión. Si lo queremos hacer realmente bien, debemos emplear o bien el modelo beta o bien el modelo Steinhart-Hart. El segundo es más preciso que el primero, aunque existen otras limitaciones de exactitud que se van a hacer evidentes antes.

En ambos casos debemos conocer varios parámetros específicos del termistor que estamos empleando, en ocasiones los fabricantes ofrecen un dato genérico, pero siempre es mejor calcularlo haciendo mediciones del propio termistor. Debemos cuanto menos tener 3 mediciones de temperatura y resistencia, estando en el medio y ambos extremos de la escala.

Las ecuaciones para ambos modelos se pueden encontrar en la red de manera sencilla, aunque para mucha gente es posible que sea algo engorroso el solucionarlas para obtener los parámetros deseados. Por ello podemos hacer uso de una calculadora específica: http://www.thinksrs.com/downloads/programs/Therm%20Calc/NTCCalibrator/NTCcalculator.htm

En ella introduciremos los pares de datos que hemos medido y nos dará los parámetros para ambos modelos. Si no es posible que hagamos una lectura precisa de los valores de nuestra NTC, podemos consultar una tabla genérica y tomar de ahí los pares de valores para introducir en la calculadora. Pero perderemos precisión y ajuste.

Step 5: Código

Todo lo que hemos explicado antes, lo hemos transformado en código. Simplemente debemos introducir los parámetros A, B y C (que hemos obtenido de la calculadora) y además la R2 que estemos usando.

Los cálculos los hará la función que hemos definido y nos devolverá el resultado. Por la configuración que tenemos y la resolución de la lectura que puede hacer Arduino, la precisión oscila entorno a 0.1ºC.