Extraño resultado ADC (Arduino Micro) Termistor KTY 10-6

0

¿Dónde está el error en el siguiente circuito / código?

Hace algún tiempo tengo 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 fue muy fácil 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, utilicé una resistencia 2200 ohm

el capacitor es 100nf, creo: IJ63 está en la parte superior del gabinete. ¿correcto?

simular este circuito : esquema creado usando CircuitLab

Código

Como este termistor no es lineal y siempre quise usar la matemática adecuada fórmula para calcular la temperatura, esta es la mejor solución. De acuerdo con 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 ;

¿El cálculo es correcto?

Le pregunto porque si hace mucho calor en estos días ... no creo que haya 132-135 ° C. La fórmula es para centígrados.

Incluso si no uso esta fórmula pero uso otros cálculos más simples (lineales), siempre obtengo más de 130-140 ° Celsius

source1 source2 source3

Notas

Si toco el sensor, la lectura aumenta ... como se esperaba.

He probado en todos los pines analógicos.

Uso el micro arduino.

Lo uso con un i2cLCD.

Es usb.

No hay nada más conectado.

Si mido la resistencia en la placa proto cuando todo está apagado, lo leo como 1200ohm ... ¿el límite?

¿Por qué obtengo 120 a 140 como valor de temperatura?

Opcional

Acabo de cerrar un poste en 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, estaría muy contento. Esto duplicaría la resolución. Creo que en mi zona las temperaturas nunca bajarán a menos de -20 ° o más de +50 ° Celsius.

Compré 3 de esos, sé que son baratos. Conozco el bonito sensor de temperatura DS ##### que es perfecto para los microcontroladores. Pero quiero que este funcione también.

    
pregunta cocco

1 respuesta

1

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 real de resistencia .

Nuevo programa sugerido (no lo he probado, por lo que los comentarios / correcciones son bienvenidos)

float resistorfixed = 2200;

float temp = analogRead (A5);

// calcular el sensor resistencia valor (Rkty)

float Rkty = (resistorfixed * temp) / (1023 - temp);

// En la hoja de datos, el valor de la resistencia del sensor a 25 grados es 2000 +/- 20 ohms Comience con el cálculo de la resistencia medida.

flotador R25 = 2000;

// También tenemos alfa y beta

float alpha = 7.88 / 1000;

float beta = 1.937 / 10000;

// Ahora necesitamos calcular el factor de temperatura (KayTee)

flotar KayTee = Rkty / R25;

// Ahora tenemos toda la información para calcular la temperatura real (AcT)

flotar AcT = 25 + ((sqrt ((alpha * alpha) - (4 * beta) + (4 * beta * KayTee)) - alpha) / (2 * beta));

// ¡Solo espero que tenga mis corchetes en el lugar correcto!

    
respondido por el JIm Dearden

Lea otras preguntas en las etiquetas