Taula de continguts:
- Pas 1: components
- Pas 2: pont de Wheatstone
- Pas 3: Amplificació
- Pas 4: alimentació del circuit
- Pas 5: Circuit complet i codi
- Step 6: Time Response of PT100
Vídeo: Mesurament de la temperatura des de PT100 mitjançant Arduino: 6 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-31 10:17
El PT100 és un detector de temperatura de resistència (RTD) que canvia la seva resistència en funció de la temperatura circumdant, s’utilitza àmpliament per a processos industrials amb dinàmica lenta i rangs de temperatura relativament amplis. S'utilitza per a processos dinàmics lents, ja que els RTD tenen temps de resposta lents (dels quals parlo més endavant), però són precisos i tenen una baixa deriva al llarg del temps. El que us mostraré en aquest Instructable no estaria a l'altura de la norma industrial, però us exposarà a una forma alternativa de mesurar la temperatura que no pas l'ús del LM35, que molts aficionats coneixeria i la teoria del circuit mostrada. es pot aplicar a altres sensors.
Pas 1: components
1x PT100 (dos cables)
1x Arduino (qualsevol model)
Amplificadors d’operació 3x 741 (LM741 o UA741)
1x resistència de 80ohm
2x resistències de 3,9 kohms
2x resistències de 3,3 kohms
2x 8,2 kohms resistències
2x resistències de 47kohms
Potenciòmetre 1x 5kohms
1 alimentació de dos terminals o bateries AA de 8x 1,5V
Estic fent servir un PT100 de dos fils, els PT100 de tres i quatre fils tindran circuits diferents. Els valors de la resistència per a la majoria d’aquests no han de ser exactament iguals que els anteriors, però si hi ha un parell de resistències, és a dir, els 3,9 Kohms, si els haguéssiu canviat per, diguem-ne 5k, haureu de canviar els dos per 5k com llavors ha de ser el mateix. Quan arribem al circuit, diré l’efecte de triar diferents valors. Per als amplificadors de funcionament (amplificadors operatius) podeu utilitzar altres amplificadors operatius, però aquests són els que he utilitzat.
Pas 2: pont de Wheatstone
Primer he de parlar de la fórmula per obtenir la temperatura de la resistència del PT100 abans de parlar de la primera part del circuit, la fórmula de la resistència és la següent:
on Rx és la resistència PT100, R0 és la resistència PT100 a 0 graus C, α és el coeficient de resistència a la temperatura i T és la temperatura.
R0 és 100ohms ja que es tracta d’un PT100, si fos un PT1000, R0 seria de 1000ohms. α és 0,00385 ohms / graus C extrets del full de dades. També hi ha una fórmula més precisa que es pot trobar aquí, però la fórmula anterior serà útil per a aquest projecte. Si transposem la fórmula podem calcular la temperatura per a una resistència determinada:
Suposem que volem mesurar alguna cosa que tingui un rang de temperatura de -51,85 a 130 graus C i que col·loquem el PT100 al circuit que es mostra a la imatge 1. Utilitzant l'equació anterior i l'equació de la tensió d'un divisor de tensió (mostrat a la primera imatge) podem calcular el rang de tensió. Part inferior del rang T = -51,85 (80ohms)
i a 130 graus (150 ohms):
Això donaria un rang de 0.1187V i un desplaçament de CC de 0.142 perquè sabem que la nostra temperatura mai baixarà de -51.85 graus C, això disminuirà la sensibilitat del rang que ens preocupa (80 a 130ohms) quan amplifiquem aquest voltatge. Per desfer-nos d’aquest desplaçament de CC i augmentar la nostra sensibilitat podem utilitzar un pont de Wheatstone que es mostra a la segona imatge.
La sortida del segon divisor de tensió (Vb-) es restarà de la primera sortida del divisor de tensió (Vb +) mitjançant un amplificador diferencial posteriorment. La fórmula per a la sortida del pont és només dos divisors de tensió:
La tensió de sortida del PT100 és de 80ohms i utilitza els altres valors de la imatge:
i per Pt100 de 150 ohms:
Mitjançant l’ús de Wheatstone, eliminem l’offset de CC i augmentem la sensibilitat després de l’amplificació. Ara que ja sabem com funciona el pont de Wheatstone, podem parlar de per què fem servir 80ohms i 3,3kohms. Els 80ohms s’expliquen a partir de la fórmula anterior, trieu aquest valor (anomenarem la resistència d’offset Roff) per ser el rang inferior de la vostra temperatura o fins i tot millor, lleugerament per sota de la part inferior del vostre interval, si s’utilitza per a sistemes de control per a la regulació de la temperatura o alguna cosa semblant, voldríeu saber fins a quin punt la temperatura baixa per sota del vostre rang de temperatura. Per tant, si -51,85C és la part inferior de l’interval, utilitzeu 74,975 ohms (-65 graus C) per al vostre Roff.
Vaig triar 3.3k per R1 i R3 per dues raons, per limitar el corrent i augmentar la linealitat de la sortida. Com que el PT100 canvia la resistència a causa de la temperatura, passar-hi massa corrent donarà lectures incorrectes a causa de l’autoescalfament, de manera que vaig escollir un corrent màxim de 5-10 mA. Quan el PT100 és de 80 ohms, el corrent és de 1.775 mA de manera tan segura per sota del rang màxim. Es redueix la resistència per augmentar la sensibilitat, però això pot tenir un efecte negatiu sobre la linealitat, ja que utilitzarem l’equació d’una línia més endavant (y = mx + c) que tingui una sortida no lineal, introduirà errors. La tercera imatge té un gràfic de la sortida del pont mitjançant diferents resistències superiors, la línia contínua és la sortida real i la línia de punts és l’aproximació lineal. Podeu veure al gràfic blau fosc (R1 i R3 = 200ohms) que dóna el rang de voltatge més gran, però la sortida és la menys lineal. El blau clar (R1 i R3 = 3,3 kohms) proporciona el rang de voltatge més petit, però la línia de punts i la línia contínua se superposen, mostrant que la seva linealitat és molt bona.
No dubteu a canviar aquests valors perquè s’adapti a la vostra aplicació, també si canvieu el voltatge, assegureu-vos que el corrent no sigui massa alt.
Pas 3: Amplificació
En l'últim pas, hem trobat que l'interval de sortida dels dos divisors de tensió restats era de 0 a 0.1187, però no hem parlat de com restar aquestes tensions. Per fer-ho, necessitarem un amplificador diferencial que restarà una entrada de l'altra i l'amplificarà pel guany de l'amplificador. El circuit per a un amplificador diferencial es mostra a la primera imatge. Alimentareu el Vb + a l’entrada inversora i el Vb- a l’entrada no inversora i la sortida serà el Vb + - Vb- amb un guany d’un, és a dir, sense amplificació, però afegint les resistències que es mostren a la imatge afegim un guany de 5.731. El guany ve donat per:
Ra és R5 i R7 i Rb és R6 i R8, la tensió de sortida ve donada per:
Hi ha dos problemes amb només connectar aquest amplificador a la sortida del pont, l’efecte de càrrega i canviar el guany. Canviar el guany de l'amplificador requereix que canvieu almenys dues resistències, ja que els dos parells de resistències han de ser iguals, de manera que tenir dos pots que tinguin el mateix valor seria molest, de manera que farem servir una cosa que s'anomena amplificador d'instrumentació del qual parlo a continuació. L’efecte de càrrega és que les resistències d’entrada a l’amplificador afecten la caiguda de tensió del PT100, volem que la tensió del PT100 no es canviï i per fer-ho podem escollir resistències molt grans per a les resistències d’entrada de manera que la resistència paral·lela del PT100 i la resistència d'entrada és molt propera a la resistència PT100, però això pot causar problemes de compensació de sortida de soroll i tensió en els quals no vaig a entrar. Només heu d’escollir el rang mitjà de la gamma Kohms, però com deia, tenir resistències petites també és dolent, de manera que canviarem una mica el circuit.
A la segona imatge, tenim la sortida del pont connectada a un amplificador d’instrumentació que actua com un amplificador de memòria intermèdia per separar les dues meitats dels circuits (el pont i l’amplificació) i que permet l’ús per amplificar l’entrada canviant només un potenciòmetre (Rgain). El guany de l'amplificador d'instrumentació ve donat per:
on Rc és la resistència de 3,9 k per sobre i per sota del test.
En disminuir Rgain, l'amplificació augmenta. Aleshores, en el punt Va i Vb (amplificat Vb + i Vb-), és només un ampli diferencial com abans i el guany total del circuit és només els guanys multiplicats junts.
Per triar el vostre guany, voleu fer alguna cosa com ho fèiem abans amb el Roff, hauríem de triar una resistència just per sobre de la vostra temperatura màxima al vostre abast per si supera. Com que estem fent servir l’Arduino, que té una intensitat de 5V, la sortida màxima del circuit hauria de ser de 5V a la temperatura màxima que trieu. Escollim els 150ohms com a resistència màxima i la tensió del pont sense amplificar era de 0.1187V, el guany que necessitem és de 42.185 (5 / 0.1187)
Suposem que mantenim Ra, Rb i Rc com a 8.2k, 47k i 3.9k, només hem de trobar el valor del pot Rgain:
Per tant, per treure els 5 volts complets del rang de temperatura que estem utilitzant, canvieu el valor de Rgain a 1.226k. La tensió de sortida que surt de l'ampli diferencial ve donada per:
Pas 4: alimentació del circuit
Aquest és l'últim pas del circuit, és possible que hagueu notat el Vcc + i el Vcc- als circuits d'amplificadors operatius, perquè es necessiten tensions positives i negatives per funcionar correctament, podeu obtenir amplificadors operatius d'un sol carril, però he decidit utilitzar aquests amplificadors, ja que això era el que tenia estirat. Així doncs, subministrarem + 6V i -6V, hi ha tres maneres de fer-ho. La primera es mostra a la primera imatge, on tenim dues fonts d’alimentació o dos terminals de sortida d’una sola font d’alimentació, tenen les dues a 6V i tenen una sortida positiva connectada al negatiu de l’altra. El 6V del subministrament superior serà el nostre + 6V, el positiu del subministrament inferior és el GND i el negatiu del subministrament inferior és el -6V. CONNEXEU-LO COM AQUEST SI LES GND DELS DOS SUBMINISTRAMENTS ESTAN SEPARATS O PERMETREU EL VOSTRE ALIMENTACIÓ. Totes les fonts d’alimentació comercials haurien separat de GND, però si voleu comprovar-ho, utilitzeu el provador de continuïtat del multímetre. Si s’activa, no utilitzeu aquesta configuració i utilitzeu la següent. Al meu subministrament casolà, vaig fer saltar el fusible fent això.
A la segona imatge es troba la segona configuració que podem tenir, requereix que un subministrament tingui el doble de voltatge que l’altre, però no danyarà el subministrament si es connecten els GND. Disposem de dos subministraments, un a 12V i un altre a 6V. El 12V actuarà com el nostre + 6V, el 6V del segon subministrament actuarà com el GND i els dos GND reals fora dels subministraments actuaran com a -6V.
Aquesta última configuració és per a les fonts d'alimentació amb una sola sortida, utilitza un amplificador de memòria intermèdia de guany 1 per crear una terra virtual passant la meitat de la tensió d'alimentació a través de l'amplificador de memòria intermèdia. Aleshores, el 12V actuarà com el + 6V i el terminal GND real serà -6V.
Si voleu utilitzar bateries, us suggeriria la primera configuració, però un problema amb les bateries és que la tensió caurà a mesura que comencin a morir i la tensió del pont també caurà, donant lectures incorrectes de temperatura. Per descomptat, podeu llegir el voltatge de les bateries i incloure-les als càlculs o utilitzar reguladors i més bateries. Al final, depèn de vosaltres.
Pas 5: Circuit complet i codi
El circuit complet es mostra a la part superior i es va fer al nou Circuits.io d’Autodesk, que us permet crear circuits a la placa de configuració, editar el diagrama de circuits (que es mostra a la imatge 2) i els diagrames de PCB i la millor part, us permet simular el circuit des de la placa de control i fins i tot es pot programar un Arduino i connectar-lo en mode de panell de control, més avall hi ha la simulació i es pot jugar amb dos pots. Si voleu duplicar el circuit i introduir els vostres propis valors, el podeu trobar aquí. El primer pot és de 70ohms i en sèrie amb una resistència de 80ohm que simula el PT100 amb un rang de 80-150ohms, el segon pot és el guany de l'amplificador d'instrumentació. Malauradament, he utilitzat una biblioteca que he descarregat per al meu codi, de manera que l'Arduino no està inclòs al circuit següent, però només hi ha dos cables addicionals que cal connectar. Si esteu més a gust amb LTspice, he inclòs un fitxer asc amb el circuit.
Connecteu el pin A0 a la sortida de l'amplificador diferencial
Connecteu el GND de l'Arduino al GND del circuit (NO EL -6V)
I aquest és el circuit fet, ara al codi. Abans he mencionat que utilitzarem la fórmula y = mx + c, doncs ara anem a calcular m (el pendent) i c (el desplaçament). A l’Arduino, llegirem la tensió, però l’equació de temperatura necessita que coneguem la resistència del PT100, de manera que podem fer-ho substituint Serial.println (temp) per Serial.println (V) i enregistrant el tensió i resistència a dues temperatures. En fer aquesta prova, deixeu el PT100 en pau durant una mica, com ara un minut o dos, i mantingueu-lo allunyat de qualsevol font de calor (llum solar, ventilador de portàtil, cos, etc.).
El primer punt que podem agafar és la temperatura ambient, quan tingueu el circuit connectat i funcionant, anoteu la tensió (Vt1) llegida per l’Arduino al monitor sèrie i desconnecteu ràpidament el PT100 i enregistreu la seva resistència (Rt1). mans a la sonda quan es desconnecta, ja que això canviarà la resistència. Per a la segona temperatura, podríem col·locar la sonda en aigua gelada o aigua calenta (aneu amb compte si feu servir aigua calenta) i repetir el que hem fet abans de trobar Vt2 i Rt2. Just després de col·locar la sonda al líquid, espereu un o dos minuts perquè la resistència s’assenti. Si us interessa la resposta horària del PT100, anoteu la tensió del monitor sèrie cada 2 segons aproximadament i en podem dibuixar un gràfic i ho explicaré més endavant. Utilitzant les dues tensions i resistències, podem calcular el pendent de la següent manera:
Rt1 i Rt2 són les resistències a les dues temperatures i el mateix per a les tensions Vt1 i Vt2. A partir del pendent i un dels dos conjunts de punts que heu registrat, podem calcular el desplaçament:
C hauria de ser proper al vostre Roff real, a partir de la meva simulació he calculat aquests valors:
A partir d’aquesta resistència podem trobar la nostra temperatura mitjançant la fórmula que teníem a l’inici:
I ja està, el codi de l’Arduino és a continuació, si teniu algun problema, deixeu un comentari i intentaré ajudar-vos.
No hi ha imatges del circuit que vaig fer tal com ho vaig fer fa un temps i ja no tinc el PT100 per refer-lo i provar-lo, però només m’haureu de creure que funciona. No he trobat gaire informació sobre el PT100 a Instructables, per això he fet que sigui fàcil.
En el següent pas parlaré de la resposta horària del PT100 i, si no us interessen les matemàtiques, quan mesureu un canvi de temperatura, deixeu que el PT100 es conformi un minut aproximadament abans de fer la lectura.
Si us interessa veure altres projectes que he fet, visiteu el meu
Bloc: Roboroblog
Canal de YouTube: Roboro
O mireu els meus altres instructables: aquí
Si l'HTML es fica amb el codi següent, s'adjunta el codi
* Aquest codi calcula la temperatura mitjançant un PT100
* Escrit per Roboro * Github: <a href = "https://github.com/RonanB96/Read-Temp-From-PT100-… <a href =" https://github.com/RonanB96/Read-Temp- Des de-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
Per tant, he esmentat que el PT100 té una resposta lenta, però podem obtenir una fórmula per a la temperatura actual que llegeix el PT100 en qualsevol moment t. La resposta del PT100 és una resposta de primer ordre que es pot escriure en termes de Laplace, és a dir, funció de transferència, com:
on tau (τ) és la constant de temps, K és el guany del sistema i s és l'operador de Laplace que es pot escriure com jω on ω és freqüència.
La constant de temps indica quant de temps triga un sistema de primer ordre a assentar-se al seu nou valor i una regla o polze és que 5 * tau és el temps que trigarà a assentar-se al nou estat estacionari. El guany K us indica quant s’amplificarà l’entrada. Amb el PT100, el guany és quant canvia la resistència dividida pel canvi de temperatura, en triar dos valors aleatoris d’aquest full de dades, vaig obtenir un guany de 0,3856 ohm / C.
Abans deia que podíeu enregistrar la tensió cada 2 segons després de posar la sonda al líquid, calenta o freda, a partir d’aquí podem calcular la constant de temps del sistema. Primer heu d’identificar on són el punt d’inici i el punt final, sent el punt d’inici el voltatge abans de posar la sonda al líquid i el punt final quan es va assentar. A continuació, resteu-los i aquest és el canvi de voltatge del pas, la prova que heu realitzat va ser un canvi de pas que és un canvi sobtat en l'entrada d'un sistema, el pas és la temperatura. Ara, al gràfic, aneu al 63,2% del canvi de voltatge i aquest temps és la constant de temps.
Si connecteu aquest valor a la funció de transferència, teniu la fórmula per descriure la resposta en freqüència dels sistemes, però això no és el que volem ara, volem la temperatura real en el moment t per un pas de temperatura, així que anem haver de realitzar una transformada inversa de Laplace d'un pas al sistema. La funció de transferència d’un sistema de primer ordre amb una entrada d’un pas és la següent:
On Ks és la mida del pas, és a dir, la diferència de temperatura. Suposem, doncs, que la sonda es col·loca a 20 graus C, es posa a l’aigua a 30 graus C i que la sonda té una constant de temps de 8 s, la funció de transferència i la fórmula del domini temporal són les següents:
Δ (t) només significa un impuls, és a dir, desplaçament de CC de 20 graus C en aquest cas, només podeu escriure 20 a les vostres equacions quan es calcula això. Aquesta és l'equació estàndard per al pas cap a un sistema de primer ordre:
L'anterior calcula la temperatura en el moment t, però això funcionarà per a la tensió ja que són proporcionals entre si, només necessiteu el valor inicial i final, la constant de temps i la mida del pas. Un lloc web anomenat Symbolab és ideal per comprovar si les vostres matemàtiques són correctes, pot fer Laplace, la integració, la diferenciació i moltes altres coses, i us proporciona tots els passos del camí. La transformada inversa de Laplace es pot trobar aquí.
Recomanat:
Greentent: la primera mini casa verda portàtil del món amb mesurament de temperatura i humitat Arduino: 3 passos
Greentent: el primer mini hivernacle portàtil del món amb mesurament de temperatura i humitat Arduino: per primera vegada vaig tenir la idea d’un hivernacle portàtil que es pot moure de nit quan volia fer una manera de tenir un petit jardí en una caixa amb temperatura controlada i Humiditat. Per tant, és a la nit i vull anar a una botiga per obtenir aquests
Mesura de la temperatura mitjançant un PT100 i un Arduino: 16 passos
Mesura de la temperatura mitjançant un PT100 i un Arduino: l’objectiu d’aquest projecte és dissenyar, construir i provar un sistema de detecció de temperatura. El sistema va ser dissenyat per mesurar un rang de temperatura de 0 a 100 ° C. Es va utilitzar un PT100 per mesurar la temperatura i és un detector de temperatura de resistència (RTD)
Mesurament de les quantitats d’aigua mitjançant el sensor de pressió: 5 passos
Mesurament de les quantitats d’aigua mitjançant el sensor de pressió: es va utilitzar un sensor de pressió per mesurar la quantitat d’aigua d’un dipòsit. Equipament: sensor de 24 PC
Dispositiu de mesurament elèctric de cost energètic Arduino: 13 passos (amb imatges)
Dispositiu de mesurament elèctric de cost energètic Arduino: pagueu massa per les vostres factures d'electricitat? Voleu saber quanta electricitat consumeix la vostra caldera o escalfador? Feu el vostre propi comptador elèctric de cost energètic portàtil. Mireu com he trobat l’ús d’aquest dispositiu
Mesurament d'aigua basat en web amb IoBridge: 10 passos (amb imatges)
Mesurament d’aigua basat en web amb IoBridge: Després del projecte de mesurador de potència en temps real que vaig fer al gener, el següent pas lògic semblava ser un mesurador d’aigua basat en ioBridge. Siguem realistes, la conservació d’energia no salvarà el planeta per si sol. Hi ha molts recursos a més de triar