NTC100K 3950 Temperatura en reversa

Hola a todos,

Estoy probando unos termistores NTC100K, curiosamente la temperatura la esta tomando en reversa. Al aplicar calor el NTC la temperatura disminuye.

He probado varios NTC100K y con todos pasa lo mismo, sera algo del codigo (Codigo que antes si funcionaban ) o tendra que ver con la Arduino Nano?

N negative
T Temperature
C Coeficient
o sea.. sube la temperatura, baja la resistencia.
Esta todo bien.

PTC hace lo que te imaginas, el que tiene coeficiente positivo.

Es que las NTC disminuyen su resistencia conforme aumenta la teperatura, en cambio las PTC aumentan su resistencia conforme aumenta la temperatura

Hola, si, eso tengo entendido, por eso es Ntc de negativo y Ptc de positivo... el tema es que al aplicar calor la temperatura disminuye.

Busca en la Lupa temas similares de ESTE foro y encontrarás soluciones completas.

Gracias Surbyte, buscare, a pesar de que el problema no creo sea de codigo, ya que, con librerias o sin librerias, el NTC deberia marcar la temperatura en forma ascendente cuando aplicas una fuente de calor no a la inversa.

Aun asi he estado buscando pero la mayoria consulta el uso del NTC o problemas de variabilidad en el sensado, aun no veo que el comportamiento sea de forma invertida.

Gracias, Saludos.

Sigues sin entender.
Es una resistencia que a 25 grados tiene 100k pero a 30 grados tiene menos y a 100 grados menos. A 0 grados por ejemplo tendra mas de 100k, mucho mas.
Eso esta bien.
Es de coeficiente negativo.


No es tu caso pero solo para que veas.

Gracias, Surbyte
Entiendo la logica sin problemas. Intentare explicarlo de otro modo, posiblemente sea yo el que no se esta explicando bien.

Usando cualquier codigo par sensar la temperatura con una NTC100K, hasta hace poco no tenia problemas. generalmente marcaba la temperatura entre 22 y 25 grados. Aplicaba una fuente de calor y la temperatura subia sin problemas... 30, 50, 100 grados.

Pero ahora con el mismo codigo y/u otros la temperatura va de forma decendente, cuando aplicado un fosforo (por ejemplo) de 25 baja a -10 grados... ese es mi problema.

Temperatura Ambiente

Temperatura Aplicando Calor al Thermistor
Captura de pantalla 2022-11-18 180254

Gracias

Como dirían en España, joder hombre es para matarte por lo mal que te has explicado, mira que me preguntaba como es posible que no entienda!!

Bueno esa es otra cuestión.
Ahora dime que cambios has hecho?.

EDITO: coloca el código usando etiquetas.
Da detalles del NTC, es lo que has puesto y nada mas, donde lo compraste?
Si lo calientas y mides con el tester, la resistencia cambia de acuerdo a la gráfica no?

EDITO2: no se te habrá escapado sin querer un signo - a veces me ocurre que en un código se desliza un error de tipeo que en tu caso puede ser responsable.

Gracias Surbyte, a pesar desde el inicio expuse que la NTC marcaba de forma negativa la temperatura, jamas expuse mis dudas con respecto al funcionamiento. Pero como se dice tambien... no es como se explique sino como se entienda. Pero tambie esa es otra cuestion.

Las NTC 100K 3950 las he comprado en Aliexpress, y las uso como respuestos en mis impresoras 3D.

Cambios al codigo que mide la temperatura absolutamente ninguno.

Error de signo, lo veo dificil, ya que, he probados los codigos de ejemplo de librerias y los que ya funcionan y que en su momento los use para pruebas, aun asi volvere a repasar cada uno de los codigos que probado.

Con el tester tambien he probado y lo vuelto hacer despues de leer tu comentario. Refleja exactamente la grafica posteada mas arriba, a mayor temperatura de 25 grados, la resistencia desminuye y al enfriar aumenta.

Tambien he usado mas de una entrada analogica, como es la A0,A1,A2 y A3.

Este es el codigo que he usado desde el inicio del proyecto.

#define termistorPin A3
#define termistorNominalRes 100000
#define termistorNominalTemp 25
#define termistorBValue 3950
#define VoltageDividerResistor 100000
float termistorRes = 0.0;
float steinhart;
void setup() {
    Serial.begin(9600);
}
 
void loop() {
  termistorRes = ((float)analogRead (termistorPin)* VoltageDividerResistor)/(1023 - (float)analogRead (termistorPin));
  steinhart = termistorRes / termistorNominalRes;     // (R/Ro)
  steinhart = log(steinhart);                         // ln(R/Ro)
  steinhart /= termistorBValue;                       // 1/B * ln(R/Ro)
  steinhart += 1.0 / (termistorNominalTemp + 273.15); // + (1/To)
  steinhart = 1.0 / steinhart;                        // Invert  
  steinhart -= 273.15;                                // convert to C
  Serial.print("Temperature "); 
  Serial.print(steinhart);
  Serial.println(" *C");
  delay(500);
}

Gracias por el tiempo que se dan para responder.

Bueno somos dos que no entimos. Y si lees bien las normas, ellas te piden que seas explicito y que aportes toda la información que ayude a contextualizar un tema.

Pasemos a como resolverlo mejor.

Acá esta el link de @ AlexLPD a quien siempre cito porque es muy bueno este post para mi gusto.
No es como tu lo haces. Se basa en los valores obtenidos con la calculadora.

image
Esto es lo que tu usas, coincide con lo que el tutorial de Luis Llamas propone.

Pero luego veo diferencias importantes en las formulas, aunque como te funcionaban descarto que estan bien.

No será que has invertido la posición del NTC?

1 Like

@renorainchile
intente cambiar su línea de cálculo de resistencia a esta:

No cambie el resto de los cálculos.

Eso implica que esta invertido el divisor resistivo.

Sí, espero que esto resuelva el problema de inversión de temperatura de OP

Realizaré el cambio y les comento.

Saludos

Espero sea eso y no me podría explicar como antes marcaba bien y después no. Pero volveré todo de cero para entender mejor y aplicaré el cambio, pero también miraré todas las otras fórmulas y comparare. No me gusta quedarme con la sensación de solo copy/paste.

Saludos y gracias.

Porque habrás invertido la ubicación del NTC.

Efectivamente, el divisor estaba invertido.
Revise las formulas y las que copie estaban mal implementadas y cometí el error de no leer los comentarios.

En el algún momento copie la formula mal aplicada y entre tanto código no vi diferencias y entre cambio y cambio perdí el foco.

Ahora si esta todo OK funcionando, Arduino Nano, DHT11,NTC100,ESP01 con Bootstrap y SSD1306.

Gracias a todos (sin excepción) por sus comentarios y aportes, y lamento el roce con Surbyte

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.