Tabla de contenido:

Medición de temperatura desde PT100 usando Arduino: 6 pasos (con imágenes)
Medición de temperatura desde PT100 usando Arduino: 6 pasos (con imágenes)

Video: Medición de temperatura desde PT100 usando Arduino: 6 pasos (con imágenes)

Video: Medición de temperatura desde PT100 usando Arduino: 6 pasos (con imágenes)
Video: Sensor de temperatura: RTD PT-100, desarrollo, simulación y acondicionamiento de señal 2024, Noviembre
Anonim
Midiendo la temperatura desde PT100 usando Arduino
Midiendo la temperatura desde PT100 usando Arduino

El PT100 es un detector de temperatura de resistencia (RTD) que cambia su resistencia dependiendo de la temperatura circundante, se usa ampliamente para procesos industriales con dinámica lenta y rangos de temperatura relativamente amplios. Se usa para procesos dinámicos lentos porque los RTD tienen tiempos de respuesta lentos (de los que hablaré más adelante) pero son precisos y tienen una baja desviación con el tiempo. Lo que le voy a mostrar en este Instructable no estaría a la altura del estándar industrial, pero lo expondrá a una forma alternativa de medir la temperatura que usando el LM35 con el que muchos aficionados estarían familiarizados y la teoría de circuitos mostrada. se puede aplicar a otros sensores.

Paso 1: componentes

1x PT100 (dos cables)

1x Arduino (cualquier modelo)

3 amplificadores de operación 741 (LM741 o UA741)

1x resistencia de 80 ohmios

2x resistencias de 3.9kohms

2x resistencias de 3.3kohms

2x resistencias de 8.2kohms

2x resistencias de 47kohms

Potenciómetro 1x 5kohms

1x fuente de alimentación de dos terminales o 8 pilas AA de 1,5 V

Estoy usando un PT100 de dos cables, los PT100 de tres y cuatro cables tendrán diferentes circuitos. Los valores de resistencia para la mayoría de estos no tienen que ser exactamente los mismos que los anteriores, pero si hay un par de resistencias, es decir, los 3.9Kohms, si los intercambió por digamos 5k, deberá cambiar ambos por 5k como entonces. debe ser el mismo. Cuando tengamos el circuito diré el efecto de elegir diferentes valores. Para los amplificadores de operación (amplificadores operacionales) puedes usar otros amplificadores operacionales, pero estos son los que yo utilicé.

Paso 2: Puente de Wheatstone

Puente de Wheatstone
Puente de Wheatstone
Puente de Wheatstone
Puente de Wheatstone
Puente de Wheatstone
Puente de Wheatstone

Primero necesito hablar sobre la fórmula para obtener la temperatura de la resistencia para el PT100 antes de hablar sobre la primera parte del circuito, la fórmula para la resistencia es la siguiente:

Imagen
Imagen

donde Rx es la resistencia PT100, R0 es la resistencia PT100 a 0 grados C, α es el coeficiente de resistencia a la temperatura y T es la temperatura.

Imagen
Imagen

R0 es 100ohms ya que es un PT100, si fuera un PT1000, R0 sería 1000ohms. α es 0.00385 ohmios / grados C tomado de la hoja de datos. También hay una fórmula más precisa que se puede encontrar aquí, pero la fórmula anterior servirá para este proyecto. Si transponemos la fórmula podemos calcular la temperatura para una determinada resistencia:

Imagen
Imagen

Digamos que queremos medir algo que tendría un rango de temperatura de -51.85 a 130 grados C y colocamos el PT100 en el circuito que se muestra en la imagen 1. Usando la ecuación anterior y la ecuación para el voltaje de un divisor de voltaje (mostrado en la primera imagen) podemos calcular el rango de voltaje. Parte inferior del rango T = -51.85 (80ohms)

Imagen
Imagen

y a 130 grados (150 ohmios):

Imagen
Imagen

Esto daría un rango de 0.1187V y una compensación de CC de 0.142 porque sabemos que nuestra temperatura nunca bajará de -51.85 grados C, esto disminuirá la sensibilidad en el rango que nos importa (80 a 130ohms) cuando amplificamos este voltaje. Para deshacernos de este desplazamiento de CC y aumentar nuestra sensibilidad, podemos usar un puente de Wheatstone que se muestra en la segunda imagen.

La salida del segundo divisor de voltaje (Vb-) se restará de la salida del primer divisor de voltaje (Vb +) usando un amplificador diferencial más adelante. La fórmula para la salida del puente es solo dos divisores de voltaje:

Imagen
Imagen

El voltaje de salida para el PT100 es de 80 ohmios y usa los otros valores en la imagen:

Imagen
Imagen

y para Pt100 siendo 150ohms:

Imagen
Imagen

Al usar Wheatstone, nos deshacemos de la compensación de CC y aumentamos la sensibilidad después de la amplificación. Ahora que sabemos cómo funciona el puente de Wheatstone, podemos hablar sobre por qué usamos 80 ohmios y 3,3 kohmios. Los 80 ohmios se explican de alguna manera a partir de la fórmula anterior, elija este valor (lo llamaremos la resistencia de compensación Roff) para que sea el rango inferior de su temperatura o incluso mejor, ligeramente por debajo del fondo de su rango, si se usa para un sistema de control para regular la temperatura o algo así, querrá saber qué tan baja está la temperatura por debajo de su rango de temperatura. Entonces, si -51.85C es la parte inferior de su rango, use 74.975 ohmios (-65 grados C) para su Roff.

Elegí 3.3k para R1 y R3 por dos razones, para limitar la corriente y aumentar la linealidad de la salida. Como el PT100 cambia de resistencia debido a la temperatura, si pasa demasiada corriente a través de él se obtendrán lecturas incorrectas debido al autocalentamiento, por lo que elegí una corriente máxima de 5-10 mA. Cuando el PT100 es de 80 ohmios, la corriente es de 1,775 mA, por lo que es seguro que está por debajo del rango máximo. Disminuye la resistencia para aumentar la sensibilidad, pero esto podría tener un efecto negativo en la linealidad, ya que usaremos la ecuación de una línea más adelante (y = mx + c) al tener una salida no lineal se introducirán errores. La tercera imagen tiene un gráfico de la salida del puente usando diferentes resistencias superiores, la línea continua es la salida real y la línea de puntos es la aproximación lineal. Puede ver que en el gráfico azul oscuro (R1 & R3 = 200ohms) da el rango de voltaje más grande pero la salida es la menos lineal. El azul claro (R1 y R3 = 3.3kohms) da el rango de voltaje más pequeño, pero la línea de puntos y la línea continua se superponen, lo que muestra que su linealidad es muy buena.

Siéntase libre de cambiar estos valores para adaptarlos a su aplicación, también si cambia el voltaje, asegúrese de que la corriente no sea demasiado alta.

Paso 3: amplificación

Amplificación
Amplificación
Amplificación
Amplificación

En el último paso, encontramos que el rango de salida de los dos divisores de voltaje restados era de 0 a 0.1187, pero no hemos hablado sobre cómo restar estos voltajes. Para hacer esto, necesitaremos un amplificador diferencial que restará una entrada de la otra y la amplificará con la ganancia del amplificador. El circuito de un amplificador diferencial se muestra en la primera imagen. Usted alimenta Vb + en la entrada inversora y Vb- en la entrada no inversora y la salida será Vb + - Vb- con una ganancia de uno, es decir, sin amplificación, pero al agregar las resistencias que se muestran en la imagen, agregamos una ganancia de 5.731. La ganancia viene dada por:

Imagen
Imagen

Ra es R5 y R7 y Rb es R6 y R8, el voltaje de salida viene dado por:

Imagen
Imagen

Hay dos problemas con solo conectar este amplificador a la salida del puente, el efecto de carga y el cambio de ganancia. Cambiar la ganancia del amplificador requiere que cambie al menos dos resistencias, ya que los dos pares de resistencias deben ser iguales, por lo que tener dos ollas que deben tener el mismo valor sería molesto, por lo que usaremos algo llamado amplificador de instrumentación. del que hablo a continuación. El efecto de carga son las resistencias de entrada en el amplificador que afectan la caída de voltaje en el PT100, queremos que el voltaje en el PT100 no cambie y para hacer esto podemos elegir resistencias muy grandes para las resistencias de entrada de modo que la resistencia en paralelo del PT100 y la resistencia de entrada está muy cerca de la resistencia PT100, pero esto puede causar problemas con el ruido y la compensación de salida de voltaje en los que no voy a entrar. Simplemente elija un rango medio en el rango de Kohms, pero como estaba diciendo, tener resistencias pequeñas también es malo, así que cambiaremos un poco el circuito.

En la segunda imagen, tenemos la salida del puente conectada a un amplificador de instrumentación que actúa como un amplificador de búfer para separar las dos mitades de los circuitos (el puente y la amplificación) y también permite su uso para amplificar la entrada cambiando solo un potenciómetro (Rgain). La ganancia del amplificador de instrumentación viene dada por:

Imagen
Imagen

donde Rc es la resistencia de dos 3.9k arriba y abajo de la olla.

Al disminuir Rgain, aumenta la amplificación. Luego, en el punto Va y Vb (amplificado Vb + y Vb-), es solo un amplificador diferencial como antes y la ganancia total del circuito es solo las ganancias multiplicadas juntas.

Imagen
Imagen

Para elegir su ganancia, desea hacer algo como lo hicimos antes con el Roff, debemos elegir una resistencia justo por encima de su temperatura máxima en su rango en caso de que se supere. Debido a que estamos usando el Arduino que tiene un adc de 5 V, la salida máxima del circuito debe ser de 5 V a la temperatura máxima que elija. Elijamos los 150 ohmios como la resistencia máxima y el voltaje del puente sin amplificar fue 0.1187V, la ganancia que necesitamos es 42.185 (5 / 0.1187)

Digamos que mantenemos Ra, Rb y Rc en 8.2k, 47k y 3.9k, solo necesitamos encontrar el valor del bote Rgain:

Imagen
Imagen

Entonces, para sacar los 5 voltios completos del rango de temperatura que estamos usando, cambie el valor de Rgain a 1.226k. El voltaje de salida que sale del amplificador diferencial viene dado por:

Paso 4: Encendido del circuito

Encendido del circuito
Encendido del circuito
Encendido del circuito
Encendido del circuito
Encendido del circuito
Encendido del circuito

Este es el último paso del circuito, es posible que haya notado el Vcc + y el Vcc- en los circuitos del amplificador operacional, esto se debe a que necesitan voltaje positivo y negativo para funcionar correctamente, puede obtener amplificadores operacionales de un solo riel, pero decidí para usar estos amplificadores, ya que eso es lo que tenía por ahí. Suministraremos + 6V y -6V, hay tres formas de hacer esto. El primero se muestra en la primera imagen donde tenemos dos fuentes de alimentación o dos terminales de salida de una sola fuente de alimentación, tener ambas a 6V y tener una salida positiva conectada a la negativa de la otra. Los 6V del suministro superior serán nuestros + 6V, el positivo del suministro inferior es el GND y el negativo del suministro inferior es el -6V. SOLO CONÉCTELO ASÍ SI LAS TOMAS DE TIERRA DE LOS DOS SUMINISTROS ESTÁN SEPARADAS O DAÑARÁN SU FUENTE DE ALIMENTACIÓN. Todas las fuentes de alimentación comerciales tendrían GND separadas, pero si desea verificar, use el probador de continuidad en su multímetro, si suena, no use esta configuración y use la siguiente. En mi suministro casero, soplé la mecha haciendo esto.

En la segunda imagen es la segunda configuración que podemos tener, requiere que un suministro tenga el doble de voltaje que el otro, pero no dañará el suministro si los GND están conectados. Disponemos de dos suministros, uno a 12V y otro a 6V. Los 12V actuarán como nuestro + 6V, los 6V del segundo suministro actuarán como GND y los dos GND reales de los suministros actuarán como -6V.

Esta última configuración es para las fuentes de alimentación con una sola salida, utiliza un amplificador de búfer de ganancia 1 para crear una tierra virtual pasando la mitad del voltaje de suministro a través del amplificador de búfer. Entonces, 12V actuará como + 6V y el terminal GND real será -6V.

Si desea usar baterías, sugeriría la primera configuración, pero un problema con las baterías es que el voltaje caerá a medida que comienzan a morir y el voltaje fuera del puente también disminuirá, dando lecturas de temperatura incorrectas. Por supuesto, puede leer el voltaje de las baterías e incluirlas en los cálculos o usar reguladores y más baterías. Al final, depende de ti.

Paso 5: Circuito completo y código

Circuito completo y código
Circuito completo y código
Circuito completo y código
Circuito completo y código
Circuito completo y código
Circuito completo y código

El circuito completo se muestra arriba y se hizo en el nuevo Circuits.io de Autodesk, que le permite crear circuitos en la placa de prueba, editar el diagrama de circuito (que se muestra en la imagen 2) y los diagramas de PCB y la mejor parte, le permite simular el circuito desde la placa de prueba y Incluso puedes programar un Arduino y conectarlo en el modo de tablero, más abajo en la página está la simulación y puedes jugar con dos macetas. Si desea duplicar el circuito y poner sus propios valores, puede encontrar el circuito aquí. La primera olla es de 70 ohmios y en serie con una resistencia de 80 ohmios que simula el PT100 con un rango de 80-150 ohmios, la segunda olla es la ganancia del amplificador de instrumentación. Lamentablemente, usé una biblioteca que descargué para mi código, por lo que Arduino no está incluido en el circuito a continuación, pero solo hay dos cables adicionales que necesita conectar. Si se siente más cómodo con LTspice, incluí un archivo asc con el circuito.

Conecte el pin A0 a la salida del amplificador diferencial

Conecte el GND del Arduino al GND del circuito (NO EL -6V)

Y ese es el circuito hecho, ahora en el código. Anteriormente mencioné que usaremos la fórmula y = mx + c, bueno, ahora vamos a calcular m (la pendiente) yc (el desplazamiento). En el Arduino, estaremos leyendo voltaje, pero la ecuación de temperatura necesita que sepamos la resistencia del PT100, por lo que una forma de hacerlo es reemplazando Serial.println (temp) con Serial.println (V) y registrar el voltaje y resistencia a dos temperaturas. Al hacer esta prueba, deje el PT100 solo por un momento, como uno o dos minutos y manténgalo alejado de cualquier fuente de calor (luz solar, ventilador de computadora portátil, su cuerpo, etc.).

El primer punto que podemos tomar es la temperatura ambiente, cuando tenga el circuito conectado y funcionando, registre el voltaje (Vt1) leído por el Arduino en el monitor serial y desconecte rápidamente el PT100 y registre su resistencia (Rt1), no ponga su Coloque las manos en la sonda al desconectar, ya que esto cambiará la resistencia. Para la segunda temperatura, podríamos colocar la sonda en agua helada o agua caliente (tenga cuidado si usa agua caliente) y repetir lo que hicimos antes de encontrar Vt2 y Rt2. Justo después de colocar la sonda en el líquido, espere uno o dos minutos para que se asiente la resistencia. Si está interesado en la respuesta de tiempo del PT100, registre el voltaje fuera del monitor en serie cada 2 segundos más o menos y podemos dibujar un gráfico a partir de esto y lo explicaré más adelante. Usando los dos voltajes y resistencias, podemos calcular la pendiente de la siguiente manera:

Imagen
Imagen

Rt1 y Rt2 son las resistencias a las dos temperaturas y lo mismo ocurre con los voltajes Vt1 y Vt2. A partir de la pendiente y uno de los dos conjuntos de puntos que registró, podemos calcular el desplazamiento:

Imagen
Imagen

C debería estar cerca de su Roff real, de mi simulación calculé estos valores:

Imagen
Imagen

A partir de esta resistencia podemos encontrar nuestra temperatura usando la fórmula que teníamos al principio:

Imagen
Imagen

Y eso es todo, el código para el Arduino está debajo, si tienes algún problema, solo deja un comentario e intentaré ayudarte.

No hay fotos del circuito que hice como lo hice hace un tiempo y ya no tengo el PT100 para rehacer y probar, pero tendrás que creerme que funciona. No hay mucho sobre el PT100 en Instructables que encontré, por eso lo hice ible.

En el siguiente paso, hablaré sobre la respuesta de tiempo del PT100 y si no está interesado en las matemáticas, cuando esté midiendo un cambio de temperatura, deje que el PT100 se asiente durante un minuto más o menos antes de tomar la lectura.

Si estás interesado en ver otros proyectos que he realizado, visita mi

Blog: Roboroblog

Canal de YouTube: Roboro

O mira mis otros Instructables: aquí

Si el HTML interfiere con el siguiente código, se adjunta el código

* Este código calcula la temperatura usando un PT100

* Escrito por Roboro * Github: <a href = "https://github.com/RonanB96/Read-Temp-From-PT100-… <a href =" https://github.com/RonanB96/Read-Temp- From-PT100-… <a href = "https://github.com/RonanB96/Read-Temp-From-PT100-… >>>>>>>>> * Circuit: <a href=" href="https://github.com/RonanB96/Read-Temp-From-PT100-… <a href=" https://github.com/ronanb96/read-temp-from-pt100-…="">>>>>>>>>> * Blog: <a href=" href="https://github.com/RonanB96/Read-Temp-From-PT100-… <a href=" https://github.com/ronanb96/read-temp-from-pt100-…="">>>>>>>>>> * Instrustable Post: <a href=" href="https://github.com/RonanB96/Read-Temp-From-PT100-… <a href=" https://github.com/ronanb96/read-temp-from-pt100-…="">>>>>>>>>> * */ //You'll need to download this timer library from here //https://www.doctormonk.com/search?q=timer #include "Timer.h" // Define Variables float V; float temp; float Rx; // Variables to convert voltage to resistance float C = 79.489; float slope = 14.187; // Variables to convert resistance to temp float R0 = 100.0; float alpha = 0.00385; int Vin = A0; // Vin is Analog Pin A0 Timer t; // Define Timer object

void setup() {

Serial.begin(9600); // Set Baudrate at 9600 pinMode(Vin, INPUT); // Make Vin Input t.every(100, takeReading); // Take Reading Every 100ms } void loop() { t.update(); // Update Timer } void takeReading(){ // Bits to Voltage V = (analogRead(Vin)/1023.0)*5.0; // (bits/2^n-1)*Vmax // Voltage to resistance Rx = V*slope+C; //y=mx+c // Resistance to Temperature temp= (Rx/R0-1.0)/alpha; // from Rx = R0(1+alpha*X) // Uncommect to convet celsius to fehrenheit // temp = temp*1.8+32; Serial.println(temp); }

Step 6: Time Response of PT100

Respuesta de tiempo de PT100
Respuesta de tiempo de PT100

Así que mencioné que el PT100 tiene una respuesta lenta, pero podemos obtener una fórmula para la temperatura actual leída por el PT100 en cualquier momento t. La respuesta del PT100 es una respuesta de primer orden que se puede escribir en términos de Laplace, es decir, función de transferencia, como:

Imagen
Imagen

donde tau (τ) es la constante de tiempo, K es la ganancia del sistema y s es el operador de Laplace que se puede escribir como jω donde ω es la frecuencia.

La constante de tiempo le dice cuánto tiempo tarda un sistema de primer orden en asentarse en su nuevo valor y una regla o pulgar es que 5 * tau es el tiempo que tardará en asentarse en el nuevo estado estable. La ganancia K le dice cuánto se amplificará la entrada. Con el PT100, la ganancia es cuánto cambia la resistencia dividida por el cambio de temperatura, al elegir dos valores aleatorios de esta hoja de datos, obtuve una ganancia de 0.3856 ohm / C.

Antes decía que se podía registrar el voltaje cada 2 segundos después de poner la sonda en el líquido, caliente o frío, a partir de esto podemos calcular la constante de tiempo del sistema. Primero debe identificar dónde están el punto de inicio y el punto final, el punto de inicio es el voltaje antes de poner la sonda en el líquido y el punto final es cuando se asienta. Luego réstelos y ese es el cambio de voltaje del paso, la prueba que realizó fue un cambio de paso que es un cambio repentino en la entrada de un sistema, el paso es la temperatura. Ahora, en su gráfico, vaya al 63.2% del cambio de voltaje y esta vez es la constante de tiempo.

Imagen
Imagen

Si conecta ese valor en la función de transferencia, entonces tiene la fórmula para describir la respuesta de frecuencia de los sistemas, pero eso no es lo que queremos ahora, queremos la temperatura real en el tiempo t para un paso en la temperatura, así que vamos tener que realizar una transformada inversa de Laplace de un paso en el sistema. La función de transferencia de un sistema de primer orden con una entrada de un paso es la siguiente:

Imagen
Imagen

Donde Ks es el tamaño del paso, es decir, la diferencia de temperatura. Entonces, digamos que la sonda se coloca a 20 grados C, se coloca en agua a 30 grados C y la sonda tiene una constante de tiempo de 8 s, la función de transferencia y la fórmula del dominio del tiempo es la siguiente:

Imagen
Imagen

El δ (t) solo significa un impulso, es decir, un desplazamiento de CC de 20 grados C en este caso, puede escribir 20 en sus ecuaciones al calcular esto. Esta es la ecuación estándar para el paso a un sistema de primer orden:

Imagen
Imagen

Lo anterior calcula la temperatura en el tiempo t, pero esto funcionará para el voltaje ya que son proporcionales entre sí, solo necesita el valor inicial y final, la constante de tiempo y el tamaño del paso. Un sitio web llamado Symbolab es excelente para verificar si sus matemáticas son correctas, puede hacer Laplace, integración, diferenciación y muchas otras cosas y le brinda todos los pasos a lo largo del camino. La transformada de Laplace inversa de la anterior se puede encontrar aquí.

Recomendado: