medir temperatura con sensor kty81 210

Buenas.

tengo un problema y necesito medir la temperatura que da un sensor kty81-210.

he visto muchos tutoriales con el sensor kty81 - 120 pero cambiando los valores con el sensor 210 no funciona bien.

alguna ayuda? alguien sabe de algun proyecto similar y que me pueda guiar.

muchas gracias.

Hola, @sfolguera, bienvenido al foro Arduino en Español.
Te invito a que leas las Normas del foro y que luego evalúes donde hubiera correspondido colocar esta consulta.
La sección Proyectos no es para consultas, puedes dar una leída a los trabajos aquí presentados y verás que nada se aproxima a lu pregunta.
Muevo este hilo a Software.

Lo primero cuando presentas un problema es aportar datos para que los demás podamos entender mejor de lo que hablas, porque no supondrás que todos abrimos un cajón y sacamos el sensor que cada uno consulta. ALgunas veces si y muchas otras no.

Este link tiene esos datos.

Esto forma parte de tu tarea a la hora de presentar la información.

El tutorial indicado parace guiar adecuadamente.

Aparentemente tu termistor es un PTC o sea habitualmente se dan tutoriales para NTC (Negative Temperature Coeficient) y tu tienes uno con coeficiente Positivo y por eso te fallan los tutoriales.

La hoja de datos dice que los KTY81 sea 120 o 210 son todos PTC, asi que un código para 120 con ajustes debería ir bien para el 210.

KTY81/120 980 - 1020 Ω
KTY81/210 1980 - 2020 Ω

Hasta ahi las diferencias, visibles por hoja de datos.

En la ecuación de Steinhart–Hart tienes 3 coeficientes A, B y C.

Esos coeficientes dependen del tipo de termistor

Tienes el código de AlexPLD por un lado

Y la calculadora que el mismo ha sugerido que con el modelo Steinhart-Hart funciona perfecto

Calculadora de termistores

Yo use de la hoja de datos KTY81/210 pagina 7/16

para 0 °C => 1630 ohms Typ
para 25 °C => 2000 ohms Typ
para 100°C => 3392 ohms Typ

y arroja estos valores
A = 25.92894031 e-3
B = -37.35362106 e-4
C = 132.4702797 e-7

Como verás una simple verificación para 25 °C arroja los 2000 ohms esperables.

Bien.. ahora con eso y el código del mismo link que te puse resuelves tu problema

int ThermistorPin = 0;
int Vo;
float R1 = 10000;
float logR2, R2, T, Tc, Tf;
float c1 = 25.92894031-03, c2 = -37.3536210-04, c3 = 132.4702797e-07;

void setup() {
    Serial.begin(9600);
}

void loop() {

  Vo = analogRead(ThermistorPin);
  R2 = R1 * (1023.0 / (float)Vo - 1.0);
  logR2 = log(R2);
  T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
  Tc = T - 273.15;
  Tf = (Tc * 9.0)/ 5.0 + 32.0; 

  Serial.print("Temperature: "); 
  Serial.print(Tf);
  Serial.print(" F; ");
  Serial.print(Tc);
  Serial.println(" C");   

  delay(500);
}

ante todo mil disculpas por enviar el post en la sección no correspondiente, las desesperación de no entender que pasaba y las prisas cometi varios errores, no especificar que sensor se trataba etc....

solo te puedo agradecer la explicación que me has respondido. la calculadora me ha servido de gran ayuda para saber que eran esos números.

en otros tutoriales veo que entre las patas del termistor ponen un capacitador de 0.1mk según dicen par filtrar ruido.

he hecho la prueba y solo me salen valores de -273.16 como si el sensor no funcionara bien no? alguna idea.

muchas gracias.

ostras después de mucho mirar creo que he encontrado el fallo, los valores de C1 C2 y c3 faltava poner la e si te fijas el ultimo valor el c3 has puesto la e

creo que funciona.

la resistencia de referencia me recomiendas usar? tiene que ser lo mas parecido al termistor, aunque no sé como medir pq depende de la temperatura cambia. este punto no lo entiendo..

gracias.

faltava poner la e si te fijas el ultimo valor el c3 has puesto la e

Soy humano, me equivoco. En mi defensa copie y pegue y debo haber borrado el E del código, pero el código estaba disponible para el otro caso. Solo observar un poco te hubiera dado la respuesta. De hecho lo hiciste.

la resistencia de referencia me recomiendas usar? tiene que ser lo mas parecido al termistor

Lo dice en los links,

The thermistor's and resistor's Ohm value should be equal, correct? In this case 2000 Ohm?

El mismo valor para 25C

No te preocupes, yo estoy encantado de la ayuda, además resolver el problema me ha ayudado a entender mejor el código.

Lo que decía del valor de la resistencia es que dicen el mismo valor del termisor, y no entiendo cuando hablan del valor de termisor cuando este varía. Supongo que es como tu dices la temperatura de unos 25grados.

Bueno ya está hecho muchas gracias.

Puede que haya diferencia de temperatura con otro sensor pero siempre puedo engañar y restar el grado que falla.

Muchísimas gracias. No sabes que bien me ha ido tu ayuda.

Hola de nuevo.

haciendo pruebas me di cuenta, que al calentar el termisor la temperatura que me indicaba disminuía.

según veo es pq tengo un temisor PTC como tu me decías coeficiente positivo.

no sé si esta bien a falta de mas pruebas pero modificando esta linea.

R2 = R1 * (1023.0 / (float)Vo - 1.0);

he dividido en ves de multiplicar

 R2 = R1 / (1023.0 / (float)Vo - 1.0);

me da unos valores muy buenos.

gracias.

haciendo pruebas me di cuenta, que al calentar el termisor la temperatura que me indicaba disminuía.

Un NTC es un resistor de coeficiente de temperatura Negativo, es el mas común usado en casi todos los tutoriales. En el cuando pones un tester en modo resistencia entre los extremos del NTC cuando le acercas tu dedo, verás que conforme lo presionas la resistencia cae, en realidad la temperatura aumentó porque esta en contacto con tu temperatura corporal y pasa de temp ambiente a tus 30 y algo de grados en tu mano.
Pero la R baja.

En un PTC o coeficiente positivo, al aumentar la temperatura aumenta la resistencia.

Con los calculos que te di, debería ser suficiente. Ahora bien. El resto del código no lo chequeé porque no tengo tu PTC asii que me llama la atención, no digo ni que este mal ni bien, que hayas cambiado esa operación de * (multiplicación) a / (división)
Ahora lo miraré y luego edito.

Lo que he visto es que muy posiblemente tengas invertidos las ubicaciones de R1 y R2 y por eso tuviste que dividir y no multiplicar.
He hecho las cuentas y esa es la explicación que encuentro.

pues te doy toda la razón.

el circuito lo mira por otro tutorial que se ponia el positivo resistencia de referencia y el negativo a pata de sensor.

pues todo correcto! creo que ja esta resulto, nada mas añadir que en los valores c1 c2 c3 he puesto valores que estén mas cerca del margen que quiero moverme. es decir he pues R a 0 grados, R a 20 i R a 40

se me ajusta a valores de otros sensores que tengo.

saludos