2

Arduino に関する一般的な質問があります。AnalogRead() を使用してセンサー値を 1 秒間に特定の回数読み取るにはどうすればよいですか。1 秒間に 10 回と言って、連続して PWM をモーターに出力します。

loop() を遅らせようとすると、モーターへの AnalogWrite() で使用している PWM に影響します。両方を行う方法はありますか?

また、AnalogRead() については、1 秒あたり 10 回または 20 回など、サンプル頻度を制御したいのですが、どうすればそれを行うことができますか?

本当にありがとう!

4

1 に答える 1

3

Arduino IDE で「遅滞なく点滅」の例を確認します。

サンプル スケッチを読んだ後に理解が深まる短い答えは、millis() からの最新の戻り値と以前の戻り値の差に基づいて analogRead() 呼び出しを実行し、PWM の変更をそのまま実行することです。必要です。analogRead() は非常に迅速に戻るため、どこでも delay() を使用しない限り、PWM 操作に干渉することはありません。

millis() からの戻り値は符号なしであるため、millis() からの戻り値を格納するために符号なし変数を使用している場合、連続する 2 つの戻り値の差は常に正であることに注意してください。1 秒は 1,000 ミリ秒であるため、2 つの連続する millis() 呼び出しの差が 100 より大きい場合は常に、別の読み取り値を取得します。1 秒あたり 10 個の値に近い値を維持するには、「前の」値を実際の読み取り値に置き換えるのではなく、「前の」ミリ秒の値を 100 ずつ増やします。

于 2012-04-30T04:29:21.823 に答える