Fråga:
Varför behöver en fördröjning mellan avläsningarna?
Victor He
2016-02-17 09:30:02 UTC
view on stackexchange narkive permalink

När jag lär mig handledningen i

båda kodexemplen har en kodrad fördröjning (1) och jag kan inte förstå kommentarerna tydligt: ​​

  fördröjning (1 ); // fördröjning mellan läsningar för stabilitet  

stabiliteten för / av vad?

Korspost till [Arduino Forum] (http://forum.arduino.cc/index.php?topic=379763).
ja, jag var rädd att ingen kommer att svara på min fråga, eftersom jag tror att det inte finns så mycket aktiv användare som Stack Exchange. Tyvärr!
Du kan inte ha varit * för * rädd, eftersom du skickade frågorna inom en timme från varandra. Kanske tvärpost om en dag eller två har gått utan svar. Arduino Forum har ett ganska snabbt svar på frågor. Du fick ett svar där * 8 minuter * efter inlägget. Och ytterligare en fem minuter senare. Så jag tror inte riktigt på din "rädsla" för dig.
förlåt , det är mitt fel , jag kommer inte göra det igen
Två svar:
Nick Gammon
2016-02-17 10:34:46 UTC
view on stackexchange narkive permalink

Dessa förseningar är nonsens. De ökar inte stabiliteten hos någonting. Det bästa du kan säga är att de hindrar dig från att skicka din seriella port. (Men 1 ms är inte särskilt lång).

Ibland kasta folk in en fördröjning eftersom "det verkar fungera bättre" utan att undersöka den bakomliggande orsaken. Jag skulle spekulera att författaren i det här fallet kan ha använt förseningar för att förbättra mottagningen av seriell data och fått idén i huvudet att en och annan fördröjning då och då "förbättrar stabiliteten".

Chetan Bhargava
2016-02-23 08:11:12 UTC
view on stackexchange narkive permalink

Analog stabilitet

Från datablad för ATMEGA328 Sida 240:

När bandgapets referensspänning är används som ingång till ADC, tar det en viss tid för spänningen att stabiliseras. Om det inte stabiliseras kan det första värdet som läses efter den första konverteringen vara fel.

Så om du gör flera läsningar måste du vänta några cykler.

Fördröjningar krävs inte när du använder automatisk utlösning:

När automatisk utlösning används, återställs förkalkaren när utlösningshändelsen inträffar. Detta säkerställer en fast fördröjning från utlösningshändelsen till början av omvandlingen. I detta läge sker samplingshållningen två ADC-klockcykler efter den stigande kanten på utlösarkällans signal. Ytterligare tre CPU-klockcykler används för synkroniseringslogik.

Även om du läser olika kanaler i samma ADC-modul, måste du ange en fördröjning mellan läsningarna så att den analoga MUX är placerad och S&H kondensatorn är laddad.

Denna information är ur hårdvaruperspektiv och jag är inte säker på om Arduino interna ADC-rutiner kompenserar för dessa förseningar.

Digital stabilitet stark >

Från den digitala läshandledningen schematisk:

enter image description here

I schemat är tryckknappen inte elektriskt - studsade. En fördröjning i läsningstillstånd skulle hjälpa till att avvisa det i programvara.

Som Nick Gammon föreslog förbättrar de också seriell översvämning.



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...