Stránka 1 z 1

Arduino-ADC diferenciální měření

Napsal: 09 led 2025, 09:43
od sanoch
Zdravím,
mohl by mně prosím někdo nasměrovat a vysvětlit princip diferenciálního měření napětí?
Z toho mála co jsem našel na netu, nejsem schopen to přesně pochopit.
Jedná se mi o "posunutí nuly", chci měřit napětí na aku v rozsahu cca 3V-3.5V.
Jestli jsem to správně pochopil, tak by se toho 0.5V měřilo s rozlišením 10bitů.
To by značně zvýšilo přesnost měření.
Nejlépe nějaký příklad kódu, prostě se mi nic podrobného nedaří najít(neumím asi formulovat, co vlastně požaduji).
Předem děkuji za odpovědi.

Napsal: 09 led 2025, 10:46
od forbidden
Hlavně záleží čím to chceš měřit, jestli má převodník REF LO a REF HI vstupy. Posunout nulu z čehokoliv je externě snadný, ale záleží na tom, jak bude takový řešení stabilní, abys tím tu 10-bit přesnost stejně nezabil.
Koukni třeba sem.

Napsal: 09 led 2025, 10:59
od sanoch
Díky za odkaz.
Měřit to chci arduinem, tudíž některým z AVR.
Jedná se mi vlastně o princip a příklad kódu pro arduino.
Potřebuji to pochopit.

Napsal: 09 led 2025, 11:10
od forbidden
Aha, to jsem přehlídl. AVR neznám, ale pokud to nemá možnost spodní hranici reference nastavit v software na nějakou interní stabilní, tak jedině externě. Kód bude stejnej, jen připočítáš ten offset.

Napsal: 09 led 2025, 11:49
od sanoch
No, princip bude asi stejný.
Jde mi o to:
Potřebuji měřit interval 3V-3.5V.
Příkladně, mám 2 reference 3V a 3.5V.
Bude se při diferenciálním měření měřit jen ten rozdíl 0.5V 10bit rozlišením?
Nebo se s 10bit rozlišením změří první reference 3V pak neznámé napětí a odečte se hodnota první reference?

Napsal: 09 led 2025, 12:07
od forbidden
V tom je právě smysl diferenciálního měření. Plných 10-bit se použije jen na ten rozdíl, tedy 0,5 V tady.

Napsal: 09 led 2025, 12:13
od lesana87
Co je v tom Arduinu za AVR? Ne všechny mají diferenciální měření, třeba ATmega168 nemá.

Napsal: 09 led 2025, 12:13
od dracekvo
AVR neznám, ale u PIC to takto funguje jak píšeš.

Pokud dám jak Lo tak Hi externí referenci, tak to prostě měří 10bit v tom rozsahu mezi. Tj. v tvém případě mezi 3-3.5V.

Ale kód by stejný být neměl. Musím v konfiguraci nastavit příslušný pin, že se má využívat jako reference pro ADC.

Napsal: 09 led 2025, 12:19
od sanoch
No to potřebuji vědět, nedaří se mi najít nějaký příklad kódu.

Napsal: 09 led 2025, 12:46
od lesana87
AVR nemá dolní referenci, takže neumí měřit mezi dvěma referencemi jako PIC. Některá AVR umí měřit difrenciálně tak, že měří napětí mezi dvěma kanály případně ještě nějak zesílené (20x). Přesnost měření v diferenciálním režimu je ale asi 4x horší než při měření jednoho kanálu, tak je otázka, jestli si tím něco pomůžeš. Navíc jseš stále omezen (u AVR i PIC) nějakým rozsahem reference vzhledem k napájecímu napětí. Chce to trošku hlouběji promyslet.
Jinak u AVR se způsob měření (jeden kanál / rozdíl dvou kanálů) volí nastavením multiplexeru v ADMUX registru.

Napsal: 09 led 2025, 12:53
od sanoch
Ano, děkuji.
To by mi už mohlo stačit.
Nevěděl jsem právě, jak mu říct, aby měřil diferenciálně.

Napsal: 09 led 2025, 18:19
od bdn
attiny85 má možnost diferenciálního vstupu ADC převodníku. https://www.google.com/search?q=attiny85+datasheet

Napsal: 10 led 2025, 19:34
od Dumitru
Diferenciálne meranie na attiny45 som použil v mojom zdroji, je tam aj kód , pri použití oversamplingu a kalibrácii sa mi podarilo dosiahnuť presnosť ako v single-ended. Každopádne kalibrácii sa nevyhneš tu je návod , ja som sa na offseterror vykašlal kalibrujem len gainerror. Osobne by som to už ale nerobil radšej dať operak a diferenciálny zosilňovač.