Zaslal: st květen 13 2015, 18:23 Předmět: "Přeslechy" na Analogových vstupech
Ahoj,
zkoušel jsem si nastavení a monitorování Analogového vstupu.
Dal jsem si odporovou síť 5k6 se společným vstupem na +5V a rezistory do jednotlivých vstupů A0-A5 u Arduino UNO (originál).
Pak jsem vstupy různě propojoval s GND, nechal ve smyčce skenovat a vypisovat si hodnoty AnalogRead najednou ze všech vstupů.
Očekával jsem, že při uzemnění vždy jednoho vstupu bude ve výpise 5x hodnota 1023 od vstupů, které jsou přizvednuté rezistorem 5k6 a jen jedna hodnota blížící se 0 (ta kterou zrovna uzemňuju).
Ale ta 0 se objevila současně nahodile i na některých jiných, v tu chvíli bezpečně neuzemněných vstupech.
Jde o nějaký "přeslech" v rámci ATMEGA nebo jak si to mám vysvětlit.
Založen: May 10, 2004 Příspěvky: 4511 Bydliště: Košice
Zaslal: st květen 13 2015, 19:33 Předmět:
Po prepnuti na iny analogovy vstup treba chvilku pockat az tak nacitat hodnotu, nebolo by odveci keby si si nastudoval,datasheet uP co je tam pouzity, otvori ti to oci
Dát mu mezi čteními ze vstupů oddechnout, to můžu zkusit...
Koukám že i na stránkách Arduino.cc je u AnalogRead psáno:
"It takes about 100 microseconds (0.0001 s) to read an analog input, so the maximum reading rate is about 10,000 times a second."
Takže je to celkem jasný, že při běhu programu "trpaslík" s voltmerem v uP nestíhá měřit"
Založen: Sep 19, 2007 Příspěvky: 3698 Bydliště: Praha
Zaslal: st květen 13 2015, 21:49 Předmět:
Chcete říct, že je knihovna pro Arduino napsána tak, že nepočká na dokončení AD převodu? Dokončení převodu je indikováno bitem ADIF v registru ADCSRA nebo přerušením.
Založen: May 10, 2004 Příspěvky: 4511 Bydliště: Košice
Zaslal: so květen 16 2015, 10:48 Předmět:
mtajovsky napsal(a):
Chcete říct, že je knihovna pro Arduino napsána tak, že nepočká na dokončení AD převodu? Dokončení převodu je indikováno bitem ADIF v registru ADCSRA nebo přerušením.
To stym nesuvisi, ide o to ze zvolis analogovy vstup a spustis prevod, vnutorny kondik v uP sa nabije na vstupne napatie, prevod sa dokonci mas hodnotu, prepnes sa na iny vstup a hned spustis prevod (ale vnutorny kondik je este nabity na napetie ktore bolo na predchadzajucom vstupe tak ze to co prevedies AD prevodnikom nebude presne to co tam mas pripojene teraz) inak 100% je,o tom zmienka v datasheetebale tie arduinaci zasadne necitaju (nemam tu datasheet tak ze tym vnutornym kondikom si niesom isty ani neviem aky typ AD prevodnika je,pouzity) ale urcite pockat po pzvoleni vstupu a tak spustit prevod pomoze
Vzorkovací kondenzátor se nabíjí v době 1,5 taktu PO spuštění převodu. Kapacitu má 14pF, takže s odporem 5k6 to je časová konstanta 80ns a za těch 1,5 taktu převodníku (6us při 250kHz) se bez problémů stihne nabít. Chyba bude někde jinde.
Atlan: Diky za doplneni.
Arduino UNO ma jeden AD prevodnik a pred nim multiplexer. Takze teorii s kondikem chapu.
A nevis jak to ma ATMEGA co je v Arduino MEGA?
To byl výpočet pro konkrétní případ, který jsi zde uvedl. Prostě dle mého názoru a zkušeností, chyba kterou popisuješ, není způsobena přeslechem mezi kanály z důvodu nedodržení vzorkovací doby nebo příliš velkého odporu zdroje signálu. To se začne projevovat až někde na stovkách kΩ. A i pak se to projevuje jen pozvolna na sousedních kanálech a ne tak jak píšeš, že ti tam náhodně skáčou nuly.
Vzhledem k tomu, že jsi zde doteď neuvedl "postižený" program, nemám k tomu co víc dodat.
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.