Sisukord:

Temperatuuri mõõtmine PT100 -st Arduino abil: 6 sammu (piltidega)
Temperatuuri mõõtmine PT100 -st Arduino abil: 6 sammu (piltidega)

Video: Temperatuuri mõõtmine PT100 -st Arduino abil: 6 sammu (piltidega)

Video: Temperatuuri mõõtmine PT100 -st Arduino abil: 6 sammu (piltidega)
Video: Heating PT100 temperature sensor. PT100 on Wheatstone bridge. Output amplified with OPAMP. Arduino. 2024, November
Anonim
Temperatuuri mõõtmine PT100 -st Arduino abil
Temperatuuri mõõtmine PT100 -st Arduino abil

PT100 on takistustemperatuuri detektor (RTD), mis muudab oma takistust sõltuvalt ümbritsevast temperatuurist, seda kasutatakse laialdaselt aeglase dünaamikaga ja suhteliselt laia temperatuurivahemikuga tööstusprotsessides. Seda kasutatakse aeglaste dünaamiliste protsesside jaoks, kuna RTD -del on aeglane reageerimisaeg (millest ma räägin lähemalt hiljem), kuid need on täpsed ja aja jooksul vähe triivivad. See, mida ma teile selles juhendis näitan, ei vasta tööstusstandarditele, kuid see avab teile alternatiivse viisi temperatuuri mõõtmiseks kui LM35 kasutamine, mida paljud harrastajad tunnevad ja näidatud vooluringi teooria saab rakendada teistele anduritele.

Samm: komponendid

1x PT100 (kaks traati)

1x Arduino (mis tahes mudel)

3x 741 töövõimendit (LM741 või UA741)

1x 80 oomi takisti

2x 3,9kohm takisti

2x 3,3 kΩ takisti

2x 8,2kohm takisti

2x 47kohms takistid

1x 5kohms potentsiomeeter

1x kahe klemmiga toiteallikas või 8x 1,5 V AA patareid

Ma kasutan kahe juhtmega PT100, kolme ja nelja juhtmega PT100 -l on erinevad ahelad. Enamiku nende takisti väärtused ei pea olema täpselt samad, mis eespool, kuid kui on olemas paar takistit, st 3,9 ohmi, siis kui vahetate need näiteks 5k vastu, peate mõlemad vahetama 5k vastu peab olema sama. Kui me saame vooluringi, ütlen erinevate väärtuste valimise mõju. Operatsioonivõimendite (op -võimendite) jaoks saate kasutada muid op -võimendeid, kuid neid kasutasin.

2. samm: Wheatstone'i sild

Wheatstone'i sild
Wheatstone'i sild
Wheatstone'i sild
Wheatstone'i sild
Wheatstone'i sild
Wheatstone'i sild

Kõigepealt pean rääkima valemist, kuidas saada temperatuur PT100 takistusest, enne kui räägin vooluahela esimesest osast, takistuse valem on järgmine:

Pilt
Pilt

kus Rx on PT100 takistus, R0 on PT100 takistus 0 ° C juures, α on temperatuuritaluvuse koefitsient ja T on temperatuur.

Pilt
Pilt

R0 on 100 oomi, kuna see on PT100, kui see oleks PT1000, oleks R0 1000 oomi. α on andmelehelt võetud 0,00385 oomi/kraadi C. Siin on ka täpsem valem, kuid ülaltoodud valem sobib selle projekti jaoks. Kui me valemi üle võtame, saame arvutada antud takistuse temperatuuri:

Pilt
Pilt

Oletame, et tahame mõõta midagi, mille temperatuurivahemik on -51,85 kuni 130 ° C, ja paigutasime PT100 joonisel 1 näidatud vooluahelasse. Kasutades ülaltoodud võrrandit ja pingejaoturi pinge võrrandit (näidatud esimesel pildil) saame arvutada pingevahemiku. Vahemiku alumine osa T = -51,85 (80 oomi)

Pilt
Pilt

ja temperatuuril 130 kraadi (150 oomi):

Pilt
Pilt

See annaks vahemiku 0,1187 V ja alalisvoolu nihke 0,142, sest me teame, et meie temperatuur ei lange kunagi alla -51,85 kraadi C, see vähendab tundlikkust vahemikus, millest hoolime (80 kuni 130 oomi), kui me seda pinget võimendame. Sellest alalisvoolu nihutusest vabanemiseks ja tundlikkuse suurendamiseks saame kasutada Wheatstone'i silda, mis on näidatud teisel pildil.

Teise pingejaguri (Vb-) väljund lahutatakse esimesest pingejaguri väljundist (Vb+), kasutades hiljem diferentsiaalvõimendit. Silla väljundi valem on vaid kaks pingejaoturit:

Pilt
Pilt

PT100 väljundpinge on 80 oomi ja kasutab teisi pildil olevaid väärtusi:

Pilt
Pilt

ja kui Pt100 on 150 oomi:

Pilt
Pilt

Wheatstone'i kasutades vabaneme alalisvoolu nihkest ja suurendame tundlikkust pärast võimendust. Nüüd, kui me teame, kuidas Wheatstone'i sild töötab, saame rääkida sellest, miks me kasutame 80 oomi ja 3,3 kΩ. 80 oomi on seletatud ülaltoodud valemiga, valige see väärtus (me nimetame seda nihketakistuseks Roff), et see oleks teie temperatuuri alumine vahemik või isegi parem, veidi allapoole oma vahemikku, kui seda kasutatakse Kui soovite reguleerida temperatuuri reguleerimist või midagi sellist, siis soovite teada, kui madal on temperatuur teie temperatuurivahemikust madalamal. Nii et kui teie vahemiku põhjas on -51,85 ° C, kasutage oma Roffi jaoks 74,975 oomi (-65 ° C).

Valisin R1 ja R3 jaoks 3.3k kahel põhjusel, et piirata voolu ja suurendada väljundi lineaarsust. Kuna PT100 muudab temperatuuri tõttu takistust, annab selle liigse voolu läbimine isekuumenemise tõttu vale näidu, nii et valisin maksimaalse voolu 5-10 mA. Kui PT100 on 80 oomi, on vool 1,775 mA, mis on ohutult allapoole maksimaalset vahemikku. Tundlikkuse suurendamiseks vähendate takistust, kuid sellel võib olla lineaarsusele negatiivne mõju, kuna me kasutame hiljem rea joont (y = mx+c), millel on mittelineaarne väljund. Kolmandal pildil on graafik silla väljundist, kasutades erinevaid ülemisi takistusi, pidev joon on tegelik väljund ja punktiirjoon on lineaarne lähendus. Näete tumesinisest graafikust (R1 & R3 = 200 oomi) annab suurima pingevahemiku, kuid väljund on kõige vähem lineaarne. Helesinine (R1 & R3 = 3,3 khm) annab väikseima pingevahemiku, kuid punktiirjoon ja pidev joon kattuvad, mis näitab, et selle lineaarsus on väga hea.

Muutke neid väärtusi julgelt oma rakendusele sobivaks, ka pinge muutmisel veenduge, et vool ei läheks liiga suureks.

3. samm: võimendamine

Võimendus
Võimendus
Võimendus
Võimendus

Viimases etapis leidsime, et kahe lahutatud pingejaguri väljundvahemik oli 0 kuni 0, 1187, kuid me pole rääkinud sellest, kuidas neid pingeid lahutada. Selleks vajame diferentsiaalvõimendit, mis lahutab ühe sisendi teisest ja võimendab seda võimendi võimendusega. Diferentsiaalvõimendi ahel on näidatud esimesel pildil. Te sisestate Vb+ inverteerivasse sisendisse ja Vb- inverteerimata sisendisse ning väljundiks on Vb+- Vb- võimendusega üks, st võimendus puudub, kuid lisades pildil näidatud takistid lisame võimenduse 5,731. Kasu antakse:

Pilt
Pilt

Ra on R5 & R7 ja Rb on R6 & R8, pinge väljastatakse:

Pilt
Pilt

Selle võimendi ühendamisel silla väljundiga on kaks probleemi, laadimisefekt ja võimenduse muutmine. Võimendi võimenduse muutmine nõuab vähemalt kahe takisti vahetamist, kuna kaks takistipaari peavad olema samad, nii et kahe sama väärtusega poti olemasolu oleks tüütu, nii et kasutame mõõteriistade võimendit millest räägin allpool. Laadimisefektiks on võimendi sisendtakistid, mis mõjutavad pingelangust kogu PT100 -s, soovime, et pinge kogu PT100 -s ei muutuks ja selleks saame valida sisendtakistite jaoks väga suured takistid, nii et PT100 paralleeltakistus ja sisendtakisti on PT100 takistusele väga lähedal, kuid see võib põhjustada probleeme müra ja väljundpinge nihkega, mida ma ei kavatse. Valige lihtsalt Kohmsi vahemiku keskmine vahemik, kuid nagu ma ütlesin, on ka väikeste takistite olemasolu halb, nii et muudame ahelat natuke.

Teisel pildil on silla väljund ühendatud mõõtevõimendiga, mis toimib puhvervõimuna, et eraldada ahelate kaks poolt (sild ja võimendus), samuti võimaldab sisendit võimendada, muutes vaid ühte potentsiomeetrit (Rgain). Seadmevõimendi võimenduse annavad:

Pilt
Pilt

kus Rc on kaks 3,9 k takisti poti kohal ja all.

Rgaini vähendamisega suureneb võimendus. Siis punktis Va ja Vb (võimendatud Vb+ ja Vb-) on see lihtsalt diferentsiaalvõimendus nagu varem ja ahela koguvõimendus on vaid võimendused, mis korrutatakse kokku.

Pilt
Pilt

Kasumi valimiseks soovite teha midagi sellist, nagu me Roffi puhul varem tegime, peaksime igaks juhuks valima takistuse, mis ületab teie vahemiku maksimaalse temperatuuri. Kuna me kasutame Arduinot, millel on 5 V adc, peaks ahela maksimaalne väljund olema 5 V teie valitud maksimaalsel temperatuuril. Valime maksimaalseks takistuseks 150 oomi ja võimendamata sillapinge oli 0.1187V, vajaminev võimendus on 42.185 (5/0.1187)

Oletame, et hoiame Ra, Rb ja Rc väärtust 8,2k, 47k ja 3,9k, peame lihtsalt leidma poti Rgain väärtuse:

Pilt
Pilt

Seega, et saada 5 volti kasutatavast temperatuurivahemikust välja, muutke Rgaini väärtuseks 1,226k. Diferentsiaalvõimendist väljuv väljundpinge on antud:

Samm: vooluahela toide

Vooluahela toide
Vooluahela toide
Vooluahela toide
Vooluahela toide
Vooluahela toide
Vooluahela toide

See on vooluahela viimane etapp, olete võib-olla märganud optiliste vooluahelate Vcc+ ja Vcc-, see on sellepärast, et nad vajavad korralikult toimimiseks nii positiivset kui ka negatiivset pinget, saate ühe rööpaga võimendeid, kuid otsustasin kasutada neid võimendeid, sest see oli mul lamades. Seega tarnime +6V ja -6V, seda saab teha kolmel viisil. Esimene on näidatud esimesel pildil, kus meil on ühest toiteallikast kaks toiteallikat või kaks väljundklemmi, mõlemad on 6 V pingega ja üks positiivne väljund on ühendatud teise negatiiviga. Ülemise toite 6V on meie +6V, alumise toite positiivne on GND ja alumise toite negatiivne on -6V. Ühendage see AINULT SELLEGA, KUI KAHE TARNE GND ON Eraldatud või see kahjustab teie toiteallikat. Kõik kaubanduslikud toiteallikad oleksid eraldanud GND -d, kuid kui soovite seda kontrollida, kasutage oma multimeetri järjepidevuse testerit, kui see sumiseb, ärge kasutage seda seadistust ja kasutage järgmist. Koduse varustuse korral põlesin seda tehes kaitsme läbi.

Teisel pildil on teine seadistus, mis meil võib olla, see eeldab, et ühel toitel on kahekordne pinge teisel, kuid see ei kahjusta toiteallikat, kui GND -d on ühendatud. Meil on kaks toite, üks 12V ja teine 6V. 12 V toimib meie +6 V, 6 V teisest toiteallikast toimib GND -na ja kaks tegelikku GND -d toiteallikast -6 V.

See viimane seadistus on mõeldud ainult ühe väljundiga toiteallikatele, see kasutab võimenduse 1 puhvervõimendit, et luua virtuaalne maandus, suunates poole toitepingest läbi puhvervõimendi. Siis toimib 12V +6V ja tegelik GND -terminal on -6V.

Kui soovite kasutada patareisid, soovitaksin esimest seadistust, kuid patareide probleem on see, et pinge langeb, kui nad hakkavad surema, ja ka sillast väljuv pinge langeb, andes valed temperatuurinäidud. Loomulikult võite lugeda patareide pinget ja lisada need arvutustesse või kasutada regulaatoreid ja rohkem patareisid. Lõpuks on see teie otsustada.

Samm: täielik vooluahel ja kood

Täisring ja kood
Täisring ja kood
Täisring ja kood
Täisring ja kood
Täisring ja kood
Täisring ja kood

Kogu vooluahel on näidatud ülalpool ja see tehti Autodeski uues Circuits.io -s, mis võimaldab teil luua ahelaid leivaplaadil, redigeerida vooluahelat (näidatud joonisel 2) ja PCB diagramme ning parim osa võimaldab simuleerida vooluahelat leivaplaadilt ja saab isegi programmeerida Arduino ja ühendada selle leivarežiimis, lehel on simulatsioon ja saate kahe potiga ringi mängida. Kui soovite vooluringi dubleerida ja oma väärtusi sisestada, leiate vooluringi siit. Esimene pott on 70 oomi ja jadamisi 80 oomi takistiga, mis simuleerib PT100 vahemikus 80–150 oomi, teine pott on mõõtevõimendi võimendus. Kahjuks kasutasin oma koodi jaoks alla laaditud raamatukogu, nii et Arduino ei kuulu allolevasse ahelasse, kuid ühendamiseks on vaja ainult kahte lisatraati. Kui teile LTspice on mugavam, lisasin vooluringiga asc -faili.

Ühendage A0 tihvt diferentsiaalvõimendi väljundiga

Ühendage Arduino GND vooluahela GND -ga (MITTE -6V)

Ja see on ahel tehtud, nüüd koodi peale. Varem mainisin, et kasutame valemit y = mx+c, nüüd arvutame m (kalle) ja c (nihe). Arduinos loeme pinget, kuid temperatuuri võrrand peab teadma PT100 takistust, nii et saame seda teha, asendades Serial.println (temp) serial.println (V) ja salvestades pinge ja takistus kahel temperatuuril. Selle testi tegemisel jätke PT100 mõneks ajaks, näiteks minutiks või kaheks, üksi ja hoidke eemal soojusallikatest (päikesevalgus, sülearvuti ventilaator, keha jne).

Esimene punkt, mille saame võtta, on toatemperatuur, kui vooluring on ühendatud ja töötab, salvestage Arduino poolt loetav pinge (Vt1) jadamonitorile ja ühendage PT100 kiiresti lahti ning registreerige selle takistus (Rt1). lahtiühendamisel pange sondi käed külge, kuna see muudab takistust. Teise temperatuuri puhul võiksime sondi asetada jäävette või kuuma vette (olge kuuma vee kasutamisel ettevaatlik) ja korrata seda, mida tegime enne Vt2 ja Rt2 leidmist. Vahetult pärast sondi vedelikku asetamist oodake minut või kaks, kuni takistus laheneb. Kui olete huvitatud PT100 ajareaktsioonist, salvestage jadamonitori pinge umbes iga 2 sekundi tagant ja me saame sellest graafiku joonistada ja ma selgitan seda hiljem. Kahe pinge ja takistuse abil saame kalde arvutada järgmiselt:

Pilt
Pilt

Rt1 ja Rt2 on takistused kahel temperatuuril ja sama kehtib ka pingete Vt1 ja Vt2 kohta. Kallaku ja ühe kahest salvestatud punktikomplekti põhjal saame arvutada nihke:

Pilt
Pilt

C peaks olema teie tegeliku Roffi lähedal, oma simulatsiooni põhjal arvutasin need väärtused:

Pilt
Pilt

Sellest takistusest leiame oma temperatuuri, kasutades valemit, mis meil oli alguses:

Pilt
Pilt

Ja see on kõik, Arduino kood on allpool, kui teil on probleeme, jätke lihtsalt kommentaar ja proovin aidata.

Puuduvad minu tehtud vooluringi pildid, nagu tegin seda mõni aeg tagasi ja mul pole PT100 enam ümber teha ja katsetada, kuid peate lihtsalt uskuma, et see töötab. Instructabeli PT100 kohta pole palju leitud, nii et tegin selle ibleks.

Järgmises etapis räägin PT100 ajareaktsioonist ja kui teid matemaatika ei huvita, laske temperatuurimuutuse mõõtmisel PT100 -l enne lugemist minut aega settida.

Kui soovite näha teisi minu tehtud projekte, külastage minu

Blogi: Roboroblog

YouTube'i kanal: Roboro

Või vaadake minu teisi juhiseid: siin

Kui HTML segab allolevat koodi, lisatakse kood

* See kood arvutab temperatuuri PT100 abil

* Kirjutas Roboro * Github: <a href = "https://github.com/RonanB96/Read-Temp-From-PT100-… <a href =" https://github.com/RonanB96/Read-Temp- Alates-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 ajareaktsioon
PT100 ajareaktsioon

Nii et ma mainisin, et PT100 reageerib aeglaselt, kuid me saame valemi PT100 poolt loetud temperatuuri kohta igal ajal t. PT100 vastus on esimese järgu vastus, mille saab kirjutada Laplace'i terminites, st ülekandefunktsioonina järgmiselt:

Pilt
Pilt

kus tau (τ) on ajakonstant, K on süsteemi võimendus ja s on Laplace'i operaator, mida saab kirjutada kui jω, kus ω on sagedus.

Ajakonstant ütleb teile, kui kaua kulub esmakordse süsteemi uue väärtuse saavutamiseks, ja reegel või pöial on see, et 5*tau on see, kui kaua uues püsiseisundis settimine võtab. Võimendus K näitab, kui palju sisendit võimendatakse. PT100 puhul on võimendus see, kui palju takistuse muutused jagatakse temperatuurimuutustega. Sellelt andmelehelt kahe juhusliku väärtuse valimisel sain võimenduseks 0,3856 oomi/C.

Enne kui ma ütlesin, et saate pinge registreerida iga 2 sekundi järel pärast seda, kui olete sondi vedelikku pannud, kuum või külm, selle põhjal saame arvutada süsteemi ajakonstanti. Kõigepealt peate kindlaks määrama algus- ja lõpp -punkti, kusjuures alguspunktiks on pinge enne sondi vedelikku panemist ja lõpp -punkt selle settimisel. Seejärel lahutage need ja see on astme pinge muutus, teie tehtud test oli sammumuutus, mis on süsteemi sisendi järsk muutus, mille samm on temperatuur. Nüüd minge oma graafikul 63,2% pinge muutusest ja see aeg on ajakonstant.

Pilt
Pilt

Kui ühendate selle väärtuse ülekandefunktsiooni, on teil süsteemide sagedusreaktsiooni kirjeldav valem, kuid see pole see, mida me praegu tahame, vaid soovime tegelikku temperatuuri ajahetkel t temperatuuri astme kohta, nii et me läheme peab tegema sammu süsteemis pöördvõrdelise Laplace'i teisenduse. Esimese järgu süsteemi ülekandefunktsioon koos sammu sisendiga on järgmine:

Pilt
Pilt

Kus Ks on astme suurus, st temperatuuri erinevus. Oletame, et sond on 20 ° C juures, 30 ° C vees ja sondi ajakonstant on 8s, ülekandefunktsioon ja ajadomeeni valem on järgmine:

Pilt
Pilt

Δ (t) tähendab lihtsalt impulssi, st sel juhul alalisvoolu nihet 20 ° C, saate selle arvutamisel lihtsalt oma võrranditesse kirjutada 20. See on standardvõrrand esimese astme süsteemi astumiseks:

Pilt
Pilt

Ülaltoodud arvutab temperatuuri ajal t, kuid see töötab pinge korral, kuna need on üksteisega proportsionaalsed, vajate ainult alg- ja lõppväärtust, ajakonstanti ja sammu suurust. Veebisait nimega Symbolab on suurepärane kontrollimiseks, kas teie matemaatika on õige, see võib teha Laplace'i, integratsiooni, eristamist ja palju muud ning annab teile kõik sammud. Ülaltoodud vastupidine Laplace'i teisendus on leitav siit.

Soovitan: