4 votos

Termistor De La Hoja De Datos De Lectura

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);
}

0voto

ben Puntos 11

Para cualquier persona interesada en conocer cómo he resuelto este problema, he utilizado el AREF y 3.3 V desde el microcontrolador Arduino conectado directamente a uno de los lados de los termistores. Creo que la tensión sale de mi portátil estaba cayendo; USB +5V fue soltando a ~4.7 V haciendo mis cálculos inferior.

Aquí es el sitio que ayudó a encontrar mi respuesta (este sitio incluye el CÓDIGO y el DIAGRAMA):

http://learn.adafruit.com/thermistor/using-a-thermistor

Gracias a todos por su ayuda.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X