名称
analogWriteResolution()
説明
analogWriteResolution()は、Arduino Due向けのアナログAPIの拡張である。
analogWrite()で設定する値の大きさ(ビット単位)を設定する。デフォルト値は8ビット(0から255)である。これは、AVRベースのボードとの後方互換性のためである。
Dueは以下のハードウェア能力を持つ。
- AVRベースのボードと同じように、8ビットPWMを出力可能な12ピン。これれは、12ビットの分解能に変更できる。
- 12ビットのDAC(デジタル・アナログ変換器)を持つ2ピン
分解能を12に設定することで、analogWrite()に与える値を0から4095に設定することができる。これにより、DACの完全な分解能を利用できるし、反転(rolling over)を起こさずにPWM信号を設定することができる。 [訳者註:いい訳があればぜひ教えてください]
Zeroは以下のハードウェア能力を持つ。
- AVRベースのボードと同じように、8ビットPWMを出力可能な10ピン。これれは、12ビットの分解能に変更できる。
- 10ビットのDAC(デジタル・アナログ変換器)を持つ1ピン。
分解能を10に設定することで、analogWrite()に与える値を0から1023に設定することができる。
MKRファミリーは以下のハードウェア能力を持つ。
- AVRベースのボードと同じように、8ビットPWMを出力可能な4ピン。これれは、12ビットの分解能に変更できる。
- 10ビットのDAC(デジタル・アナログ変換器)を持つ1ピン。
書式
void analogWriteResolution(int res);
引数
res | analogWrite()で設定する値の分解能(ビット)を設定する。1から32の値を設定することができる。ボードの能力以上の値や以下の値を設定した場合は、analogWrite()によって利用される値は切り捨てられたり、0パディングされたりする。詳細は、注意を参照。 |
戻り値
なし。
使用例
|
|
注意
analogWriteResolution()で、ボードの能力よりも大きい値を設定した場合、分解能を超えた部分を無視する。。
例えば、Dueで12ビットDACピンに対してanalogWriteResolution(16)とすると、analogWrite()に渡された値の最初の12ビットが利用され、残りの4ビットは捨てられる。
analogWriteResolution()で、ボードの能力よりも小さい値を設定した場合、ハードウェアが要求するサイズにするために残りのビットは0パディングされる。
例えば、Dueで12ビットDACピンに対してanalogWriteResolution(8)とすると、analogWrite()に渡された8ビットの値を12ビットにするために、4ビット分は0パディングされる。
参照
言語 analogRead()
言語 map()
利用例 Description of the analog input pins
訳者註
ソースコードを読んだ範囲では、以下の処理により、値の変換が行われているようです。
|
|
上記で、valueはanalogWrite()で設定した値です。fromにはanalogWriteResolution()で設定した値、toはDACの分解能が入ります。
オリジナルのページ
https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogwriteresolution/
Last Revision: 2019/02/21
実装の解析
まだ解析していません。
最終更新日
January 4, 2024