Sensor trabaja de forma invertida

Buenas, estoy usando un sensor de temperatura, que varia su medida en Ohm, pero el problema es que trabaja a la inversa, es decir, cuando sube la temperatura, la medida de resistencia baja, y cuando baja la temperatura, la medida de resistencia sube, utilice una entrada analógica de un esp32, con un divisor de voltaje, para obtener la medida del sensor en voltios, entonces, el problema, es que cuando este esta funcionando, veo la variación de forma inversa, como puedo, a través de código, invertir esa señal analógica, para que cuando por ejemplo, aumente la temperatura, la medida del voltaje suba, en vez de bajar.

Muchas gracias, espero y alguien me ilumine :slight_smile:

Por lo visto tu sensor está basado en una resistencia NTC.

Resta a 4095 (el máximo valor que puede devolver el adc del ESP32 por defecto) el valor que lees.
Por ej.

int valor = 4095 - analogRead(x);

Luego usas valor para calcular el voltaje.

Saludos

Porque no pones el esquema electrico en el que usas el sensor NTC?
Si lo tienes mal montado es lógico que te de lecturas inversas.
Hay dos formas de usarlo, en la rama superior o en la inferior del divisor resistivo. El error común en montarlo en la superior. Debe ir en la inferior.

Buenas, hice lo que me dijo @MaximoEsfuerzo , este fue el código que coloque en la parte donde mido la temperatura:

////////////////////////////////////////////////////////////////////////
//////////////// MEDICION DE TEMPERATURA  ///////////////////////
////////////////////////////////////////////////////////////////////////


TEMP = analogRead(36);

TEMP2 = 4095 - TEMP; 

TEMP3 = map(TEMP2, 0, 4095, 2300, 4095);

TEMP3 = TEMP3/100;

temperatura = TEMP3;

  Serial.print("TEMPERATURA (*C) = ");
  Serial.println(temperatura);

Ya estoy viendo la medición bien, es decir, cuando le coloco algo caliente, me sube la temperatura, y cuando le coloco algo frio, me baja, pero hay un problema, que me varia muy pocos grados, por ejemplo, estoy en una habitación que la temperatura es de 22 grados, y ok me marca los 22, pero le pego el cautín al sensor, y solo me sube hasta 28 o 30 grados, y debería subir mucho mas, medí el voltaje de la entrada del puerto, y para 21 grados me mide 3 voltios, y cuando le pego el cautín, me baja el voltaje como hasta 1,5 voltios. Esa linea de código de MAP, la puse para tratar de ajustar la temperatura a la que me marca el termómetro del aire de la habitación donde estoy, que son 22 grados centígrados.

@Surbyte , el esquema electrico es un simple divisor de voltaje, el cual puede calcularlo en este link DIVISOR_VOLTAJE con la alimentación (V1) de 3,3 vdc, una resistencia (R1) de 100 ohm, y la resistencia (R2) es la que me da el sensor de temperatura, que esta varia entre 350 ohm hasta cero.

Muchas gracias por su tiempo, espero por favor me iluminen a ver que estoy haciendo mal.

Saludos

Bueno, vamos por partes.
Dices que tienes un sensor pero no eres muy específico.
¿Tienes solo el NTC o está montado en un módulo?

En el 2do. caso, ¿algún enlace al módulo?
¿Tiene corrección de linealidad?

Ahora, si es el 1er. caso, solo la NTC, hay que tener en cuenta algunas consideraciones.
Los termistores no tienen una curva de respuesta lineal, en el caso de las NTC se asemeja a una hipérbole


Con la resta, invertimos la curva, pero sigue siendo una curva y resulta que la función map() es lineal entonces los únicos valores que se ajustan (o aproximan) a los de la NTC son los de los extremos, los demás se alejan de la medición real (y mucho).
Obviamente, hablando de un rango de medición amplio (como en el gráfico).
Para un rango acotado, la respuesta puede considerarse lineal. Como se ve en el gráfico, todo depende del rango y la amplitud del mismo, cuanto más pequeño menor error, por ej. para un rango entre 20° y 30° (incluso hasta 40°) el error sería bajo, en cambio para el rango 0° y 40° la cosa cambia

Para solucionar el problema tienes que aplicar ecuaciones de corrección y linealización de las mediciones o armar algún circuito (gralmente. con algún operacional) que ya entregue a su salida los valores corregidos.

En el foro hay muchos hilos con este tema y en varios se menciona una calculadora de parámetros A B C o similares que debes usar para ajustar la curva NTC a tu caso.
Solo busca en la LUPA NTC calculadora o en internet
Calculadora NTC

Este es uno.

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