7 votos

No se puede obtener una lectura precisa con el sensor de temperatura PT100

Estoy tratando de obtener un valor de temperatura más preciso de un sensor PT100 (2 hilos) con Arduino.

Así es como se ve mi circuito:

Circuito

Cuando el sensor está a unos 20 °C obtengo un valor en el pin A5 que es 432 y cuando el sensor está a unos 30 °C obtengo un valor en el pin A5 que es 440. Como puedes ver, este es un rango muy pequeño (432 - 440).

Quiero un rango de señal analógica más grande, como de 100 a 1000.

Quizás pueda obtener la resistencia del PT100 y con alguna fórmula matemática obtener la temperatura.

¿Qué puedo hacer con mi circuito para obtener una lectura de temperatura más precisa?

8voto

Chris Lieb Puntos 106

No puedes obtener lecturas más precisas con un RTD conectado directamente al convertidor A/D del Arduino. Para obtener lecturas más precisas, necesitas colocar el RTD en un puente y usar un amplificador de instrumentación para desarrollar una señal más grande.

4voto

En primer lugar, si desea obtener precisión de un PT100, debe usar una versión de 4 cables en lugar de 2.

En una versión de 4 cables, un par se utiliza para "alimentar" el PT100, el segundo se utiliza para medir la caída de voltaje en el PT100. De esta manera, la caída de voltaje en el cable es mínima: como V=RI e I es casi cero en el par de medición, no hay caída de voltaje. Dicho esto, como los PT100 no necesitan un cable específico, es muy fácil convertir un PT100 de 2 cables en un PT100 de 4 cables.

También debe asegurarse de que el resistor utilizado para medir la corriente que pasa a través del PT100 sea uno muy preciso (como del 0.01%). También sospecho que necesitará un AD mejor que el que tiene en su Arduino.

Una vez que esté seguro de que obtiene datos lo suficientemente precisos de su AD, entonces deberá usar tablas PT100 para interpolar valores. El método de Newton es fácil de programar y da buenos resultados.

Si cree que todo esto es demasiado complejo de manejar, entonces debería cambiar a un sensor de temperatura más fácil. Por ejemplo, un NTC probablemente funcionaría directamente en su Arduino, pero obtendrá una precisión de ~1° en lugar de 0.03°.

0 votos

Esa es una excelente respuesta por tu parte, aclara las cosas. @alexan_e sugirió que use MAX31856 (RTD a convertidor digital) que tiene un convertidor A/D preciso que estás sugiriendo... Te mereces un voto positivo por una explicación detallada. Gracias.

0 votos

Hola, tenía una pregunta sobre el uso de 4 cables en Arduino, ¿dónde debería conectarse el par de medición? ¿uno a Entrada analógica, y el otro? ¿a GND?

4voto

alexan_e Puntos 8256

Puedes usar un CI externo que se encargue de leer el sensor y luego obtener el resultado digitalmente, por ejemplo MAX31865

¿Quizás podría obtener de alguna manera la resistencia de PT100 y con alguna fórmula matemática obtener la temperatura?

Puedes encontrar tablas de resistencias en internet, puedes crear una tabla en flash y usar interpolación para calcular la temperatura basada en la resistencia que obtienes.

2voto

soypunk Puntos 231

Este tema podría ser una respuesta para ti ¿Medir la resistencia con precisión con un arduino?

Para calcular la temperatura puedes usar esta fórmula:

Los elementos del termómetro de resistencia se pueden suministrar que funcionan hasta 1000 °C. La relación entre la temperatura y la resistencia está dada por la ecuación Callendar-Van Dusen:

\$R_T = R_0 \left[ 1 + AT + BT^2 + CT^3 (T-100) \right] \; (-200\;{}^{\circ}\mathrm{C} < T < 0\;{}^{\circ}\mathrm{C}),\$ \$R_T = R_0 \left[ 1 + AT + BT^2 \right] \; (0\;{}^{\circ}\mathrm{C} \leq T < 850\;{}^{\circ}\mathrm{C}).\$

Aquí, \$R_T\$ es la resistencia a la temperatura \$T\$, \$R_0\$ es la resistencia a \$0 °C\$, y las constantes (para un \$\alpha=0.00385\$ RTD de platino) son:

\$A = 3.9083 \times 10^{-3} \; {}^{\circ}\mathrm{C}^{-1}\$

\$B = -5.775 \times 10^{-7} \; {}^{\circ}\mathrm{C}^{-2}\$

\$C = -4.183 \times 10^{-12} \; {}^{\circ}\mathrm{C}^{-4}.\$

Fuente: Wikipedia en inglés (http://en.wikipedia.org/wiki/Resistance_thermometer)

Espero que haya sido útil.

0voto

Creo que necesitas alimentar entre 7 V y 12 V al pin VIN de tu Arduino y usar el pin AREF para un lado del PT100 y el otro para el analógico. Eso podría ayudar a obtener una lectura consistente, pero aún así podrías tener que hacer una medición de 4 hilos para que sea precisa.

Tutorial de medición de resistencia de 4 hilos kelvin tiene una buena explicación sobre la medición de 4 hilos. Probablemente ya lo hayas entendido.

Edit Conectas el AREF al arduino 5v o 3.3v y el pt100 desde el mismo voltaje a un pin de entrada analógica adecuado en el arduino. Los reguladores de voltaje lineales en la placa de arduino son mucho más estables que tu cargador de energía USB y por lo tanto darán una mejor precisión. Conceptos básicos de Arduino (Referencia analógica)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X