Ne tak úplně.
pokud kouknete na datashet DS18B20, tj. http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf
hned třetí věta definuje přesnost čidla na 0.5°C( It has an operating temperature
range of -55°C to +125°C and is accurate to
±0.5°C over the range of -10°C to +85°C. ).
V článku se píše cosi o možné přesnosti na desetinu °C. Mě prostě uniká význam nastavení AD převodníku s postupnou aporoximací na úroveň přesahující přesnost polovodičového teplotního čidla.
na straně 3 datasheetu se píše:
The core functionality of the DS18B20 is its direct-to-digital temperature sensor. The resolution of the
temperature sensor is user-configurable to 9, 10, 11, or 12 bits, corresponding to increments of 0.5°C,
0.25°C, 0.125°C, and 0.0625°C, respectively.
Dle mě se jedná o prostý marketingový trik, jak lidi přesvědčit, že teplotní čidlo, založené na PN přechodu může mít větší přesnost než právě ten půl stupeň C. Tj. nastavovat ten AD převodník na více, než 9 bitů (93.75ms) je blbost.
1. diodove teplomery bezne mohou merit na milikelviny; ale k tomu je treba trochu neco vic, mit v pohode i referenci; jak to resi konkretni Dallas nebo co, to nevim (od dob, co se sezene platina za 30..50Kc to ani vedet nechci);
2. urcite ma smysl merit s malym dilkem i uhnutou teplotu; z toho jdou lepe odhadovat trendy teplot, jemne naladit teplotu atd. 1K je pomerne dost na pocit cloveka v mistnosti.
Asi se shodneme, ze nahodnou slozku sumu prumerovanim vystredujeme, nelinearitu vykompenzujeme (pokud uz to neudelal vyrobce), kriticky parametr je tedy dlouhodoba stabilita (starnuti). Kravina prosim napr. zde, po minute googleni (Si dioda, ovsem vymazlena): http://www.lakeshore.com/products/Cryogenic-Temperature-Sensors/Silicon-Diodes/DT-670/Pages/Specifications.aspx
Konkretne: Long-term Stability, oblast mereni 305K, +-25mK po 200 teplotnich socich 305K / 77K. Po 670h peceni pri 500K pak +-50mK.
Ale opakuji, potrebujete mit prinejmensim stejne stabilni referencni system, jinak je to o nicem. Osobne pouzivam Pt RTD a pokud mate zajem, tak az naberu dost mesicu dat, podelim se i o opakovatelnost. S kratkodobou stabilitou jsem nekde na 0.1mK, ale to je nezajimave cislo.
Uznávám, že asi žiji v jiném světě. Dát za součástku $500 + $500 na její kalibraci je mimo moje chápání reality. Viz
http://www.lakeshore.com/products/cryogenic-temperature-sensors/silicon-diodes/dt-670/pages/ordering.aspx
RTD je pochopitelně řešení, ale to bohužel zřejmě nelze cenově dostupně zaintegrovat do jednoho čipu, jako tomu je u DS18B20.
Zijete ve spravnem svete, ja vam necpu Lakeshore do pokojoveho termostatu, pouze reaguju na obecne prohlaseni o PN prechodu. Jak jsou stabilni ktere cenove dostupne Si teplomery, to je vec asi beznymi lidmi ne prilis probadana, ale exkolega, ktery resil klimatizace a regulace od dob podniku ZPA a radicu se Z80 rikal, ze prave Si diody byly super a stalosti to nandaly veskerejm dostupnejm NTC, PTC. (A ano, opet vim jiste, ze jsem videl z podobneho segmentu jako Lakeshore nejake NTC, ktere melo opet v technickem listu vynikajici starnuti..)
Rek bych, ze pri regulaci je ti tak nejak jedno jestli ti cidlo ukazuje teplotu o pul stupne jinou nez skutecnou. Co te zajima je zmena, a tu to klidne na ty setiny merit muze.
Ty asi moc nevis o tom, co rika udaj o presnosti ze? Ten rika jen to, ze cidlo meri s maximalni odchylnou do 1/2 stupne od realu. Coz je pomerne dost presny pro tyhle ucely. Realita bude totiz o dost lepsi.
Přesnost čidla 0.5°C znamená, že pokud vám čidlo vrátí hodnotu 23.4000°C, tak je tam skutečná teplota (ověřitelná přesným teploměrem) mezi 22.9°C a 23.9°C.
Nastavení převodníku ale umožňuje jemnější hodnoty 0.5°C,0.25°C, 0.125°C, 0.0625°C.
Zrovna nastavení převodníku 0.5°C je úplně tragické, protože nám rozsah skutečné teploty kolem naměřené (vrácené) hodnoty rozšíří o +/-0.25°C tzn. 22.65°C - 24.15°C.
Dalším pozitivem jemnějšího nastavení převodníku je, že sice neznáme teplotu s přesností na 0.0625°C, ale jsme schopni detekovat takto jemné výchylky teploty - tj. např. nevím přesně aktuální teplotu, ale vím, že vzrostla o 3x0.0625°C (+/- polovina kroku převodníku) - tj. vím že roste a jak rychle (nemusím čekat, až růst přeleze přes 0.5°C hranici).
Přesnost čidla 0.5°C by možná šla ještě kompenzovat kalibrací - např. kdyby se všechna čidla ponořila do vody s kostkou ledu a po ustálení by se přečetla hodnota, tak by se dalo ke každému čidlu zapamatovat odchylka a o ta by se potom při měření odečetla - tj. všechna čidla by potom mohla ukazovat minimálně při 0.000°C stejnou hodnotu a dala by se i voda zahřívat a průběžně kontrolovat, jak se čidla rozcházejí ve svých hodnotách a podle toho vypočítat "kalibrovanou odchylku" :-)
Je to prostě o možnosti "přesných výpočtů s nepřesnými čisly", výsledek je ale vždy přesnější, než u "nepřesných výpočtů s nepřesnými čísly".
--
Já jsem si zkoušel napojit A/D převodník (10bit) z Arduina na napěťový dělič s termistorem (http://www.ges.cz/cz/ntc-0-2-15k-GES05303343.html) a dosáhl jsem kroku měřených hodnot kolem 0.09°C - asi by se to dalo snadno dotáhnout až k 0.05°C (menším odporem v děliči nebo použitím referenčního napětí Aref). Rychlost čtení je celkem dobrá, jen to asi nebude vhodné pro příliš vzdálené čidlo - odpor vedení by nemusel být zanedbatelný, i když bude měřitelný.
Termistor má ale toleranci 5%, takže zaručená přesnost asi lepší než DS18B20 nebude.