analogWriteResolution


analogWriteResolution()は、analogWrite()関数の高分解能を設定するための関数です。
AVRベースのボードとの下位互換性のために、デフォルトは8ビット(0〜255)です。

この関数は、DueのAnalogAPIに用意をされた専用関数です。
これ以外のボードでは使用することができません。

Dueは8ビットのPWM(他のボードと同じ)を12ピンと、12ビットのDAコンバータを2ピン持っています。この関数を使い12ビット指定すると、DACの分解能をフル活用でき、12ビット(0~4095)の出力が可能となり、PWMを使うときも符合が反転することがなくなります。

書き方 analogWriteResolution(設定するビット数)
戻り値 なし
引数 設定するビット数…1〜32
ボードのハードウェア機能よりも高いまたは低い解像度を選択した場合、analogWrite()で使用される値は、高すぎる場合は切り捨てられ、低すぎる場合はゼロが埋め込まれます。詳細については、以下の注意を参照してください。

プログラム例

注意

analogWriteResolution()ボードの機能よりも高い値に値を設定すると、Arduinoは余分なビットを切り捨てます。
例:analogWriteResolution(16)12ビットDACピンでDue withをanalogWrite()使用すると、渡された値の最初の12ビットのみが使用され、最後の4ビットは切り捨てられます。

analogWriteResolution()値をボードの機能よりも低い値に設定すると、ハードウェアに必要なサイズを満たすために、不足しているビットを0で埋めます。
例:12ビットDACピンでDue with analogWriteResolution(8)を使用すると、ArduinoはanalogWrite()必要な12ビットを取得するために使用される8ビット値に4つの0ビットを追加します。

弊社の二足歩行プログラミングロボットクムクムロボットは、ATMEGA32U4やESP32を使用しているため、この関数を使うことはできません。

ArduinoでQumcumロボットを制御
タイトルとURLをコピーしました