Sisällysluettelo:

Lämpötilan mittaus PT100: sta Arduinon avulla: 6 vaihetta (kuvien kanssa)
Lämpötilan mittaus PT100: sta Arduinon avulla: 6 vaihetta (kuvien kanssa)

Video: Lämpötilan mittaus PT100: sta Arduinon avulla: 6 vaihetta (kuvien kanssa)

Video: Lämpötilan mittaus PT100: sta Arduinon avulla: 6 vaihetta (kuvien kanssa)
Video: Octopus Max EZ v1.0 - Hotend and Automatic Cooling Fans 2024, Marraskuu
Anonim
Lämpötilan mittaus PT100: sta Arduinon avulla
Lämpötilan mittaus PT100: sta Arduinon avulla

PT100 on vastuslämpötilan ilmaisin (RTD), joka muuttaa vastustaan ympäröivän lämpötilan mukaan. Sitä käytetään laajalti teollisissa prosesseissa, joissa on hidas dynamiikka ja suhteellisen laaja lämpötila -alue. Sitä käytetään hitaissa dynaamisissa prosesseissa, koska RTD: llä on hidas vasteaika (josta puhun lisää myöhemmin), mutta ne ovat tarkkoja ja niillä on vähäinen ajautuminen. Se, mitä näytän sinulle tässä opetusohjelmassa, ei olisi teollisen standardin mukainen, mutta se altistaa sinut vaihtoehtoiselle lämpötilan mittaustavalle kuin LM35: n käyttäminen, jonka monet harrastajat tuntevat, ja esitetty piiriteoria voidaan soveltaa muihin antureihin.

Vaihe 1: Komponentit

1x PT100 (kaksi johdinta)

1x Arduino (mikä tahansa malli)

3x 741 -käyttövahvistimet (LM741 tai UA741)

1x 80ohm vastus

2x 3,9 khm: n vastukset

2x 3,3 khm: n vastukset

2x 8,2 khm: n vastukset

2x 47kohms vastukset

1x 5kohms potentiometri

1x kahden liittimen virtalähde tai 8x 1,5V AA -paristot

Käytän kaksijohtimista PT100: ta, kolmen ja neljän langan PT100: eissa on eri piirit. Useimpien näiden vastuksen arvojen ei tarvitse olla täsmälleen samat kuin edellä, mutta jos on olemassa pari vastusta eli 3,9 ohmia, jos vaihdoit ne esimerkiksi 5k: ksi, sinun on vaihdettava molemmat 5k: ksi kuten silloin täytyy olla sama. Kun saamme piirin, sanon eri arvojen valitsemisen vaikutuksen. Operaatiovahvistimiin (op -vahvistimet) voit käyttää muita op -vahvistimia, mutta nämä ovat niitä, joita käytin.

Vaihe 2: Wheatstone Bridge

Wheatstonen silta
Wheatstonen silta
Wheatstonen silta
Wheatstonen silta
Wheatstonen silta
Wheatstonen silta

Minun on ensin puhuttava kaavasta lämpötilan saamiseksi PT100: n vastuksesta ennen kuin puhun piirin ensimmäisestä osasta, vastuksen kaava on seuraava:

Kuva
Kuva

jossa Rx on PT100 -vastus, R0 on PT100 -vastus 0 ° C: ssa, α on lämpötilan vastuskerroin ja T on lämpötila.

Kuva
Kuva

R0 on 100 ohmia, koska tämä on PT100, jos se olisi PT1000, R0 olisi 1000 ohmia. α on 0,00385 ohmia/astetta C, joka on otettu taulukosta. Täältä löytyy myös tarkempi kaava, mutta yllä oleva kaava sopii tälle projektille. Jos transponoimme kaavan, voimme laskea tietyn vastuksen lämpötilan:

Kuva
Kuva

Oletetaan, että haluamme mitata jotain, jonka lämpötila -alue on -51,85 -130 astetta C ja asetimme PT100: n kuvassa 1 esitettyyn piiriin. Käyttämällä yllä olevaa yhtälöä ja jännitejakajan jänniteyhtälöä (esitetty ensimmäisessä kuvassa) voimme laskea jännitealueen. Alueen alareuna T = -51.85 (80ohms)

Kuva
Kuva

ja 130 astetta (150 ohmia):

Kuva
Kuva

Tämä antaisi alueen 0.1187V ja DC -poikkeaman 0.142, koska tiedämme, että lämpötilamme ei koskaan laske alle -51.85 astetta, mikä vähentää herkkyyttä välittämämme alueen (80-130 ohmia), kun vahvistamme tätä jännitettä. Päästä eroon tästä DC -siirtymästä ja lisäämään herkkyyttämme käyttämällä Wheatstone -siltaa, joka näkyy toisessa kuvassa.

Toisen jännitteenjakajan (Vb-) ulostulo vähennetään ensimmäisestä jännitteenjakajan ulostulosta (Vb+) differentiaalivahvistimen avulla myöhemmin. Sillan ulostulon kaava on vain kaksi jännitteenjakajaa:

Kuva
Kuva

PT100: n jännite on 80 ohmia ja käytetään muita kuvan arvoja:

Kuva
Kuva

ja kun Pt100 on 150 ohmia:

Kuva
Kuva

Käyttämällä Wheatstonea pääsemme eroon DC -offsetista ja lisäämme herkkyyttä vahvistuksen jälkeen. Nyt kun tiedämme, miten Wheatstone -silta toimii, voimme puhua siitä, miksi käytämme 80 ohmia ja 3,3 kohmia. 80 ohmia selitetään tavallaan yllä olevasta kaavasta, valitse tämä arvo (kutsumme tätä offsetvastukseksi Roff) ollaksesi lämpötilan alimmaksi alueeksi tai vielä paremmaksi, hieman alimman alueen alapuolelle, jos tätä käytetään Jos haluat säätää lämpötilan säätöjärjestelmiä tai jotain vastaavaa, haluat tietää, kuinka alhainen lämpötila laskee lämpötila -alueesi alle. Joten jos -51,85C on alueen alin, käytä Roff -laitteellesi 74,975 ohmia (-65 astetta).

Valitsin 3.3k R1: lle ja R3: lle kahdesta syystä, rajoittaaksesi virtaa ja lisätäksesi tuotoksen lineaarisuutta. Koska PT100 muuttaa vastusta lämpötilan vuoksi, liiallisen virran läpäiseminen sen läpi antaa virheellisiä lukemia itsestään kuumentuen, joten valitsin maksimivirran 5-10 mA. Kun PT100 on 80 ohmia, virta on 1,775 mA, joten se on turvallisesti maksimialueen alapuolella. Vähennät vastusta herkkyyden lisäämiseksi, mutta tällä voi olla kielteinen vaikutus lineaarisuuteen, koska käytämme viivojen yhtälöä myöhemmin (y = mx+c), jossa on epälineaarinen lähtö, virheitä. Kolmannessa kuvassa on käyrä siltaulostulosta, jossa käytetään erilaisia ylävastuksia, yhtenäinen viiva on todellinen lähtö ja katkoviiva on lineaarinen approksimaatio. Näet tummansinisestä kaaviosta (R1 & R3 = 200 ohmia) antaa suurimman jännitealueen, mutta lähtö on vähiten lineaarinen. Vaaleansininen (R1 & R3 = 3,3 khm) antaa pienimmän jännitealueen, mutta katkoviiva ja yhtenäinen viiva ovat päällekkäin, mikä osoittaa sen lineaarisuuden olevan erittäin hyvä.

Voit vapaasti muuttaa näitä arvoja sovellukseesi sopivaksi, myös jos muutat jännitettä, varmista, että virta ei nouse liian korkeaksi.

Vaihe 3: Vahvistus

Vahvistus
Vahvistus
Vahvistus
Vahvistus

Viimeisessä vaiheessa havaitsimme, että kahden jännitteenjakajan lähtöalue oli 0 - 0,1187, mutta emme ole puhuneet näiden jännitteiden vähentämisestä. Tätä varten tarvitsemme differentiaalivahvistimen, joka vähentää yhden tulon toisesta ja vahvistaa tätä vahvistimen vahvistuksella. Differentiaalivahvistimen piiri on esitetty ensimmäisessä kuvassa. Syötät Vb+ invertoivaan tuloon ja Vb- ei-invertoivaan tuloon ja lähtö on Vb+- Vb- vahvistuksella yksi eli ei vahvistusta, mutta lisäämällä kuvassa näkyvät vastukset lisäämme vahvistuksen 5,731. Voiton antaa:

Kuva
Kuva

Ra on R5 & R7 ja Rb on R6 & R8, jännitteen ulos antaa:

Kuva
Kuva

On vain kaksi ongelmaa vain liittämällä tämä vahvistin sillan ulostuloon, lataustehoste ja vahvistuksen muuttaminen. Vahvistimen vahvistuksen muuttaminen edellyttää, että vaihdat vähintään kaksi vastusta, koska kahden vastuksen parin on oltava samat, joten kahden potin, joilla on oltava sama arvo, on ärsyttävää, joten käytämme jotain instrumentaatiovahvistinta josta puhun alla. Kuormitusvaikutus on tulovastus vahvistimeen, joka vaikuttaa jännitehäviöön PT100: n yli, haluamme, että jännite PT100: n yli pysyy muuttumattomana, ja tätä varten voimme valita erittäin suuret vastukset tulovastauksille niin, että PT100: n rinnakkaisvastus ja tulovastus on hyvin lähellä PT100 -vastusta, mutta tämä voi aiheuttaa ongelmia melu- ja jännitelähtöpoikkeamissa, joihin en aio mennä. Valitse vain Kohms -alueen keskialue, mutta kuten sanoin, pienet vastukset ovat myös huonoja, joten muutamme piiriä hieman.

Toisessa kuvassa sillan ulostulo on kytketty instrumenttivahvistimeen, joka toimii puskurivahvistimena erottaakseen piirien kaksi puoliskoa (silta ja vahvistin) ja mahdollistaa myös tulon vahvistamisen muuttamalla vain yhtä potentiometriä (Rgain). Instrumenttivahvistimen vahvistus saadaan:

Kuva
Kuva

jossa Rc on kaksi 3,9 k: n vastusta potin ylä- ja alapuolella.

Vähentämällä Rgainia vahvistus kasvaa. Sitten kohdassa Va ja Vb (vahvistettu Vb+ ja Vb-) se on vain differentiaalivahvistin kuten ennen ja piirin kokonaisvahvistus on vain voitot kerrottuna yhdessä.

Kuva
Kuva

Jos haluat valita voiton, haluat tehdä jotain sellaista, mitä teimme ennen Roffin kanssa, meidän pitäisi valita vastus juuri yläraja -alueen yläpuolella, jos se ylittyy. Koska käytämme Arduinoa, jossa on 5 V: n jännite, piirin maksimitehon tulee olla 5 V valitsemassasi maksimilämpötilassa. Otetaan 150 ohmia maksimivastus ja sillan jännite ilman vahvistusta oli 0.1187V, tarvittava vahvistus on 42.185 (5/0.1187)

Sanotaan, että pidämme Ra, Rb ja Rc arvoina 8,2k, 47k ja 3,9k, meidän on vain löydettävä potin Rgain arvo:

Kuva
Kuva

Joten saadaksesi kaikki 5 volttia pois käyttämästämme lämpötila -alueesta, muuta Rgain -arvoksi 1,226 k. Differentiaalivahvistimesta tuleva lähtöjännite saadaan:

Vaihe 4: Virta virtapiirille

Virta piirille
Virta piirille
Virta piirille
Virta piirille
Virta piirille
Virta piirille

Tämä on piirin viimeinen vaihe, olet ehkä huomannut Vcc+: n ja Vcc-: n op-vahvistinpiireissä, tämä johtuu siitä, että ne tarvitsevat sekä positiivista että negatiivista jännitettä toimiakseen oikein, voit saada yhden kiskon op-vahvistimia, mutta päätin käyttää näitä vahvistimia, koska minulla oli se makaamassa. Joten toimitamme +6V ja -6V, meillä on kolme tapaa tehdä tämä. Ensimmäinen näkyy ensimmäisessä kuvassa, jossa meillä on kaksi virtalähdettä tai kaksi lähtöliitintä yhdestä virtalähteestä, molempien 6 V jännite ja yksi positiivinen lähtö kytketty toisen negatiiviseen. Yläsyötön 6V on +6V, alavirran positiivinen on GND ja alavirran negatiivinen -6V. KYTKE AINOASTAAN TÄMÄ, JOS KAKSI TARVIKKEEN GND ON ERITYISET TAI VAHINGOITA VIRRANSYÖTTÖÄ. Kaikki kaupalliset virtalähteet olisivat erottaneet GND: t, mutta jos haluat tarkistaa, käytä yleismittarisi jatkuvuustesteria, jos se sumisee, älä käytä tätä asetusta ja käytä seuraavaa. Kotitekoisissa tarvikkeissani puhalsin sulakkeen näin.

Toisessa kuvassa on toinen kokoonpano, joka meillä voi olla, se edellyttää, että yhdellä virtalähteellä on kaksinkertainen jännite toisella, mutta se ei vahingoita syöttöä, jos GND -laitteet on kytketty. Meillä on kaksi virtalähdettä, toinen 12V ja toinen 6V. 12 V toimii meidän +6 V: na, 6 V toisesta jännitteestä toimii GND: nä ja kaksi todellista GND: tä jännitteestä -6 V.

Tämä viimeinen asetus on tarkoitettu vain yhdellä lähdöllä varustetuille virtalähteille, se käyttää vahvistuksen 1 puskurivahvistinta virtuaalisen maan luomiseksi johtamalla puolet syöttöjännitteestä puskurivahvistimen läpi. Tällöin 12 V toimii +6 V: na ja todellinen GND -terminaali on -6 V.

Jos haluat käyttää paristoja, suosittelen ensimmäistä asennusta, mutta paristojen ongelma on, että jännite laskee, kun ne alkavat kuolla, ja myös jännite sillasta laskee, mikä antaa väärät lämpötilalukemat. Voit tietysti lukea akkujen jännitteen ja sisällyttää ne laskelmiin tai käyttää säätimiä ja muita paristoja. Lopulta se on sinun tehtäväsi.

Vaihe 5: Koko piiri ja koodi

Koko piiri ja koodi
Koko piiri ja koodi
Koko piiri ja koodi
Koko piiri ja koodi
Koko piiri ja koodi
Koko piiri ja koodi

Koko piiri on esitetty yllä ja se on tehty Autodeskin uudessa Circuits.io -ohjelmassa, jonka avulla voit luoda piirejä leipälevylle, muokata piirikaaviota (esitetty kuvassa 2) ja PCB -kaavioita ja parasta osaa, voit simuloida piirin leipälevyltä ja voi jopa ohjelmoida Arduinon ja liittää sen leipätaulutilassa, sivun alapuolella on simulaatio ja voit pelata kahdella potilla. Jos haluat kopioida piirin ja lisätä omat arvosi, löydät piirin täältä. Ensimmäinen potti on 70 ohmia ja sarjassa 80 ohmin vastuksella, joka simuloi PT100: a 80-150 ohmin alueella, toinen potti on instrumenttivahvistimen vahvistus. Valitettavasti käytin koodiani lataamaani kirjastoa, joten Arduino ei sisälly alla olevaan piiriin, mutta sinun on vain liitettävä kaksi ylimääräistä johtoa. Jos pidät enemmän LTspicen käytöstä, lisäsin piiriin asc -tiedoston.

Liitä A0 -nasta differentiaalivahvistimen lähtöön

Liitä Arduinon GND piirin GND: hen (EI -6V)

Ja se piiri on tehty, nyt koodiin. Aiemmin mainitsin, että käytämme kaavaa y = mx+c, nyt laskemme m (kaltevuus) ja c (offset). Arduinossa luemme jännitettä, mutta lämpötilayhtälö vaatii meitä tietämään PT100: n resistanssin, joten voimme tehdä tämän korvaamalla Serial.println (temp) Serial.println (V): llä ja tallentamalla jännite ja vastus kahdessa lämpötilassa. Kun teet tämän testin, jätä PT100 rauhaan hetkeksi, esimerkiksi minuutiksi tai pariksi, ja pidä kaukana kaikista lämmönlähteistä (auringonvalo, kannettavan tietokoneen tuuletin, kehosi jne.).

Ensimmäinen kohta, jonka voimme ottaa, on huoneenlämpötila, kun piiri on kytketty ja toimii, kirjaa Arduinon lukema jännite (Vt1) sarjamonitoriin ja irrota PT100 nopeasti ja rekisteröi sen vastus (Rt1). kädet anturin päällä irrotettaessa, koska tämä muuttaa vastusta. Toisen lämpötilan osalta voisimme laittaa anturin jääveteen tai kuumaan veteen (ole varovainen, jos käytät kuumaa vettä) ja toistaa mitä teimme ennen Vt2: n ja Rt2: n löytämistä. Heti sen jälkeen, kun anturi on asetettu nesteeseen, odota minuutti tai kaksi, kunnes vastus tasaantuu. Jos olet kiinnostunut PT100: n aikavastauksesta, kirjaa sarjamonitorin jännite noin kahden sekunnin välein ja voimme piirtää tästä kaavion, ja selitän sen myöhemmin. Kahden jännitteen ja vastuksen avulla voimme laskea kaltevuuden seuraavasti:

Kuva
Kuva

Rt1 ja Rt2 ovat vastus molemmissa lämpötiloissa ja sama pätee jännitteisiin Vt1 ja Vt2. Kaltevuudesta ja yhdestä kahdesta kirjaamastasi pistejoukosta voimme laskea poikkeaman:

Kuva
Kuva

C: n pitäisi olla lähellä todellista Roff -arvoa, laskin simulaatiosta nämä arvot:

Kuva
Kuva

Tästä vastuksesta voimme löytää lämpötilan käyttämällä kaavaa, joka meillä oli alussa:

Kuva
Kuva

Ja siinä kaikki, Arduinon koodi on alla, jos sinulla on ongelmia, jätä kommentti ja yritän auttaa.

Ei ole kuvia piiristä, jonka tein, koska tein sen jonkin aikaa sitten, eikä minulla ole enää PT100 -laitetta uusittavaksi ja testattavaksi, mutta sinun on vain uskottava minulle, että se toimii. Instructablesin PT100: sta ei ole paljon löydettyä, joten siksi tein tämän ible.

Seuraavassa vaiheessa puhun PT100: n aikavasteesta ja jos matematiikka ei kiinnosta, mitatessasi lämpötilan muutosta, anna PT100: n asettua noin minuutti ennen lukeman ottamista.

Jos haluat nähdä muita tekemiäni projekteja, käy osoitteessa

Blogi: Roboroblog

YouTube -kanava: Roboro

Tai katso muita opetusohjelmiani: täältä

Jos HTML sekoittaa alla olevan koodin, koodi on liitetty

* Tämä koodi laskee lämpötilan PT100: lla

* Kirjoittanut 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

PT100: n aikavaste
PT100: n aikavaste

Mainitsin siis, että PT100: lla on hidas vaste, mutta voimme saada kaavan PT100: n lukemalle nykyiselle lämpötilalle milloin tahansa t. PT100: n vastaus on ensimmäisen kertaluvun vastaus, joka voidaan kirjoittaa Laplace -termeillä eli siirtotoiminnolla seuraavasti:

Kuva
Kuva

jossa tau (τ) on aikavakio, K on järjestelmän vahvistus ja s on Laplace -operaattori, joka voidaan kirjoittaa muodossa jω, missä ω on taajuus.

Aikavakio kertoo, kuinka kauan ensimmäisen tilausjärjestelmän asettuminen uuteen arvoonsa kestää. Vahvistus K kertoo kuinka paljon tuloa vahvistetaan. PT100: n avulla voitto on se, kuinka paljon vastus muuttuu jaettuna lämpötilan muutoksella, kun otin kaksi satunnaista arvoa tästä taulukosta, sain vahvistuksen 0,3856 ohmia/C.

Ennen kuin sanoin, että voisit tallentaa jännitteen joka toinen sekunti sen jälkeen, kun olet asettanut anturin nesteeseen, kuumaan tai kylmään, tästä voimme laskea järjestelmän aikavakion. Ensin sinun on tunnistettava, mistä aloitus- ja päätepiste, lähtöpiste on jännite ennen kuin asetat anturin nesteeseen ja päätepiste on, kun se laskeutuu. Vähennä seuraavaksi ne ja se on vaiheen jännitteen muutos, suorittamasi testi oli askelmuutos, joka on äkillinen muutos järjestelmään syötettävässä lämpötilassa. Siirry nyt kaaviossa 63,2%: iin jännitteen muutoksesta ja tämä aika on aikavakio.

Kuva
Kuva

Jos liität tämän arvon siirtofunktioon, sinulla on sitten kaava, joka kuvaa järjestelmien taajuusvasteen, mutta emme halua sitä juuri nyt, vaan haluamme todellisen lämpötilan ajankohtana t askeleen lämpötilaa kohti, joten menemme joutua suorittamaan käänteinen Laplace -muunnos järjestelmästä. Ensimmäisen kertaluvun järjestelmän siirtofunktio vaiheen tulolla on seuraava:

Kuva
Kuva

Missä Ks on askelkoko eli lämpötilaero. Oletetaan siis, että anturi on asetettu 20 ° C: seen, asetettu veteen 30 ° C: seen ja anturin aikavakio on 8s, siirtofunktio ja aikatason kaava ovat seuraavat:

Kuva
Kuva

Δ (t) tarkoittaa vain impulssia eli DC -poikkeamaa 20 ° C tässä tapauksessa, voit vain kirjoittaa 20 yhtälöihisi laskettaessa tätä. Tämä on vakioyhtälö ensimmäisen asteen järjestelmään siirtymiselle:

Kuva
Kuva

Yllä oleva laskee lämpötilan hetkellä t, mutta tämä toimii jännitteelle, koska ne ovat verrannollisia toisiinsa, tarvitset vain aloitus- ja lopetusarvon, aikavakion ja askelkoon. Symbolab -niminen verkkosivusto on loistava tarkistamaan, onko matematiikka oikein, sillä se voi tehdä Laplacea, integrointia, eriytymistä ja paljon muuta, ja se antaa sinulle kaikki vaiheet matkan varrella. Edellä oleva käänteinen Laplace -muunnos löytyy täältä.

Suositeltava: