Tengo el siguiente hoja de datos para un thermisistor: http://make-documents.s3.amazonaws.com/UGulDNLaIajWgPom.pdf
Estoy tratando de usar la fórmula (que se encuentra aquí: http:// iwantmyreal.nombre/blog/2012/09/23/la medición de la temperatura-con-un-arduino-y-un-termistor/): $$ 1/T=1/T_0+1/B*ln(R/R_0) $$ No estoy seguro de que estoy usando los valores correctos, a mi entender, es que los valores proporcionados en la hoja de datos se como seguir: $$R_0=20,000 ohm,$$ $$T_0=25 C,$$ $$Beta=4300$$ ¿alguien Puede confirmar que esto es correcto?
Estoy tratando de hacer una lectura de la temperatura de salida del sensor utilizando un Arduino UNO microcontrolador utilizando el siguiente encontrados en la http://playground.arduino.cc//ComponentLib/Thermistor2 en la parte inferior, donde dice: ejemplo #2 ejemplo de uso de los números en lugar de episco k164 definición .... (sustituyendo con los valores anteriores)
Los resultados son ~41.96 grados F, y la habitación está entre los 75-80 grados F, lo que significa que las temperaturas en las lecturas de la manera que fuera, no entiendo por qué, a menos que tengo el mal de los valores de la hoja de datos. También tengo dos de estos sensores y ambos dan sobre el mismo valor.
Código utilizando actualmente:
// Code obtained from http://playground.arduino.cc//ComponentLib/Thermistor2
#include <math.h>
// enumarating 3 major temperature scales
enum {
T_KELVIN=0,
T_CELSIUS,
T_FAHRENHEIT
};
// manufacturer data for episco k164 10k thermistor
// simply delete this if you don't need it
// or use this idea to define your own thermistors
#define EPISCO_K164_10k 4300.0f,298.15f,10000.0f // B,T0,R0
// Temperature function outputs float , the actual
// temperature
// Temperature function inputs
// 1.AnalogInputNumber - analog input to read from
// 2.OuputUnit - output in celsius, kelvin or fahrenheit
// 3.Thermistor B parameter - found in datasheet
// 4.Manufacturer T0 parameter - found in datasheet (kelvin)
// 5. Manufacturer R0 parameter - found in datasheet (ohms)
// 6. Your balance resistor resistance in ohms
float Temperature(int AnalogInputNumber,int OutputUnit,float B,float T0,float R0,float R_Balance)
{
float R,T;
R=(1024.0f*R_Balance/float(analogRead(AnalogInputNumber)))-R_Balance;
T=1.0f/(1.0f/T0+(1.0f/B)*log(R/R0));
switch(OutputUnit) {
case T_CELSIUS :
T-=273.15f;
break;
case T_FAHRENHEIT :
T=9.0f*(T-273.15f)/5.0f+32.0f;
break;
default:
break;
};
return T;
}
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("*************************");
Serial.println("10k Balance");
Serial.println(Temperature(0,T_FAHRENHEIT,4300.0f,298.15f,20000.0f,9770.0f));
//Serial.println(Temperature(1,T_FAHRENHEIT,4300.0f,298.15f,20000.0f,9770.0f));
Serial.println("*************************");
delay(500);
}