ADS115 presnosť,prepočty jednotiek

romanm
Příspěvky: 45
Registrován: 11 pro 2018, 23:17
Reputation: 0

ADS115 presnosť,prepočty jednotiek

Příspěvek od romanm » 06 led 2021, 21:17

ad) presnosť:
Hrám sa momentálne so 16-bitovým prevodníkom ADS115, ktorý chcem použiť na prevod napätia 0-5V, ktorý je výstupom z prevodníka 4-20mA. Všade píšu o zvýšenej presnosti oproti vstavanému arduino 10-bitovému prevodníku. Zatiaľ som dosť sklamaný, čo sa presnosti a stability výstupu týka. Nie je to 16-bitový prevodník, ale vlastne +-15-bitový.
Keďže je vstup 0-5V, tak mám ponechaný default vnútorný rozsah od -6,144 do 6,144V, z čoho vyplýva násobič 6,144/32767=0,1875mV. Presným multimetrom mám zmerané napätie 82,4mV, ktoré je stabilné a vôbec sa nemení, výstup z ADS1115 sa mení, raz je 84mV, inokedy 81mV (adc hodnota 432, resp. 448). Pre porovnanie mám to isté napätie privedené aj na analógový vstup arduina, kde sa zmerané napätie mení od 78 do 83mV. Je normálne, že výstup z ADC prevodníka je takýto nestály? Používam knižnicu Adafruit_ADS1015.h

ad) prepočty jednotiek:
Tu sa chcem len uistiť, že či to prepočítavam dobre.
Ako som písal, meriam napätie 0-5V, ktoré je výstupom z prevodu prevodníka 4-20mA na 0-5V. Snímač s prúdovým výstupom je tlakový snímač hladiny
s rozsahom 0-1000cm.
ADS1115 má napäťový rozsah do 6,144V čomu zodpovedá adc hodnota 32767. Moje vstupné maximálne napätie je 5V, čo zodpovedá hodnote(klasická trojčlenka :) ) adc 26666. Z pohľadu hĺbky ponoreného snímača 0cm zodpovedá adc hodnote 0 a 1000cm zodpovedá adc hodnote 26666.
Ak teda namerám adc hodnotu 448, zodpovedá to hĺbke 448*(1000/26666) = 16,8cm
Mám to tak správne? Nemám použiť výpočet 448*(1000/32767)=13,67cm?
Logika mi hovorí, že nie. Ale zaujímavé na tom je to, že snímač je ponorený naozaj len tých cca 13,5cm

ohruska
Příspěvky: 235
Registrován: 08 pro 2017, 20:56
Reputation: 0

Re: ADS115 presnosť,prepočty jednotiek

Příspěvek od ohruska » 06 led 2021, 21:59

Pokud chceš měřit přesně, je lepší měřit třeba 12x a nejnižší a nejvyšší hodnotu z pole vyhodit.
Aby byla přesnost na nižších hodnotách lepší, je možné změřit hodnotu a pokud je nižší jak další měřící rozsah, tak přepnou na nižší rozsah a měření opakovat.
Rozsahy měření:
// ads.setGain(GAIN_TWOTHIRDS); // 2/3x gain +/- 6.144V 1 bit = 3mV 0.1875mV (default)
// ads.setGain(GAIN_ONE); // 1x gain +/- 4.096V 1 bit = 2mV 0.125mV
// ads.setGain(GAIN_TWO); // 2x gain +/- 2.048V 1 bit = 1mV 0.0625mV
// ads.setGain(GAIN_FOUR); // 4x gain +/- 1.024V 1 bit = 0.5mV 0.03125mV
// ads.setGain(GAIN_EIGHT); // 8x gain +/- 0.512V 1 bit = 0.25mV 0.015625mV
// ads.setGain(GAIN_SIXTEEN); // 16x gain +/- 0.256V 1 bit = 0.125mV 0.0078125mV
Ota
Podle mě je výsledek 16.8 cm.

romanm
Příspěvky: 45
Registrován: 11 pro 2018, 23:17
Reputation: 0

Re: ADS115 presnosť,prepočty jednotiek

Příspěvek od romanm » 06 led 2021, 22:45

ohruska píše:
06 led 2021, 21:59
Pokud chceš měřit přesně, je lepší měřit třeba 12x a nejnižší a nejvyšší hodnotu z pole vyhodit.
Aby byla přesnost na nižších hodnotách lepší, je možné změřit hodnotu a pokud je nižší jak další měřící rozsah, tak přepnou na nižší rozsah a měření opakovat.
Toto riešenie s dynamickou zmenou rozsahov ma napadlo, len som nevedel, či je to bezpečné. Čo v prípade, že budem mať nastavený rozsah napr. do 1,024V a stúpne hodnota napr. na 4,5V? Nehrozí zničenie ADC prevodníka?

Prečo tá hodnota adc bezdôvodne preskakuje medzi hodnotami 448 na 432? Kdesi na nete som videl video, kde týpek meral napätie a jemu prevodník držal stále konštantnú hodnotu.

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: ADS115 presnosť,prepočty jednotiek

Příspěvek od ondraN » 07 led 2021, 07:05

Pokud převodník nedává stabilní hodnotu při konstantním vstupu, jsou za problémem většinou konstrukční nedostatky. Nejčastěji působí problém zašuměné napájecí napětí. Proto má analogová a digitální část oddělené napájení. Pokud je v konstrukci jen spojené, bez jiných opatření proti přenesení rušení do analogové části, vzniká nestabilita. Další věc je provedení analogové části na DPS. Tím se dá také hodně ztratit a když vidím některé moduly, tak se divím, že vůbec něco měří. Přijde mi, že DPS navrhoval člověk bez zkušeností, který si ani nepřečetl doporučení v aplikačním listu, jak má být proveden vstup. Často je tam i vzorový návrh. Když má člověk hotový modul, těžko s tím něco udělá. Ještě se dá občas dobastlit filtr mezi analogové a digitální napájení, ale třeba s digitálními cestami vedenými těsně kolem analogových vstupů se něco těžko udělá. Zkusit koupit jiný převodník nebo si udělat vlastni DPS. Ještě se může přidružit problém, že se na tyhle moduly často osazují součástky vyřazené z výroby kvůli parametrům mimo toleranci. Proto je většiou modul levnější, než IO v seriózním obchodě.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: ADS115 presnosť,prepočty jednotiek

Příspěvek od pavel1tu » 07 led 2021, 08:40

1) převodník JE rozhodně přesnější než Arduino
2) na nějakých mV přesnost nezjistíš, určitě tam máš i zvlnění/rušení - převodník I/U co nejblíž k ASD115
3) když máš výstup 4-20mA, proč to znova degraduješ nějakým převodem na V, ještě k tomu 0-5V, proč ne 1-5V ? Vyhneš se opravdu problematickému měření napětí kolem nuly. Ale to jsi asi špatně napsal - 0V nedocílíš při 4mA ...
4) jak již bylo psáno výše a je to i v desítkách článků na internetu, pokud chceš měřit opravdu přesně, změř to vícekráte a použij nějaký filtr (výpočtem z naměřených hodnot), tak funguje i tvůj měřák ;)

Co se týče snímače výšky hladiny, vyzkoušej tak 5,10,15,20,25,30 cm a uvidíš co měří (to se dá v kýblu - vedro - zvládnout), určitě zjistíš že je trvale "ujetý" o nějakou hodnotu, že nelítá sem a tam.
Jelikož nepíšeš co máš za snímač, doufám že má kompenzaci na okolní tlak vzduchu a že jsi ji třeba při zkracování kabelu nepoškodil - to jsem jednou vyvedl já.

Za mne - mám tento převodník jen na zkoušky, když jsem zkoumal jak se dobíjí baterie ze soláru v meteostanici v zimě a na stole jsem u napětí z LiLion proti měřáku nezaznamenal nějaké větší nepřesnosti. Je pravda, že jsem měřil napětí 3-5V.

Jn podotknu, že pokud to máš z číny, to nejlevnějš co jsi našel, tak stejně jako u ostatních věcí jsi mohl narazit na přeprodejce vyřazených ks, co neprošly po výrobě testy.

Jinak držím palce a jsem zvědavý co zjistíš ....
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

ohruska
Příspěvky: 235
Registrován: 08 pro 2017, 20:56
Reputation: 0

Re: ADS115 presnosť,prepočty jednotiek

Příspěvek od ohruska » 07 led 2021, 08:50

Prečo tá hodnota adc bezdôvodne preskakuje medzi hodnotami 448 na 432? Kdesi na nete som videl video, kde týpek meral napätie a jemu prevodník držal stále konštantnú hodnotu.
Možná měří ADS1115 správnou hodnotu a ty rozdíly může způsobit kolísání hodnot ze snímače a z převodníku. Asi by se dalo kolísání změřit osciloskopem...
Ota

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: ADS115 presnosť,prepočty jednotiek

Příspěvek od pavel1tu » 07 led 2021, 09:05

romanm píše:
06 led 2021, 22:45
Prečo tá hodnota adc bezdôvodne preskakuje medzi hodnotami 448 na 432? Kdesi na nete som videl video, kde týpek meral napätie a jemu prevodník držal stále konštantnú hodnotu.
No, pokud :
- 26666 = 5V
- přeskakování 448-432 = 16
- to odpovídá 3mV ?

Nevím jak přesněji chceš měřit ?
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

romanm
Příspěvky: 45
Registrován: 11 pro 2018, 23:17
Reputation: 0

Re: ADS115 presnosť,prepočty jednotiek

Příspěvek od romanm » 08 led 2021, 18:37

Po dnešnom výpadku sa stratili moje včerajšie príspevky, tak sa to pokúsim znova napísať.
1. Zmena rozsahu na najcitlivejší nepomohlo, hodnota adc "lietala" ešte viacej, stále to však boli približne 3mV.
2. Nepresnoť 3mV sa mi zdá dosť. Ako som písal, týpek na nete meral napätie a jemu sa hodnota menila maximálne v desatinách mV, mne v jednotkách mV. Napájam to impulzným zdrojom MeanWell. Nemal som čas to vyskúšať s použitím laboratórneho stabilizovaného zdroja, s kvalitne vyhladeným výstupom. Je možné, že za to môže zvlnenie, ale osciloskop bohužiaľ nemám. Prevodník I/U mám samozrejme priamo pri ADC. Káble na prepojenie mám použité hrubé, s prierezom 0,5m2, nie tie papierové pin kábliky.
3. Prečo to prevádzam na 0-5V a nie na 1-5V? Pretože mám taký prevodník. Ale určite by hodnota "lietala" rovnako pri 1V, ako lieta pri 0V, len namiesto zmien z 0,084 na 0,081V , by to bolo z 1,084 na 1,081V
4. Snímač má kompenzáciu, stredom ide dutá bužírka, keď som do nej fúkol, tak sa adekvátne skorigovala výška hladiny :-)
5. Spravil som test hladiny a porovnal 10bit a 16bit ADC. V krajných hodnotách bola odchýlka väčšia, ale postupne sa znižovala. Logicky má snímač v krajných hodnotách menšiu presnosť.
Reálna hĺbka 10bit arduino 16bit adc
3cm 5.8 6
5cm 6.8 7.8
10cm 12.7 12.6
15cm 16.6 16.8
20cm 21.5 21.6
22.5cm 24 23.4

Takže môj záver je asi taký, že nevidím dôvod použitia externého 16bitového adc v tejto aplikácii, ako to veľa užívateľov po nete odporúča.

Ešte taká otázka na záver. Arduino napájam cez napájací jack, pokiaľ pripojím usb kábel, tak sa hodnoty analógového vstupu a takisto aj z ADC úplne rozhádžu, vypisujú nezmyselné hodnoty. USB odpojím, tak je znova všetko ok. Prečo je to tak?

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: ADS115 presnosť,prepočty jednotiek

Příspěvek od ondraN » 08 led 2021, 19:12

Ještě mě napadlo, jestli máš v cestě signálu zařazený filtr na potlačení síťového kmitočtu 50Hz. Vzhledem k tomu, že AD převodník není integrační, by mohl měření rozhazovat indukovaný všudypřítomný síťový brum. Běžné multimetry mají integrační převodník i filtry, takže na nich může být údaj stabilní, ikdyž ve skutečnosti není.

Rodrigo
Příspěvky: 5
Registrován: 27 úno 2021, 12:53
Reputation: 0

Re: ADS115 presnosť,prepočty jednotiek

Příspěvek od Rodrigo » 09 bře 2021, 20:47

Fluktuaci měřeného napětí způsobuje mnoho příčin - nejdůležitější jsou, podle mého mínění, tři:
1. brum v napájení - zejména, když ADS1115 má společný pin Ucc pro napájení reference i samotného čipu. Proto doporučuji filtrovat nebo napájet ze samostatného stabilizátoru.
2. brum na přívodu měřeného napětí. Použít stínění a uzemnit ho jen v jednom bodě - na vstupu ADS1115. Nepomůže-li to, pak použít filtr na vstupu ADS1115. Hladina se nepohybuje nijak rychle a proto rozumný filtr na vstupu může měření významně zlepšit.
3. elektromagnetické rušení v okolí. Tady se vyplácí (pominu-li Faradayovu klec) měřit na co nejmenší impedanci a proto se v průmyslu používá raději proudová smyčka, než měření napětí: Na konec proudové smyčky dej odpor 100 ohm paralelně s elytem 20uF a měř napětí na něm: pro 4 mA dostaneš 400 mV a pro 20 mA to budou 2V. Navíc nepotřebuješ převodník na 0-5V.
Mimochodem, změna z 0,081 na 0,084 je o jeden řád větší, než z 1,081 na 1,084 a proto se užívá proudová smyčka až od 4 mA.
Číslicová filtrace jak radí ohruska jistě také přispěje k přesnosti. Nedůležitější je ale umístit odpor 100 ohm a elyt přímo na svorky ADS1115.
Mnoho zdaru tvému dalšímu snažení.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů