質問:
なぜ読み取りの間に遅延が必要なのですか?
Victor He
2016-02-17 09:30:02 UTC
view on stackexchange narkive permalink

チュートリアルを学ぶとき

両方のコード例に delay(1)のコード行があり、コメントを明確に理解できません:

  delay(1 ); //安定性のための読み取り間の遅延 

何のための/の安定性

[Arduinoフォーラム](http://forum.arduino.cc/index.php?topic=379763)へのクロスポスト。
はい、Stack Exchangeほどアクティブなユーザーはいないと思うので、誰も私の質問に答えないのではないかと心配していました。ごめんなさい!
お互いに1時間以内に質問を投稿したので、恐れることはできませんでした。答えがないまま1日か2日が経過した場合は、クロスポストするかもしれません。 Arduinoフォーラムは質問に非常に迅速に対応します。投稿してから* 8分*後に返信がありました。そして5分後にもう1つ。ですから、私はあなたのこの「恐れ」をまったく信じていません。
すみません、それは私のせいです、私は二度とそれをしません
二 答え:
Nick Gammon
2016-02-17 10:34:46 UTC
view on stackexchange narkive permalink

これらの遅延は意味がありません。それらは何の安定性にも追加されません。あなたが言うことができる最もよいことは彼らがあなたのシリアルポートをスパムするのを止めるということです。 (ただし、1ミリ秒はそれほど長くはありません。)

根本的な原因を調べずに、「うまく機能しているように見える」ために遅延が発生することがあります。この場合、作成者はシリアルデータの受信を改善するために遅延を使用していた可能性があり、時折遅延が発生すると「安定性が向上する」という考えを頭に浮かびました。

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

アナログ安定性

ATMEGA328のデータシートから240ページ:

バンドギャップ基準電圧がADCへの入力として使用される場合、電圧が安定するまでに一定の時間がかかります。安定していない場合、最初の変換後に読み取られた最初の値が間違っている可能性があります。

したがって、複数の読み取りを行う場合は、数サイクル待つ必要があります。

自動トリガーを使用する場合、遅延は必要ありません。

自動トリガーを使用する場合、トリガーイベントが発生するとプリスケーラーがリセットされます。これにより、トリガーイベントから変換の開始までの固定遅延が保証されます。このモードでは、サンプルアンドホールドは、トリガーソース信号の立ち上がりエッジの2ADCクロックサイクル後に発生します。同期ロジックには、さらに3つのCPUクロックサイクルが使用されます。

また、同じADCモジュールの異なるチャネルを読み取る場合は、アナログMUXが配置されるように、読み取り間に遅延を設ける必要があります。 S&Hコンデンサは充電されています。

この情報はハードウェアの観点からのものであり、Arduinoの内部ADCルーチンがこれらの遅延を補償するかどうかはわかりません。

デジタル安定性

デジタル読み取りチュートリアルschmaticから:

enter image description here

回路図では、プッシュボタンは電気的に切断されていません-バウンス。状態の読み取りが遅れると、ソフトウェアで状態をデバウンスするのに役立ちます。

Nick Gammonが示唆したように、状態の連続フラッディングも改善されます。



このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...