¿Dónde está el error en el siguiente circuito/código?
Hace algún tiempo conseguí varios sensores. Uno de ellos fue el kty 10-6 (3 piezas). Al principio no pude encontrar ninguna hoja de datos o ejemplos sobre este sensor de temperatura. Así que obtuve un LM35 que era muy simple de configurar ya que es lineal. Ahora, después de varios meses, finalmente encontré la hoja de datos adecuada y la ecuación matemática para obtener los valores de resistencia adecuados.
KTY 10-6 (este es el enlace de la hoja de datos)
Circuito
Descubrí que es similar al kty81-210
(Vcc 5+)--+-->2.7k--+-->kty81-110-->(GND)
| |
+->100nF--+-----> ADC0 (Analog Port 0)
Como no tengo una resistencia de 2.7k Ω, usé una resistencia de 2200 ohm .
el condensador es 100nf, creo: IJ63 está en la parte superior del gabinete. ¿correcto?
simular este circuito : esquema creado con CircuitLab
Código
Como este termistor no es lineal y siempre quise usar la fórmula matemática adecuada para calcular la temperatura, esta es la mejor solución. Según lo que leí en la hoja de datos de kty10-6, cambié algunos valores como la resistencia y el valor beta (a). el alfa (b) .00788 parece ser el mismo en ambos sensores.
float resistor = 2200; // changed
float temp = analogRead(A5);
float ukty = 5*temp/1023.0;
float a = 0.00001937*1000; // changed
float b = 0.00788*1000;
float c = 1000-resistor*ukty/(5-ukty);
float delta = b * b - 4 * a * c;
float delta1 = sqrt (delta);
float x2 =(-b + delta1)/(2 * a);
float temp1 = x2 + 25 ;
¿Es correcto el cálculo?
Pregunto porque incluso si hace mucho calor en estos días... no creo que haya 132-135°Celsius. La fórmula es para Celsius.
Incluso si no uso esta fórmula pero uso otros cálculos más simples (lineales) siempre obtengo más de 130-140 °Celsius
notas
Si toco el sensor, la lectura aumenta... como se esperaba.
Probé en todos los pines analógicos.
Yo uso el arduino micro.
Lo uso con un i2cLCD.
Es alimentado por USB.
No hay nada más conectado.
Si mido la resistencia en la placa prototipo cuando todo está apagado, lo leo como 1200 ohm... ¿la tapa?
¿Por qué obtengo 120 a 140 como valor de temperatura?
Opcional
Acabo de cerrar una publicación sobre la pila de componentes electrónicos que describe cómo aumentar la resolución de los termistores con resistencias. Lo encontré
Si alguien sabe cómo cambiar mi circuito para leer temperaturas de -10/-20 a +40/+50, sería muy feliz. esto duplicaría la resolución. Creo que en mi zona las temperaturas nunca bajarán de -20 ni superarán los +50 °C.
Compré 3 de esos, sé que son baratos. Conozco el agradable sensor de temperatura DS##### que es perfecto para los microcontroladores. Pero quiero que este funcione también.
Sabemos que las lecturas analógicas variarán entre 0 (=0V) y 1023 (5V).
El primer paso es convertir la lectura del valor analógico (de voltaje) en un valor de resistencia real.
Nuevo programa sugerido (no lo he probado, por lo que se agradecen los comentarios/correcciones)
float resistorfixed = 2200;
float temp = analogRead(A5);
// calculate sensor resistance value (Rkty)
float Rkty = (resistorfixed * temp) / (1023 - temp);
// From the data sheet the value of the resistance of the sensor
// @ 25 degrees is 2000 +/- 20 ohmsStart with calculating the measured
// resistance.
float R25 = 2000;
// We are also given alpha and beta
float alpha = 7.88 / 1000;
float beta = 1.937 / 100000; // divide by 10^-5
// Now we need to calculate the temperature factor (KayTee)
float KayTee = Rkty / R25;
// We now have all the information to calculate the actual temperature
// (AcT)
float AcT = 25 + ((sqrt((alpha * alpha) - (4 * beta) + (4 * beta * KayTee)) - alpha) / (2 * beta));
// Just hope I've got my brackets is the correct place!
Jim Dearden
coco
coco
coco
Jim Dearden
coco
coco
coco
coco
coco
coco
coco