Termisztor grafikon. Hőmérsékletmérés NTC termisztorral. Áramkörök a varisztorok tanulmányozásához

Ismerje meg a termisztorokat és az Arduino programozását az adatok mérésére.

Gondolkozott már azon, hogy egyes eszközök, például termosztátok, 3D nyomtatók fűtőbetétjei, autómotorok és sütők hogyan mérik a hőmérsékletet? Ebben a cikkben megtudhatja!

A hőmérséklet ismerete nagyon hasznos lehet. A hőmérséklet ismerete segíthet a szobahőmérséklet kényelmes szintre állításában, biztosíthatja, hogy a 3D nyomtató fűtőbetétje kellően meleg legyen ahhoz, hogy az olyan anyagok, mint az ABS hozzátapadjanak a felületéhez, és megakadályozza a motor túlmelegedését vagy a főzött étel megégését.

Az elektronikai mérnökök úgy vélik, hogy a hőmérő egyre népszerűbb a modern alkalmazásokban. Az általánosan használt hőmérsékletmérési megoldások két típusa negatív hőmérsékleti termisztorokés kimeneti feszültség hőmérséklet-érzékelők. A termisztor olyan ellenállás, amelynek ellenállása a hőmérséklettől függ.

A fő előny az, hogy sokkal több csomag opció áll rendelkezésre. Ez gyakran gyorsabb válaszidőt jelent, mivel a válaszidők nagymértékben függenek a csomag méretétől. A termisztorok azonban kombinálhatók összetett rezisztív hálózatokkal, hogy segítsenek linearizálni a görbét egy korlátozott hőmérsékleti tartományban.

Ebben a cikkben csak egy típusú érzékelőt veszünk figyelembe, amely képes mérni a hőmérsékletet. Ezt az érzékelőt termisztornak nevezik.

A termisztor ellenállása sokkal jobban függ a hőmérséklettől, mint más típusú ellenállások.

A termisztorok leolvasását Arduino segítségével mérjük és dolgozzuk fel, majd ezeket a leolvasott értékeket könnyen leolvasható hőmérsékleti egységformátumba konvertáljuk.

Amint a 2. ábrán látható, ez a feszültségosztó hálózaton keresztüli áram növekedését eredményezi. Egyes esetekben pufferre lehet szükség. Összegzés A technológia folyamatosan fejlődik, és a mérnökök azt tapasztalják, hogy egyre gyakoribb a hőmérséklet-érzékelés szükségessége. De a nap végén a megfelelő hőmérséklet-érzékelő megoldás a teljesítménytől és az egyedi alkalmazási követelményektől függ.

Termisztorok és alkalmazásaik

A termisztor egy hőre érzékeny elem, amely szinterezett félvezető anyagból áll, és kis hőmérséklet-változással arányos nagy ellenállás-változást mutat. A termisztor széles hőmérsékleti tartományban tud működni, és az ellenállásának megváltoztatásával hőmérsékleti értéket biztosít, amelyet két szó alkot: termikus és ellenállás. A pozitív hőmérsékleti együtthatók és a negatív hőmérsékleti együtthatók a termisztorok két fő típusa.

Az alábbiakban egy fotó a termisztorról, amelyet használni fogunk:

Szükséges komponensek

kiegészítők

  • Arduino (Mega vagy Uno vagy bármely más modell);
  • több jumper;
  • forrasztópáka és forrasztó (szükség lehet rá, ha a termisztor nem illeszkedik az Arduino kártya csatlakozóiba).

Szoftver

  • Arduino IDE

Elmélet

A tipikus ellenálláshasználat során nem akarja, hogy az ellenállása megváltozzon a hőmérséklettel. Ez a való életben nem reális, nagy hőmérsékletváltozás esetén csak kis ellenállás-változást tud biztosítani. Ha ez nem így lenne, akkor az ellenállások furcsa hatással lennének az áramkörök működésére, például egy LED sokkal fényesebben vagy halványabban világíthat a környezeti hőmérséklet változásával.

A termisztorok könnyen használhatók, olcsók, tartósak, és előre megjósolható hőmérséklet-változásokkal rendelkeznek. A termisztorokat főként háztartási készülékekben használják, például sütőben és hűtőszekrényben stb. A stabilitás, az érzékenység és az időállandó a termisztorok közös tulajdonságai, amelyek ezeket a termisztorokat tartóssá, hordozhatóvá, gazdaságossá, rendkívül érzékenysé és egypontos hőmérsékletmérésre a legalkalmasabbá teszik.

Pozitív hőmérsékleti együttható Termisztor Negatív hőmérsékleti együttható Termisztor. Ezek a termisztorok szerkezetüktől és gyártási folyamatuktól függően két csoportba sorolhatók. A termisztorok első csoportjába a szilisztorok tartoznak, amelyek félvezető anyagként szilíciumot használnak.

De mi van akkor, ha azt szeretné, hogy a LED fényereje a hőmérséklet függvénye legyen? Itt jön be a termisztor. Amint azt sejteni lehetett, a termisztor ellenállása nagymértékben megváltozik a hőmérséklet kis változásával. Ennek szemléltetésére az alábbiakban egy termisztor ellenállásgörbéje látható:

Az ábrán csak a tényleges értékek nélküli mértékegységek láthatók, mivel az ellenállási tartomány az adott termisztor típusától függ. Mint látható, a hőmérséklet emelkedésével a termisztor ellenállása csökken. Ez a negatív hőmérsékleti együttható ellenállás, vagy röviden NTC termisztor megkülönböztető tulajdonsága.



Ezek a típusok a következőktől függenek. Magas hőmérsékletű bevonattal rendelkeznek a mechanikai védelem, a környezeti stabilitás és az elektromos szigetelés érdekében. Ház típusa: Ezek lehetnek műanyag vagy kerámia házak, amelyeket az alkalmazási követelményeknek megfelelően használnak.

  • Elemek: Ezek tárcsás, lemezes és hengeres termisztorok.
  • Összeszerelés típusa: Ez a termék kialakításának és formájának köszönhető.
A termisztorok alábbi jellemzői különböző paraméterek, például hőmérséklet, ellenállás, áram, feszültség és idő közötti kapcsolatot mutatják be.

Vannak pozitív hőmérsékleti együtthatójú (PTC) termisztorok is, amelyek ellenállása a hőmérséklet emelkedésével nő. A PTC termisztoroknak azonban van egy billenési pontja, és egy bizonyos hőmérsékleten nagymértékben megváltoztatják az ellenállásukat. Ez kissé bonyolultabbá teszi a PTC termisztorokkal való interakciót. Emiatt a legtöbb olcsó hőmérsékletmérőben előnyben részesítik az NTC termisztorokat.

Az alábbi ábrán azt figyelhetjük meg, hogy milyen gyorsan változik az ellenállás a hőmérséklettel, pl. az ellenállás éles növekedése kis hőmérséklet-változásokkal.


Ez a karakterisztika a feszültség és az áram közötti összefüggést mutatja termikus egyensúlyi állapotban, amint az az ábrán látható. Ahogy a feszültség nulláról növekszik, az áramerősség és a hőmérséklet is nő, amíg a termisztor el nem éri a kapcsolási pontot. A feszültség további növekedése az állandó teljesítménytartományban az áram csökkenéséhez vezet.

A cikk további részében, ahogy sejtheti, az NTC termisztorokról lesz szó.

Négy megközelítés a görbe ábrázolására szolgáló képlet megtalálásához

Most, hogy jobban megértjük a termisztorok viselkedését, felmerülhet a kérdés, hogyan használhatjuk az Arduino-t a hőmérséklet mérésére. A fenti grafikon görbéje nemlineáris, ezért egy egyszerű lineáris egyenlet nem működik számunkra (valójában levezethetünk egyenletet, de erről később).



Ez a félvezető kapcsolókhoz szükséges megbízhatóságról és a nagyáramú alkalmazásoktól való védelemről beszél.


Az időkésleltetés függ a mérettől, a hőmérséklettől és a feszültségtől, amelyre csatlakoztatva van, valamint a használt áramkörtől. Ezek az alkalmazások közé tartoznak a késleltetett kapcsolórelék, időzítők, elektromos ventilátorok stb.

Egyes elektromos motorok indító tekercseléssel rendelkeznek, amelyet csak a motor indításakor szabad feszültség alá helyezni. Amikor a motor beindul, a PTC termisztor felmelegszik, és egy bizonyos ponton nagy ellenállású állapotba kapcsol, majd leválasztja ezt a tekercset a hálózatról. Az ehhez szükséges idő a motor indításának szükségességétől függ.

Szóval mit kéne tenni?

Mielőtt folytatná, gondolja át, hogyan csinálná ezt egy Arduino-n vagy akár egy mikroprocesszor-komponensek nélküli áramkörben.

A probléma megoldásának számos módja van, amelyeket alább felsorolunk. Ez messze van teljes lista minden technikát, de bemutat néhány népszerű megközelítést.

1. módszer

Egyes gyártók olyan átfogó információkat szolgáltatnak, amelyek egy teljes grafikont tartalmaznak, amely az egész hőmérsékleti és ellenállási értékek meghatározott tartományait mutatja (tipikus értékek). Az egyik ilyen termisztor megtalálható a Vishay adatlapján.

Önszabályozó fűtőtestek: Ha áram folyik át a PTC termisztoron, az egy bizonyos hőmérsékleten stabilizálódik. Ez azt jelenti, hogy ha a hőmérséklet az ellenállással arányosan csökken, több áramot engedve, a készülék felmelegszik. Ha a hőmérséklet olyan szintre emelkedik, amely korlátozza a készüléken átfolyó áramot, a készülék lehűl.

Áramkörök a varisztorok tanulmányozásához

A negatív hőmérsékleti együtthatójú termisztor azt jelenti, hogy az ellenállás csökken a hőmérséklet emelkedésével. Ezek a termisztorok öntőforgácsokból, például szinterezett fém-oxidból készülnek.

Ezekhez a termisztorokhoz a leggyakrabban használt oxidok a mangán, nikkel, kobalt, vas, réz és titán. Ezek a termisztorok az elektródák kerámiatesthez való csatlakoztatásának módjától függően két csoportra oszthatók.

Hogyan lehetne ilyen részletes adatokkal hőmérsékletmérést megvalósítani az Arduinón? Ezeket az értékeket keményen kell kódolnia egy hatalmas keresőtáblába vagy nagyon hosszú "kapcsoló... eset" vagy "ha... más" vezérlőstruktúrákba.

És ha a gyártó nem törődött azzal, hogy részletes táblázatot adjon, akkor minden pontot magának kell megmérnie egy ilyen táblázat elkészítéséhez. Ez a nap elég unalmas lesz a programozó számára. De ez a módszer nem olyan rossz, és megvan a maga helye. Ha a jelenlegi projekt csak néhány pontot vagy akár egy kis tartományt tesztel, ez lehet az előnyben részesített módszer. Például egy ilyen helyzet adódik, ha meg akarja mérni, hogy az értékek a kiválasztott hőmérsékleti tartományon belül vannak-e, és fel kell gyújtani egy LED-et, hogy jelezze ezt az állapotot.

Egyenletek termisztorokhoz

Bipoláris bevonatú termisztorok Fémezett felületű érintkezők. . A gyöngytermisztorok platinaötvözetből és ólomhuzalokból készülnek, amelyeket közvetlenül egy kerámia testbe szinterelnek. A gyöngytermisztorok nagy stabilitással és megbízhatósággal rendelkeznek; gyors válaszidő és működik magas hőmérsékletek. Ezek a termisztorok kis méretben kaphatók, és viszonylag alacsony disszipációs állandókkal rendelkeznek. Ezeket a termisztorokat általában soros vagy párhuzamos kapcsolással érik el.

De a projektünkben szinte folyamatos tartományban szeretnénk hőmérsékletet mérni, és a leolvasást egy soros monitorra küldeni, ezért ezt a módszert nem fogjuk alkalmazni.

2. módszer

Megpróbálhatja "linearizálni" a termisztor válaszát további áramkörök hozzáadásával.

Ennek egyik népszerű módja az ellenállás és a termisztor párhuzamos csatlakoztatása. Néhány chip felajánlja, hogy ezt megteszi helyetted.

A bipoláris típusú termisztorok a következő típusokat tartalmazzák. Gyöngyös gyöngyök Üveggyöngyök Gyöngyös gyöngyök Miniatűr üveggyöngyök Üvegzárók Üvegrudak Gyöngyök üvegtokban. A termisztorok második csoportja fémes felületű érintkezőkkel rendelkezik, amelyek radiális vagy axiális vezetékekkel vannak ellátva, valamint vezetékek nélkül a rögzítéshez - rugós érintkezők segítségével. Számos bevonat létezik ezekhez a termisztorokhoz. A fémezett felületérintkezőt igény szerint festéssel, szórással vagy mártással lehet felvinni, és az érintkezőt a kerámiatestbe rögzíteni.

A görbe egy részének kiválasztásának és linearizálásának meghatározása, valamint a helyes ellenállásérték kiválasztása egy másik cikk témája. Ez a megközelítés akkor jó, ha a mikroprocesszor nem tudja kiértékelni a lebegőpontos kifejezéseket (például a PICAXE-t), mert bizonyos hőmérsékleti tartományon belül lineárisra egyszerűsíti a választ. Ez megkönnyíti a mikroprocesszorral nem rendelkező áramkör tervezését is.

Ezek a termisztorok a következő típusokat tartalmazzák.


  • Tárcsák Forgács Felületre szerelhető Pamut alátétek.
  • Ellenállás-hőmérséklet karakterisztika Időáram karakterisztikája.
Az áramsebesség változása kicsi a termisztor nagy ellenállása miatt. Végül, ahogy a készülék megközelíti az egyensúlyi állapotot, az áram változásának sebessége csökkenni fog, ahogy eléri a végső időértéket, ami az alábbi ábrán látható.



Amikor egy önmelegedő termisztor eléri az egyensúlyt, az eszköz hővesztesége megegyezik a betáplált teljesítménnyel.

Amikor a hőmérséklet emelkedik és a termisztor ellenállása csökken, az áramerősség magas lesz, és riasztást vált ki, vagy átkapcsolja a fűtési rendszert.

De ebben a cikkben egy mikroprocesszort használunk, és a hőmérsékletet a teljes tartományban szeretnénk mérni.

3. módszer

A táblázatból adatokat vihet be technikai leírás vagy (ha szeretsz furcsállni) hozd létre saját táblázatodat saját mérésekkel, és készítsd újra a grafikont valami, például Excelben. Ezután a görbeillesztés funkcióval képletet hozhat létre a görbéhez. Ez nem rossz ötlet, és az összes elvégzett munka egy szép képletet eredményez, amelyet a programban használhat. De ehhez eltart egy kis idő előkezelés adat.

Ellenállás mérése Arduino segítségével

Ez a termisztorok két fő típusa, amelyeket különféle hőmérsékletszondákhoz használnak. 1. ábra: A termisztor ellenállása a hőmérséklet függvényében változik. Az ábra azt mutatja, hogy a termisztorok nagy érzékenységgel rendelkeznek. Kis hőmérséklet-változás nagy ellenállás-változást okoz. Vegye figyelembe azt is, hogy ennek a termisztornak a válasza nem lineáris. Vagyis az ellenállás változása adott hőmérséklet-változás esetén nem állandó a termisztorok hőmérsékleti tartományában.

Noha ez egy ésszerű megközelítés, nem akarunk az összes adat elemzésétől függeni. Emellett mindegyik termisztor kissé különbözik (de ez természetesen nem probléma, ha a tűrés elég alacsony).

4. módszer

Kiderült, hogy létezik egy általános görbeillesztési képlet olyan eszközökhöz, mint a termisztorok. Steinhart-Hart egyenletnek hívják. Az alábbiakban ennek egy változata látható (más verziók a másodikban és a hatáskörökben lévő kifejezéseket használják):

A gyártó műszaki adatlapja tartalmazza a termisztor ellenállás értékeinek listáját és a megfelelő hőmérsékleteket a tartományban. Ennek a nemlineáris válasznak az egyik megoldása az, ha a kódban szerepeltet egy hőellenállási adatokat tartalmazó keresőtáblázatot. A kód ellenállása kikeresi a táblázatban a megfelelő hőmérsékletet.

Termisztor linearizálás. Hardveres oldalon a termisztor válaszát linearizálhatjuk úgy, hogy egy fix ellenállást párhuzamosan vagy sorba helyezünk vele. Ez a fejlesztés némi pontosság rovására megy. Az ellenállás értékének meg kell egyeznie a termisztor ellenállásával a kívánt hőmérsékleti tartomány közepén.

\[\frac(1)(T)=A+B\ln(R)+C(\ln(R))^3\]

ahol R a termisztor ellenállása T hőmérsékleten (kelvinben).

Ez egy általános görbeegyenlet, amely minden típusú NTC termisztorhoz alkalmas. A hőmérséklet-ellenállás összefüggés közelítése "elég jó" a legtöbb alkalmazáshoz.

Vegye figyelembe, hogy az egyenlethez A, B és C állandók szükségesek. Ezek termisztoronként változnak, és vagy meg kell adni, vagy ki kell számítani. Mivel három ismeretlenünk van, három ellenállásmérést kell végeznie meghatározott hőmérsékleteken, amelyek segítségével három egyenletet hozhat létre, és meghatározhatja ezen állandók értékét.

A termisztor az ellenállások párhuzamos kombinációja. 3. ábra: Termisztorok és párhuzamos ellenállások kombinációjának hőmérsékleti ellenállási görbéje. A mikrokontrollerek analóg adatgyűjtésének általános módja az analóg-digitális konverter. A 4. ábrán látható soros termisztoros ellenállás-kombináció egyszerű feszültségosztó megoldást kínál.

4. ábra: Termisztoros feszültségosztó. A következő képletet használjuk a feszültségosztó kimeneti feszültségének kiszámításához. 5. ábra: Hőmérséklet és feszültség görbe. Más szavakkal, a feszültségosztó a termisztor ellenállását feszültséggé alakítja. Előfordulhat, hogy a gyártó adatlapja nem tartalmazza a termisztor összes RTD értékét, vagy nincs elegendő memória ahhoz, hogy az összes értéket felvegye a keresőtáblázatba. Mindkét esetben kódot kell megadnia a felsorolt ​​értékek közötti interpolációhoz.

Még azoknak is, akik jól ismerik az algebrát, ez még mindig túl sok munka.

Ehelyett van egy még egyszerűbb egyenlet, amely kevésbé pontos, de csak egy állandót tartalmaz. Ezt az állandót β-ként jelöljük, ezért az egyenletet β-egyenletnek nevezzük.

\[\frac(1)(T)=\frac(1)(T_o)+(\frac(1)(\beta))\cdot\ln\left(\frac(R)(R_o)\right)\ ]

ahol R 0 az ellenállás a T 0 szabályozási hőmérsékleten (például ellenállás szobahőmérsékleten). β általában a műszaki leírásban szerepel; és ha nem, akkor csak egy mérésre (egy egyenletre) van szüksége ennek az állandónak a kiszámításához. Ezt az egyenletet fogom használni a termisztorunkkal való interakcióhoz, mivel ez a legegyszerűbb, amivel találkoztam, és nem szükséges linearizálni a termisztor válaszát.

Ellenállás mérése Arduino segítségével

Most, hogy kiválasztottuk a görberajzolási módszert, ki kell találnunk, hogyan mérjük meg az ellenállást az Arduino segítségével, mielőtt átadhatnánk az ellenállásinformációt a β-egyenletbe. Ezt megtehetjük feszültségosztóval:

Ez lesz a mi áramkörünk a termisztorral való kölcsönhatáshoz. Amikor a termisztor hőmérséklet-változást észlel, az tükröződik a kimeneti feszültségben.

Most szokás szerint a feszültségosztó képletét használjuk.

De minket nem a V kimeneti feszültség érdekel, hanem az R termisztor ellenállása. Tehát kifejezzük:

Ez sokkal jobb, de meg kell mérnünk a kimeneti feszültségünket, valamint a tápfeszültséget. Mivel az Arduino beépített ADC-jét használjuk, a feszültséget egy adott skálán számértékként tudjuk ábrázolni. Tehát az egyenletünk végső formája az alábbiakban látható:

Ez azért működik, mert függetlenül attól, hogy hogyan ábrázoljuk a feszültséget (voltban vagy digitális mértékegységben), ezek az egységek a tört számlálójában és nevezőjében megszűnnek, dimenzió nélküli értéket hagyva. Ezután megszorozzuk az ellenállással, hogy megkapjuk az eredményt ohmban.

A Dmax értéke 1023 lesz, mivel ez a legnagyobb szám, amit 10 bites ADC-nk képes előállítani. D mért az analóg-digitális átalakító által mért érték, amely nullától 1023-ig terjedhet.

Minden! Most elkezdheti az összeszerelést!

Rakjuk össze

TH10K termisztort használtam.

10k ellenállást is használtam R egyensúlyként a feszültségosztónkban. Nem volt meg a β állandó, így magam számoltam ki.

Az alábbiakban a készülék teljes diagramja látható. Ez elég egyszerű.

És így néz ki a végső elrendezés:

Az Arduino programkódja

A kódhoz sok megjegyzés tartozik, amelyek segítenek megérteni a program logikáját.

Alapvetően méri a feszültséget az osztón, kiszámítja a hőmérsékletet, majd megjeleníti a soros port terminálján.

A szórakozás kedvéért néhány „if...else” kijelentés is szerepel, amelyek bemutatják, hogyan viselkedhet a hőmérséklet-tartománytól függően.

//================================================ ================ ============================== // Állandók / /============== ==================================== ================= =============== // Termisztorral kapcsolatos: /* Itt van néhány állandó, amelyek a kód szerkesztését teszik lehetővé könnyebb. Menjünk át rajtuk. Az ADC-ből történő olvasás egy mintán egy értéket, majd a következő mintán kissé eltérő értéket eredményezhet. A zaj hatásának elkerülése érdekében többször is leolvashatjuk az értékeket az ADC lábról, majd átlagoljuk az értékeket, hogy állandóbb értéket kapjunk. Ezt az állandót a readThermistor függvény használja. */ const int SAMPLE_NUMBER = 10; /* A béta egyenlet használatához ismernünk kell az osztónk második ellenállásának értékét. Ha nagy tűréssel rendelkező ellenállást használ, például 5% vagy akár 1%, mérje meg, és adja meg az eredményt ohmban. */ const double BALANCE_RESISTOR = 9710.0; // Ez segít kiszámítani a termisztor ellenállását (a részleteket lásd a cikkben). const double MAX_ADC = 1023,0; /* Ez az állandó a termisztortól függ, és szerepelnie kell az adatlapon, vagy lásd a cikket a béta egyenlet segítségével történő kiszámításáról. */ const dupla BÉTA = 3974,0; /* Az átalakítási egyenlethez szükséges, mint "tipikus" szobahőmérséklet. */ const double ROOM_TEMP = 298,15; // szobahőmérséklet Kelvinben /* A termisztorok jellemző ellenállással rendelkeznek szobahőmérsékleten, ezt itt jelezzük. Ismét szükséges az egyenlet átalakulásához. */ const double RESISTOR_ROOM_TEMP = 10000.0; //================================================ ================ ============================== // Változók / /============== ==================================== ================= =============== // Itt tároljuk az aktuális hőmérsékletet double current Temperature = 0; //================================================ =============== ============================== // Pin deklarációk //============= ==================================== ================= ================ // Bemenetek: int termisztorPin = 0; // ADC bemenet, feszültségosztó kimenet //======================================== = ====================================== // Inicializálás //====== =================================================== === ======================= void setup() ( // Az üzenetküldési port sebességének beállítása Serial.begin(9600); ) // ==== =============================================== ======= ====================================== // Fő hurok / /===== ============================================= ========= ========== void loop() ( /* A főhurok meglehetősen egyszerű, kiírja a hőmérsékletet a soros port monitorjára. A program lényege a readThermistor funkcióban van. */ aktuálisHőmérséklet = readThermistor(); késleltetés(3000); /* Itt leírjuk, mit kell tenni, ha a hőmérséklet túl magas, túl alacsony vagy éppen megfelelő. */ if (currentTemperature > 21.0 && currentTemperature< 24.0) { Serial.print("It is "); Serial.print(currentTemperature); Serial.println("C. Ahhh, very nice temperature."); } else if (currentTemperature >= 24.0) ( Serial.print("Ez "); Serial.print(jelenlegi hőmérséklet); Serial.println("C. Úgy érzem magam, mint egy dögös tamale!"); ) else ( Serial.print("Ez ") ; Serial.print(aktuális hőmérséklet); Serial.println("C. Brrrrrr, hideg van!"); ) ) //======= ============== ======================================= ========= // Függvények //====================================== =========== =============================================== /// ///// ///////////////////////// readTherisztor /////// //////////// //// ////////////// /* Ez a funkció az alábbiak szerint olvassa be az értékeket az analóg lábról. A bemeneti feszültséget digitális ábrázolássá alakítja A/D konverzió segítségével. , ezt többször megtesszük, hogy az értéket átlagolhassuk a mérési hibák elkerülése érdekében.Ezt az átlagolt értéket használjuk a termisztor ellenállásának kiszámításához.Az ellenállás alapján számítjuk ki a termisztor hőmérsékletét. Végül a hőmérséklet Celsius fokra konvertálva */ double readThermistor() ( // változók double rThermistor = 0 ; // Tárolja a termisztor ellenállás értékét kétszeresen tKelvin = 0; // Tárolja a számított hőmérséklet dupla tCelsius = 0; // A hőmérséklet tárolása Celsius-fokban double adcAverage = 0; // Tárolja az átlagos feszültségértéket int adcSamples; // Egy tömb az egyedi // feszültségmérések tárolására /* A termisztor átlagos ellenállásának kiszámítása: Mint fentebb említettük, az ADC értékeket többször is leolvassuk, hogy egy mintatömböt kapjunk. Kis késleltetést használnak az analogRead funkció megfelelő működéséhez. */ for (int i = 0; i< SAMPLE_NUMBER; i++) { adcSamples[i] = analogRead(thermistorPin); // прочитать значение на выводе и сохранить delay(10); // ждем 10 миллисекунд } /* Затем мы просто усредняем все эти выборки для "сглаживания" измерений. */ for (int i = 0; i < SAMPLE_NUMBER; i++) { adcAverage += adcSamples[i]; // складываем все выборки. . . } adcAverage /= SAMPLE_NUMBER; // . . . усредняем их с помощью деления /* Здесь мы рассчитываем сопротивление термистора, используя уравнение, описываемое в статье. */ rThermistor = BALANCE_RESISTOR * ((MAX_ADC / adcAverage) - 1); /* Здесь используется бета-уравнение, но оно отличается от того, что описывалось в статье. Не беспокойтесь! Оно было перестроено, чтобы получить более "красивую" формулу. Попробуйте сами упростить уравнение, чтобы поупражняться в алгебре. Или просто используйте показанное здесь или то, что приведено в статье. В любом случае всё будет работать! */ tKelvin = (BETA * ROOM_TEMP) / (BETA + (ROOM_TEMP * log(rThermistor / RESISTOR_ROOM_TEMP))); /* Я буду использовать градусы Цельсия для отображения температуры. Я сделал это, чтобы увидеть типовую комнатную температуру, которая составляет 25 градусов Цельсия. */ tCelsius = tKelvin - 273.15; // преобразовать кельвины в цельсии return tCelsius; // вернуть температуру в градусах Цельсия }

Lehetséges következő lépések

Ebben a cikkben minden egy meglehetősen egyszerű módszert mutat be a hőmérséklet mérésére egy olcsó termisztor segítségével. Van még néhány módszer a rendszer javítására:

  • adjunk hozzá egy kis kondenzátort párhuzamosan az osztó kimenettel. Ez stabilizálja a feszültséget, és akár szükségtelenné is válik a nagyszámú minta átlagolására (ahogyan a kódban is történt) - vagy legalábbis kevesebb mintát tudunk átlagolni;
  • Használjon precíziós ellenállásokat (kevesebb, mint 1%-os tolerancia) a kiszámíthatóbb mérések érdekében. Ha a mérési pontosság kritikus fontosságú az Ön számára, ne feledje, hogy a termisztor önmelegedése befolyásolhatja a méréseket; Ez a cikk nem kompenzálja az önmelegedést.

Természetesen a termisztorok csak egy a hőmérséklet mérésére használt érzékelők közül. Egy másik népszerű választás a szenzorchipek (egyikükkel való munkavégzés példáját ismertetjük). Így nem kell linearizálással és összetett egyenletekkel foglalkoznia. A másik két lehetőség a hőelem és az infravörös érzékelő típusa; ez utóbbi fizikai érintkezés nélkül is képes hőmérsékletet mérni, de már nem olyan olcsó.

Remélem hasznos volt a cikk. Hagyj megjegyzéseket!

Jó nap! Ma ebben a cikkben lesz egy egyszerű módja annak ellenőrzésére termisztor. Valószínűleg minden rádióamatőr tudja, hogy kétféle termisztor létezik NTC(Negatív hőmérsékleti együttható) és PTC(Pozitív hőmérsékleti együttható). Ahogy a nevük is sugallja, ellenállás NTC termisztor akarat csökken a hőmérséklet emelkedésével, és a PTC termisztor ellenállása az a hőmérséklet emelkedése - növekedni fog. Az NTC és PTC termisztorokat nagyjából bármelyik használatával ellenőrizheti multiméter és forrasztópáka.

Ehhez a multimétert ellenállásmérési módba kell kapcsolni, és a terminálokat a termisztor kivezetéseihez kell csatlakoztatni (a polaritás nem számít). Ne felejtse el az ellenállást, és vigye a fűtött forrasztópákát a termisztorhoz, és közben figyelje az ellenállást, növekednie vagy csökkennie kell. Attól függően, hogy milyen típusú termisztor van előtted, PTC vagy NTC. Ha minden a fent leírtak szerint történik - a termisztor rendben van.

Most hogy lesz ez a gyakorlatban, és gyakorlatnak vettem az első termisztort, amivel találkoztam, kiderült, hogy egy MF72 NTC termisztor. Először is csatlakoztattam a multiméterhez, hogy lefilmezzem a tesztelési folyamatot, és a multiméteren lévő aligátorkapcsok hiánya miatt vezetékeket kellett forrasztanom a termisztorhoz, majd egyszerűen rácsavarni a multiméter érintkezőire.

Amint a képen látható szobahőmérsékleten, a termisztor ellenállása 6,9 ohm, ez az érték valószínűleg nem megfelelő, mivel az alacsony akkumulátor jelzőfény világít. Aztán odavittem a forrasztópákát a termisztorhoz, és kicsit megérintettem a terminált, hogy gyorsan átadjam a hőt a forrasztópákaból a termisztornak.




Az ellenállás lassan csökkenni kezdett és 2 Ohm értéknél megállt, látszólag a forrasztópáka ezen a hőmérsékletén ez a minimális érték. Ez alapján szinte száz százalékig biztos vagyok benne, hogy ez a termisztor működik.

Ha az ellenállás változása nem egyenletes, vagy egyáltalán nincs változás, akkor a termisztor hibás.

Emlékezik ez csak egy durva ellenőrzés. Az ideális teszthez meg kell mérni a hőmérsékletet és a termisztor megfelelő ellenállását, majd össze kell hasonlítani ezeket az értékeket a termisztor adatlapjával.