Vícevstupový teploměr-přepínání čidel PT1000 v odpor. můstku

Dělám vícevstupový teploměr, kde používám odporová čidla typu Pt1000. Odpor čidla měřím v můstku připojeném na vstup přístrojového zesilovače AD267 připojeném dále na MCU. Prosím poraďte, jak připojit resp. přepínat více čidel v odporovém můstku. Dělám variantu s 2 čidly, to by sice šlo relátkem, ale pořád cvakat relátkem se mi nelíbí. Navíc potřebuji udělat i verzi s 8-mi čidly. Kdysi jsem něco podobného dělal multiplexorem MAX306 (dokonce 16-ti kanál), ale není to moc dobré, protože odpor jeho sepnutého kanálu velmi závisel např. na napájecím napětí, dále byl závislý na použitém kusu a byl kolem 100ohmů, což je obrovská hodnota a musí se s ní tedy při výpočtu počítat. Na druhou stranu ta MAX306 měla při kterémkoliv seplém kanálu prakticky stejný odpor, takže to nakonec šlo, ale nějak to není ono. Nemáte někdo nějaké lepší řešení ?
Díky Zdenek

:arrow_right: administrator: přejmenováno z "Vícevstupový teploměr"

Neznám co to je za zesilovač (operák?), nedá se použít pro každé čidlo jeden a použít vice A/D vstupů MCU?

Ještě se doporučuje 4051, ale problém s odporem bude stejný.

No a - nedal by se vnitřní odpor multiplexu korigovat i podle teploty a napětí? Na desce by bylo i jedno teplotní čidlo, které by měřilo provozní teplotu, a A/D převodník MCU by měřil napájecí napětí. Připraví se korekční křivky (vzorce), globální pro všechny vyrobené kusy, a pro každý kus se provede kalibrace - jen stisk tlačítka se zkratovaným čidlem teploměru, aby se ocejchoval základní odpor multiplexu, který se uloží do EEPROM.

Jinak pro přesné měření si myslím že nebude dobré ani přepínání relátky, všechno vnáší dost velkou chybu (odpor kontaktů), to asi raději každé čidlo samostatný zesilovač a až výstup přepínat.

Tady se to také řešilo: https://forum.mcontrollers.com/t/mereni-teploty-pic18-a-5x-cidlo-pt100-analogovy-multiplexer/2367/4

Díky.
Protože to měřím ATmegou16, určitě by šlo použít další vstupy A/D převodníku, ale problém je v tom přístrojiovém zesilovači AD627. Ten stojí něco přes stovku, je tedy docela drahý, ale chodí špičkově. Ještě se kouknu na tu 4051, případně na toho MAX306, hlavně, co to bude dělat s teplotou. Ten odpor sepnutého kanálu by nebyl problém kompenzovat trimrem, který v tom můstku stejně je, jen kouknu ještě do datasheetů jak je to s tou teplotou.

Co připojovat čidla pomocí mosfetů. Odpory sepnutí pár miliohmů. Viz příloha. Chce to ale vyzkoušet. Je to však jen teoretická myšlenka.
PS. Není to však klasické 4 bodové zapojení, ale pro zapojení do můstku by to možná šlo.

Ještě jsem našel pro inspiraci tohle:
vutbr.cz/www_base/zav_prace_ … le_id=8796
soselectronic.hu/a_info/reso … /uti03.pdf
PT1000 vicenasobny.jpg

Díky moc,
s těmi mosfety se mi to líbí. Uměl bys mi doporučit vhodný mosfet ?
Díky

:arrow_right: administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.

Myslel jsi to takhle nějak - viz příloha?
Díky

Ještě jsem našel tenhle multiplexor MAX4638. Co myslíš, mohlo by to jít ?

:arrow_right: administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.
MAX4638-MAX4639.pdf (318 KB)

Nákres Tvého obrázku je to, co jsem teoreticky myslel. Tranzistory pro spínání jsem našel např. IRFL024Z - 55V/5A/0.0575ohmu/TTL vstup, SMD.
Nebo podobné: IRLML6402, IRLZ44NS, … Mají extrémně malý RDSOn - pod 0,0xxx ohmu. Určitě najdeš i jiné typy. Chce to vyzkoušet.
Ten MAX4638-9 má naprosto skvělé parametry spínacích a rozpínacích časů, které tady zřejmě nevyužiješ. Ale průběžný odpor je dle datasheetu
cca až do 4,5 ohmu. To může zanést chybu do měření. Trvalý spínací proud je 30 mA. Což pro čidlo PT 1000 při 5V napájení měřícího můstku asi stačí.
Používají se i čidla PT 100 a tam ta chyba může být daleko větší. Proveď měření s čidlem v můstku a totéž s nějakým podobným mosfetem. Uvidíš, jak to bude měřit v daném rozsahu teplot. Dej pak vědět, jak to dopadlo. Docela mě to zaujalo. Sic to zapojení nepotřebuji, ale nikdy neříkej nikdy. Třeba se to někdy či někomu hodí.

Ono jde o to, že pokud chce člověk měřit na s přesností 0,1°C, tak změna odporu čidla PT1000 odpovídající 0,1°C je zhruba 0,5 Ohm. Seriový odpor kanálu toho multiplexoru MAX4638, řádu třeba 4,5 Ohmu by nevadil (eliminoval by se) stejně tim trimrem 100 Ohm v protilehlé větvi můstku. Spíš jde o to, aby byl pro všechny sepnuté kanály co nejvíce stejný. Jenže v datasheetu píšou rozdíl mezi kanály 0,4 Ohmu a to je přibližně chyba 0,1°C, což je moc. Možná by stálo za to, to vyzkoušet, ono to v praxi může být lepší. Takže se mi líbí to Tvoje řešení s MOSFETy (pokud by se to dělalo vícevstupé spínat MOSFETy dekodérem 1 z N).
Proto je podle mě lepší používat čidla PT1000 místo PT100, přesně jak jsi to napsal i Ty. Navíc změna výstupního napětí můstku odpovídající změně 0,1°C (tedy 0,5 Ohm) u PT1000 je asi v řádu 500 uV - takže nutno perfektní odrušení hlavně napájení digitální části… U Pt100 to bude mnohem méně (tedy začně horší). Tak trochu nechápu, proč všichni používají Pt100.

To čidlo PT100 se zřejmě používá buď z nějakého historického důvodu, nebo že má při 100 ohmech lepší odonost proti rušení. Nevím.
Ale pravdou je, že pro více čidel se používají vždy integrované zesilovače či převodníky co nejblíže čidlu. A pak se komunikuje RS485 nebo proudovou smyčkou nebo něčím podobným.
Pokud máš alespoň 2 čidla, zkus je zapojit na delší vodiče jako by tam ty mosfety byly, Tedy vždy jen jeden sepnutý. Zajímalo by mě, jaké rušení se naindukuje. Protože to druhé PTxxx bude fungovat jako anténa. Zkusil bych to sám, ale namám PTxxx.
Jaký rozsah teplot vlastně potřebuješ? Mě zatím na všecho stačilo čidlo DS18B20. I když teď vymýšlím měření do cca 500 stupňů. Asi to bude s termočlánkem. Žádná velká přesnost. Postavil jsem termostat s tím DS18B20 pro teplovodní kotel pro spínání čerpadla. Ale na krbovou vložku, která vytápí zásobník TOV to moc nejde použít. Když v noci dohoří oheň, tak je voda cca 60 - 90 stupňů. Ta se však vrací stejně teplá i ze zásobníku a ochlazuje se v krbové vložce. A navíc běží vlastně zbytečně čerpadlo. Tak mě napadlo navíc mimo teplotu vody měřit termočlánkem výstupní teplotu spalin do komína. Když dohoří oheň a v komíně se “ochladí”, bude čidlo DS18B20 jen sledovat případné navýšení teploty vody akumulované v krbové vložce a jen krátce protočí čerpadlo.

PS. Teď mě ještě napadla myšlenka. Tak jak jsem to myslel s těmi mosfety a čidly paralelně a pišu to o pár řádků výše, bude to asi dobrá anténa. Pokud budeš mít třeba 20m vodiče k čidlům, bude to asi fakt dost rušit. Při 8 čidlech to bude 7 antén. Zkus připojit k čidlům paralelně 1nF kondenzátory a vše proveď dobře stíněnou kroucenou dvoulinkou vhodného přůřezu. Nevím, zda ty mosfety by nešly zapojit nad čidla. Pak by trvale připojený vodič čidla byl na zemní svorce a odpojený na měřící svorce. Ale opět nutno odzkoušet. Je to jen teorie.

No, právě. Z toho rušení mám trochu obavy, vyzkouším to zatím bez těch MOSFETů. Při změně v řádu 0,5 mV, kterou ten přístrojivý zesilovač bude měřit nevím… Zmenšit horní odpory v můstku moc nejde, aby nedocházelo ke zkreslení vlastním ohřevem čidla. Máš pravdu, že ty PT1000 by bylo lepší dát až pod ty tranzistory, vyzkouším to, ale napřed zkusím vliv toho rušení bez tranzistorů. V nejhorší případě tam dám ten multiplexor nebo úplně v nejzoufalejším případě to relé… Pro tuto aplikaci by mi stačili i 2 čidla, ale lepší by bylo kdyby to umělo více čidel.
Jinak já potřebuju pro tuto aplikaci měřit od -90 do asi +150°C s přesností na 0,5°C. Jde o teploty na vstupu a výstupu kompresoru. Jenže když už to dělám, chci měřit na 0,1°C, protože jinak na měření používám ty DS18B20 ale nemám moc dobrý zkušenosti se spolehlivostí. No a taky mě omezují v teplotním rozsahu. Kámoš chlaďaři po mě chtějí těch -90°C a jednou po pě chtěli i kapalný dusík… Tak to s Dallasem nejde, proto zkouším udělat něco univerzálnějšího s PT1000.

Jinak já ohřev vody u krbu nemám, takže tomu co děláš moc nerozumím, ale 500°C nejde měřit Dallasem, ale to Ty víš, takže tam asi na to půjdeš tím termočlánkem, to je jasný.
Zkusím to rušení dneska nebo zítra změřit a dám Ti určitě vědět. Jinak díky moc, jsem vděčněj za každou radu a zkušenost. Nemám se jinak s kým poradit :frowning:

Zatím jen předběžně už mám první výsledek měření s kabelem. Připojil jsem zatím 15 m silikonový kabel TVBS 2x0,15 a na jeho konec jsem připojil 1k odpor (místo čidla) do můstku. Na výstupu toho přístrojového zesilovače jsem naměřil úplně stejný šum jako když tam ten kabel nebyl. Mám to nabastleno na propojovacím poli, takže nic moc.
Přikládám scan z osciloskopu. Je měřena pouze střídavá složka na výstupu toho přístrojovýho zesilocače (AD627).
Horní průběh (kanál A) je s 1k odporem v můstku (místo čidla), spodní průběh (kanál 1) je s 15m kabelem. Měřeno střídavě (AC) s citlivostí 100mV/dilek.
První soubor je s rozsvícenou výbojkou (od lupy) nad propojovacím polem, druhý soubor je se zhasnutou výbojkou.
Scan.pdf (20.6 KB)
Scan.pdf (22 KB)

Si myslim, ze tym mostikovym meranim si to uplne zbytocne komplikujes.
Daj na zname napatie (napriklad na nejaku referenciu, alebo kludne na Ucc mcu, ktory potom pouzijes ako referencne napatie, takze ta nebude trapit jeho kolisanie. Ale pre oddelenie a nezanasanie rusenia by som pouzil samostatnu referenciu napriklad z TL431 v TME za 2Kc]) odporovy delic, ktoreho dolny odpor bude tvoreny tou Pt1000(Pt100, Pt500, Ni1000,…). Kedze horny odpor poznas, jednoduchou matematikou v mcu vypoocitas dolny odpor. Zaroven ta chcem upozornit, ze s 10b AD prevodnikom nemozes ani len teoreticky merat teplotu v rozsahu -40 do +150°C na desatinu stupna. Potreboval by si 1900 dielikov, ale 10b AD ma maximalne 1024 dielikov.

Na Tvojom mieste by so spravil nasledovne pre viac kanalove zapojenie.

Snimat odpor v odporovom delici. Na vystupo odporoveho delica by som dal nejaky slusnejsi OZ, napriklad pre styri kanaly stvornasobny MCP6074 (stoji v TME 28Kc). Takto posilnene napatie mozes dat kludne na vstup hociakeho analogoveho muxu. Kludne aj osemnasobneho lacnucneho a overeneho 4051 (TME za 2.8Kc). Vystup tohto muxu pripoj na minimalne 12b AD prevodnik. Na tieto ucely pomaleho merania pouzivam s uspechom MCP3423 za cca 50Kc. Je to sigma-delta AD, takze sam od seba principialne filtruje rusenie 50Hz a jeho vyssie harmonicke.

Suma sumarum za 4x2+28+2.8+50+5 za nejake smetie okolo ta 4 kanal vyjde na 93.8Kc a osemkanal na 134.8Kc. Ak si zapojenie navrhnes sikovne s jumprami na (vyradenie Uref, pripojenie/odpojenie napr 10R odporu, zapojenie definovaneho delica) aj s nejakym teplomerom na doske pri svorkach, napriklad z 18B20. mas univerzalny analogovy vstup na meranie U/I/R a napatovy vstup mozes pouzit aj na meranie termoclankov, takze sa nemusis bat ani poziadavky na meranie teplot presahujucich 1000°C :slight_smile:

Je to lacne, overene a spolahlive. Pozor, cez Pt nezen vacsi prud ako 0.5-4mA v zavislosti od pozadovaneho rozlisenia. Prudom sa teplotny snimac ohrieva a tym sa skresluje meranie. Niekto tu pisal o 30mA. To uz by z Pt bolo male vyhrevne teliesko :slight_smile:

Ak pripojis teplomer cez kabel v labaku je jedno ci si si zapol lampicku alebo nie. Ta ti rusenie nesposobi. Sposobia ti ho cvakania isticov napajajucich velke stroje. Ak sa aj vyhnes priestoru isticu, to cvaknutie sposobi velky prudovy naraz ktory sa siri z napajacich kablov ako antena. Pri merani teploty vsak nejde o rychlost, takze namerane hodnoty filtruj (priemerovanie, plavajuci priemer, filter 1. alebo 2. radu, skratka nejaka jednoducha matematika lavou zadnou zvladnutelna v mcu) a paralelne ku kazdej Pt daj na strane merania 10n paralelne 100n a pripadne este 1uF keramicky kondik. Samozrejme nezabudaj na prepatovu ochranu. Ak sa ti do kabla naindukuje niekolko sto voltova slaha, polovodice v ceste k zemi by nic nezachranilo. To je ale samostatna otazka, ktora tu bola mnohokrat diskutovana.

To Martin:
Špatně jsi to nahoře četl. Psal jsem, že MAX4638-9 má maximální spínací proud 30mA a ne proud PTxxx. Jinak souhlas s ostatním, co jsi uvedl.
Chtělo by to opravdu na vzorku postavit s jedním čidlem a zkusit, co to bude dělat. Zatím jen teoretizujeme.

To Mikop: Pochopil som to spravne. Nenabadal si, aby cez Pt tiekol prud 30mA, iba si upozornoval, ze 30mA by mohlo stacit. Ja som sa len snazil varovat, aby to niekoho snad naozaj nenapadlo pouzit na Pt taky prud. Lebo cim vacsi prud na odpore, tym vacsi ubytok napatia a tym sa lahsie meria. Tak chcel som tym varovanim povedat len tolko. :slight_smile:

Popis mojho zapojenia je overeny a mnoho krat v priemysle uspesne odskusany. Pt1000 ma vyhodu pred Pt100, ze odpor privodnych kablov sa az prejavi 10x menej. Pri vacsej vzdialenosti by bolo treba odpor bud kompenzovat odpocitanim odporu vedenia, alebo pouzit troj ci stvorvodicove zapojenie. Trojvodicove zapojenie staci ak su oba vodice rovnakeho prierezu a z rovnakeho materialu, co je pri prakticky vsetkych realnym kabloch splnene. Ak sa nejde do extremnych teplot bezne pouzivam FTP kabel kvoli cene a vlastnostiam snad na vsetko. Je dobre kruteny a tieneny co zarucuje slusnu odolnost voci ruseniu, je mechanicky dost pevny aby ho montery hned z fleku pri tahani neroztrhli a hlavne je dostupny a lacny.

TO: Martin
Aha, tohle s tou TL431 je hoooodně zajímavé řešení, to mě fakt nenapadlo. S tou přesností je mi to jasné, myslím, že jsem tam nějak psal, že potřebuji měřit od -90 do 150 s přesností na 0,5°C, na což mi 10b převodník stačí. Co se týče toho, jak jsem psal o uvažované přesnosti 0,1°C, tak to bylo myšleno samozřejmě pro menší rozsah teplot. Proud čidlem je také jasný.
Ale to Tvoje řešení mi připadá ale naprosto perfektní, ale nevím jestli jsem vše správně pochopil. A pokud je to vyzkoušené… Prosím, nebylo by nějaké schema, pokud možno s tím multiplexorem, to si nejsem jist, jestli jsem pochopil?
Díky moc Zdenek

Jestli Ti stačí 10b převodník a je levný operák, tak že by sis pak už vystačiil s AD převodníkem procesoru a jeho více vstupy, takže by mohl multiplex odpadnout?

To by zase nešlo. Jasně, 10b převodník má v sobě MCU, jenže 10b není moc a tudíž, pokud potřebuju jakousi přesnost, musím do převodu zahrnout jen množinu mnou uvažovaných hodnot. Jinými slovy musí to měřit čidla od nějakých treba 600 Ohm do nějakých třeba 1k2 (tedy ne od 0 Ohm). No a pak tam myslím musím mít ten můstek a rozdílový zesilovač, lépeřečeno nevím, jak to udělat jinak. A dát na desku třeba osm můstků s osmi přístrojiovými zesilovači je nesmysl (ten zesilovač stojí cca 100 Kč). Takže vymýšlím jak to přepínat nějakým multiplexorem, nebo FETy…

A co takhle třeba použít mcu, který má AD převodník s diferenciálním vstupem ? Na NEG vstup AD převodníku přivedeš minimum (tedy hodnotu, která odpovídá těm 600 Ohmům), na POS vstup přivedeš vstup z čidla a na Vref dáš napětí, které odpovídá rozdílu max. a min. hodnoty. Hodnota převodu se pak vypočítá jako *(Vpos-Vneg)1024/Vref (z datasheetu ATmega16A) …

No to máš sice pravudu, to by bylo nejlepší, jenže myslím, že jsem četl vdatasheetu že v dif. módu umí ATMega pouze 8 bit.rozlišení a to je fakt málo.

Máš pravdu - ATmega16 má v datasheetu napsáno, že v diferenciálním módu umí jen 9 bitů -> -512 až +511. Bylo by potřeba použít ATtiny24/44/84 - ta umí jak bipolární režim (stejný jako ATmega16) tak i unipolární - 10 bitů -> 0-1023.