Arduino a analogový šum
Moderátor: Moderátoři
Arduino a analogový šum
postavil jsem si zařízení, kde potřebuju měřit hodnoty o velikosti promile maxima.
Pro převod do PC jsem použil Arduino UNO a vše pracovalo správně. Minimální naměřená hodnota je 0 až 0.1 % z maxima a šum v průměru (10 vzorků) odpovídá cca 0.02 %.
Problém nastal, když jsem do Arduina doprogramoval web server. Došla paměť!
Koupil jsem tedy Arduino ZERO (Seeedstudio), kde s pamětí problém není a navíc získám 12 bit ADC. Juchů.
Zklamání přišlo při testech šum narostl na 0.4 % i když jsem ho očekával někde na 0.04 % a průměrování s tím nic nenadělá - jeden vzorek jako druhý. Prostě šumí ADC respektive multiplexor dělá bordel.
Otázka tedy zní: Víte někdo jak na Arduino Zero (ARM Cortex+ M0) ovládat multiplexer z Arduino IDE. Jde mi o buď výrazné snížení přepínání multiplexoru či přímo výběr jednoho konkrétního kanálu. Funkce Delay před funkcí analogRead nic neřeší.
Díky Čust
- ZdenekHQ
- Významný člen
- Příspěvky: 25519
- Registrován: 21 črc 2006, 00:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
U NRF9E5 jsem například zjistil, že když se přepne jádro na čtyřnásonek, abych z toho vyrazil na UART 56kbit, tak 12bit převodník ukazuje asi o 10% méně. Což o to, to se dá zkalibrovat, ale u serie 10ks jsem našel 5, co byly dost výrazně nelineární.
Přeju příjemný zážitky.
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
- ZdenekHQ
- Významný člen
- Příspěvky: 25519
- Registrován: 21 črc 2006, 00:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
Stochastické chyby se bohužel sčítají.
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
já bych raději potřeboval vyřešit to ZERO... Něco málo jsem vylepšil, ale
nicméně šum stále je! něco jsem měl špatně... předchozí příspěvek je error
PO HODINĚ PRÁCE:
Každopádně, Zero má vlastní offset cca 0.15 % rozsahu i po zapnutém HW průměrování, u mě tedy cca 3.7 mV. Pak se šum zmenšuje s impedancí zdroje, logicky - vyhodil jsem RC článek (dolní propust) a zapojil jsem výstupní OZ natvrdo (přes odpor 47 Ohm) do ADC.
Další kus práce:
Nyní mám šum s offsetem OZ (a po odečtení offsetu ADC) na hodnotě 0.17 %.
Po odečtení offset OZ (dle měření osciloskopem 250 uV) jsem na hodnotě šumu 0.16 %.
Řekněme, že tomu věřím a ukončuji akci improve ADC!
Signál budu asi 4x zesilovat, takže se mi šum projeví jako 0.04 %. To už je lepší než 60 dB a s tím se dá pracovat!
Tam ten šum na AD převodníku je mnohonásobně lepší naž na procesoru SAMD21.
Takže pokud budete chtít měřit analogové hodnoty Arduino Zero není nejlepší volba.
Zatím nejlepší výsledky mám na Arduinu Due.