Arduino a termistor na A/D

ernie

Re:Arduino a termistor na A/D
« Odpověď #15 kdy: 02. 01. 2013, 03:00:47 »
 ;) Já jen odpovídal proč termistor. :) Prostě proto , že se s tim chci naučit dělat a třeba ho mám v šuplíku . Toť vše


3ugeene

Re:Arduino a termistor na A/D
« Odpověď #16 kdy: 02. 01. 2013, 08:23:22 »
co tohle?


http://learn.adafruit.com/thermistor/using-a-thermistor



jestli to teda jeste nikdo nepostoval

ABC

Re:Arduino a termistor na A/D
« Odpověď #17 kdy: 02. 01. 2013, 19:21:21 »
...
Vpodstatě se shodnem v tom že od účelu měření se odvíjí požadavek na přesnost. Zmínil jsem to právě proto že požadavek na přesnost autor tématu nespecifikoval. Jak chcete něco vyvíjet, když nemáte stanoven cíl čeho chcete dosáhnout?
Bimetal se spis dnes pouziva uz jen jako teplotni pojistka a nebo kurvitko.
Prevodnik na FPGA je dost dobry overkill;) Nevyrabejsi se pro tyto ucely snad specialni IO ve velkych seriich? Jaky to ma smysl?
Nemam k dispozici data porovnávající spolehlivost bimetalu s jinými principy termostatů, ale na to jak pitomej kus kovu to je, tak to do některejch aplikací stačí. Příbuzný dilatační teploměry maj taky svoje místo na trhu (jsou prý téměř nezničitelný).

Ohledně toho FPGA - čidla bejvaj součástí komplexnějších systémů, převodník nemusí zabírat celýho spartana. Může tam být navíc PSD regulátor, ethernet, UI a kdoví co ještě. Mimochodem jedna česká firma prodává dekodér IRC čidel na FPGA, jako náhradu za blbě dostupný specializovaný obvody. (druhá věc je že levné DSP od PICu mají výkonný dekodér integrován). A použití FPGA ve velkosériové výrobě neni úplně mimo.  Z různých důvodů se používají např. v mobilních telefonech

Novic

Re:Arduino a termistor na A/D
« Odpověď #18 kdy: 02. 01. 2013, 20:52:47 »
...
Vpodstatě se shodnem v tom že od účelu měření se odvíjí požadavek na přesnost. Zmínil jsem to právě proto že požadavek na přesnost autor tématu nespecifikoval. Jak chcete něco vyvíjet, když nemáte stanoven cíl čeho chcete dosáhnout?

Přesnost... V prvním příspěvku je odkaz na konkrétní specifikaci terministoru v PDF. Viz. "Resistance tolerances of ± 3% or ± 1%". S tím jsem si tu součástku "bral". Celá diskuse se pak stočila někam, kam jsem nepotřeboval (byť některé jení fragmenty byly taky užitečné). Pro mě osobně byla nejužitečnější odpověď od hawrana.

sova

Re:Arduino a termistor na A/D
« Odpověď #19 kdy: 03. 01. 2013, 05:01:39 »
KT(Y)xxx je kremíkový snímač teploty (s pozitívnou závislosťou na teplote, PTC), nie termistor (správa sa podobne, ale má inú teplotnú závislosť - tvar krivky sa viac približuje k lineárnemu).
Nejaký vzorový kód som nasiel v tejto diskusii (predposledný príspevok) http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=23077
ale neoveroval som ho. V príspevku za ním sa niekto zmieňuje, koľko to zaberie miesta a času (v radiči ATmega8 - to je predchodca Atmega328 v dnešných arduinach).

Potvrdzujem, že hodnota R25 je odpor pri 25stupňoch Celzia (a min-max je rozptyl tejto hodnoty v rámci tolerancie súčiastky). Podobne sa udáva odpor termistorov a iných teplotných snímačov.

Ak Vás zaujíma termistor (teplotne závislý rezistor), odkaz ktorý poslal robin martinez vyzerá byť dobrý popis merania teploty termistorom pomocou arduina.
Termistory vyzerajú takto: http://www.murata.com/products/catalog/pdf/r44e.pdf , teda dosť rôzne. Na experimentovanie sa dajú vybrať zo starej základnej dosky z PC, z akumulátorov apod - ale tam už nezistíte výrobcu ani typ. Často sa používajú termistory s odporom 10kohm pri 25 st. Celzia (väčšina tých čo som vybral zo starých dosák, bateriek..).

Ak by ste chceli termistor kupovať, na meranie teploty sa používajú termistory s negatívnou teplotnou závislosťou (NTC) - to je väčšina termistorov a vyrábajú sa aj s presnosťou 1% .

Teplotná závislosť termistora je nelineárna - linearizovať sa dá pomocou tabuľky, alebo vzorca (iného, ako pre KT(Y)xxx - Google, stránky arduino, wikipedia:  "Steinhart-Hart Thermistor Equation") - existujú dve verzie rovnice (s troma koeficientami a s jedným) , odporúčam začať s jednoduchšou. Murata napr. udáva len koeficient B, takže tam zložitejšia ani nepripadá do úvahy.

Príklad tabuľky je tu: http://playground.arduino.cc/ComponentLib/Thermistor a na konci článku je odkaz aj na vzorec. Podobná tabuľka by asi bola vhodná aj na KT(Y).

Vzorcom (či už ide o termistor, alebo KT(Y)xxx) sa dá len aproximovať priebeh - teda k presnosti, ktorú dosiahnete tabuľkou sa môžete výpočtom len priblížiť a aj keď sa to na prvý pohľad nezdá, vzorec môže zabrať viac pamäte ako tabuľka. Riešenie so vzorcom zase vyzerá elegantnejšie, pri zmene snímača stačí zmeniť niekoľko konštánt - asi je najlepšie vyskúšať si obe varianty.

Neviem či som Vám pomohol, tiež s mikroradičmi len začínam. Uprednostnil som ale jednoduchšiu  cestu - pokúšam sa postupovať od jednoduchých vecí k zložitejším. Na meranie teploty je podľa mňa na začiatok vhodný teplotný snímač LM36 - na výstupe má napätie, ktoré je priamo úmerné teplote a má lineárnu závislosť). Z Vašich otázok mám pocit, že by aj pre Vás mohlo mať pozitívny efekt, ak by ste sa vrátili o krok späť - a vyjasnili si meranie napätia na vstupe A/D prevodníka, prepočítavanie hodnoty 0-1023 na napätie a počítanie odporových deličov predtým, ako sa pustíte do (trocha) zložitejších vecí. Stačí si vybrať jeden z mnohých tutoriálov a stráviť s tým dva - tri večery.



Re:Arduino a termistor na A/D
« Odpověď #20 kdy: 03. 01. 2013, 09:46:14 »
a aj keď sa to na prvý pohľad nezdá, vzorec môže zabrať viac pamäte ako tabuľka.
Jenom na okraj: tohle se může stát úplně snadno - když měřím od -20 do +30 s přesností 0.5, potřebuju tabulku velkou nějakých 100B + kód na její prohledání, což bude krátká smyčka.

Oproti tomu pokud k výpočtu podle rovnice potřebuju ke kódu přidat nějakou matematickou funkci, kterou bych jinak nepoužil, může mě to stát jednotky kilobajtů (ono se to nezdá, ale jenom přiblblej printf má něco kolem 2kb, pokud si správně pamatuju).