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

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.

9 bitů jen proto, protože 10. bit používá jako znaménkový. Takže stačí přivést ne počátek, ale střed měřeného rozsahu a výsledek pak bude 10 bitový.

TO: Panda38
Nejsem si jist, jestli jak je to vlastně s rozlišením při použití dif.vstupů u ATmegy16. V datasheetu v overview píšou toto: … If 1x or 10x gain is used, 8-bit resolution can be expected. If 200x gain is used, 7-bit resolution can be expected. Ale podle způsobu výpočtu convert result ADC=((Vpos - Vneg)Gain512)/Vref bych řekl, že máš pravdu a výsledek je 9-ti bitový. Máš v tomto režimu nějaké zlušenosti? Nějak asi nechápu datasheet.

Nemám bohužel zkušenosti, používal jsem jen jednoduchý nediferenciální vstup na voltmetr. Jen tak podle datasheetu jsem to tak pochopil, že diferenciální měření jen posouvá úrovně měření z nesymetrického na symetrické, s plným rozsahem. U gain bych pokles rozlišení chápal, protože se zvyšuje citlivost vstupu a zasahuje už do šumových oblastí. Jestli jsem to správně pochopil, tak jestli zaručuje 10bitové rozlišení (0 až 1023) s max. úrovní 2,56V, tak by mělo fungovat i rozlišení -512…+511 s max. úrovněmi -1,28 … +1,28 V (takže když se bude porovnávat se střední hodnotou a k výsledku se pak přičte 512, tak bude hodnota 0 až 1023). Možná už bude nutné procesor během měření vypínat do stavu klidu, pro snížení rušení.

Ale také si nejsem moc jistý, když koukám do datasheetu, jak to s těmi diferenciálními vstupy je, nevím proč uvádějí 8 bitů i pro gain 1x. Ten programovatelný gain uvádějí jen u 2 kanálů, o ostatních standardní citlivost, tak by bez gain mělo těch 10 bitů platit. Takže nevím. Možná to bude fungovat bez problémů a možná naopak to co jsem psal vůbec neplatí.

Ale kdyby fungovalo - výsledek by pak mohl vyjít docela jednoduše, jen MCU + pár odporů. Případně nějak vyřešit přepínání rozsahů (mosfety?), aby si uměl přepínat měřicí oblast, tj. vlastně jenom přepínat tu střední referenční úroveň a tím se bude posouvat v pásmech měření podle potřeby.

kmitl.ac.th/~kswichit/Pt100/Pt100.htm

Vyzkoušel jsem variantu s diferenciálním vestupem ATMegy. Výsledek je 9b + znaménko, tedy skutečných 1024 hodnot. Nevím tedy proč v datasheetu píšou, že výsledek je 8b ???! Nastavil jsem G=10 a jak psal Balů, max. hodnotu, která odpovídá max odporu čidla nastavuji na AREF. Jediný co mi zatím nesedí se mi zdá, že G není přesně 10, ale 10,6. Nemáte s tím někdo zkušenosti? V datasheetu jsem ale našel, že chyba zesílení je 1 LSB, ale to mi tedy vychází mnohem horší.

Konkrétně, pokud přivedu na dif. vstupy 0,1576V, převodník vrací hodnotu 376 ale měl by vracet 355 (105120,1576/2,2736 = 355). Takže bych spíš řekl, že mám něco špatně, pokud má být chyba zesílení max 1 LSB.

Taky mi převod na jejnižším bitu ADCL kolísá tak o 4, ale to je možná způsobeno propojovacím polem a drátkama. Já stejnak všechny převody průměruju, takže by to zase tak moc asi nevadilo. Na těch dif. vstupech MCU mám úrovně od -227,3 do 227,3 mV, ref. mi vyšla 2,2736 V.

Prosím nenáte někdo zkušenost s tou přesností G těch dif. vstupů ?

Ještě jsem zapomněl napsat jeden poznatek, že totiž musím v obslužné rutině pro AD vypnout AD převodník (ADEN=0) a před spuštěním převodu ho znovu zapnout (všechny převody jsou tedy rozšířené), jinak mi to vrací místo těch hodnot kolem 376 hodnoty kolem 389 (při 0,1576). To je taky docela divný, ikdyž to by mi tolik nevadilo.

Treba si polozit par otazok, je napetie pre adc vstup filtrovane? Na 10 bitoch asi nebude vhodne pouzit internu referenciu a ak uz, zmeraj presnym pristrojom napetie na pine Uref, diferencne meranie , predpokladam ze to co treba merias priamo na dif vstupoch do mikroprocesora a nie merakom za 5 E. A ked to priemerujes a zobrazujes, je mozne ze signal bude mat inu hodnotu asi by bolo mozne na to radsej mrknut osciloskopom a pozor kde to pripojis a budes merat, o moznych ubytkoch napetia na nejakych privodoch , a v skusobnom poli ani nehovorim.

Myslíš tím že jsi nastavil Gain = 10x ? Tam se ale podle datasheetu snižuje přesnost na 8 bitů (kvůli zarušení) a pokud používáš jen kladný rozsah tak pak je výsledek jen 7 bitů (což odpovídá tomu skákání hodnot jak píšeš).

To: Panda38
Aha, takže je to asi myšleno tak, že poslední bit mám zahodit, protože jinak ten AD převodník vrací fakt 1024 hodnot. Kde jsi vyčetl, že těch 8 bitů je kvůli zarušení? Já to v tom datasheetu nevidím. A hlavně to už je fakt málo a musel bych se vrátit k prvnímu řešení s externím dif. zesilovačem a SE převodem.