Está en la página 1de 2

Conceptos teóricos

Ahora lo único que nos falta es un poco de teoría para obtener el valor de la temperatura.
Atendiendo a las ecuaciones que describen el comportamiento de las NTC

Ecuación de las NTC

Parametro B

y con la ecuación que describe un divisor de tensión

Salida de un divisor de tensión

Podemos obtener el valor de la temperatura, mediante la ecuación de Steinhart-Hart

Ecuación de la temperatura

Parámetro Rinf

Código Arduino
Por último, y no por ello menos importante, nos faltaría por desarrollar un pequeño programa para
nuestroArduino para implementar todas estas ecuaciones.

Este programa en una primera instancia, calculará los coeficientes necesarios para los valores que
hayamos incluido en la cabecera, como las temperaturas y resistencias medidas para la calibración
así como el valor de la resistencia auxiliar utilizada en el divisor de tensión entre otros.

La salida sera el valor de la temperatura en grados centígrados o celsius [ºC] y en grados Kelvin [K]
a través del puerto serie.
#include <stdio.h>
#include <math.h>

0.0. // [ohm] Secondary resistor in the Voltage-Divider float R0=10000.int analogPin=0. // [K] Beta parameter float Rinf=0.0. // [ohms] Resistance at 373K (100ºC) float beta=0. // [ohm] Rinf parameter float TempK=0. } . TempC=TempK-273. // [K] Temperature at first testing point float T2=373. INPUT).println(" K)"). Rinf=R0*exp(-beta/T0). delay(1000).print(" ºC ("). // [V] Voltage given by the Voltage-Divider float Rout=0. // [ohms] Resistance at 273K (0ºC) float RT2=2150.0). // [K] Temperature output in Kelvin float TempC=0.begin(9600).0.0. Serial. // [K] (25ºC) float Vout=0. // [V] Supply voltage in the Voltage-Divider float Raux=10000. //Input pin configuration pinMode(analogPin.15.print(TempC). Serial.0.15.print(TempK). // Which pin will be the input of the Voltage-Divider float Vin=5. Rout=(Raux*Vout/(Vin-Vout)). // [K] Temperature at second testing point float RT1=19750. //Global parameters calculation beta=(log(RT1/RT2))/((1/T1)-(1/T2)). // [ºC] Temperature output in Celsius void setup() { //Serial port configuration Serial.0. //Data population Serial. Serial. //Temperature calculation TempK=(beta/log(Rout/Rinf)). // [ohm] NTC nominal value at 25ºC float T0=293. } void loop() { //Current NTC resistance value calculation (through Vout) Vout=Vin*((float)(analogRead(analogPin))/1024. // [ohm] Current NTC resistance float T1=273.