| 【戻り値】
なし 【補足】 analogWriteResolution()を使ってハードウエアの能力を超える分解能を設定すると、余分なビットが切り捨てられます。たとえば、12ビットDACを持つDueに対してanalogWriteResolution(16)を実行してからanalogWrite()を行う場合、パラメータの上位12ビットのみが有効となり、下位の4ビットは捨てられます。 ハードウエアの能力よりも小さい値を設定した場合は、足りないビットがゼロで充填されます。たとえば、Dueに対してanalogWriteResolution(8)を実行すると、12ビットを必要とするanalogWrite()の実行時に、4ビット分のゼロが8ビットのデータに付加されます。 【例】 いろいろなアナログ出力分解能を試します。 void setup(){
// open a serial connection
Serial.begin(9600);
// make our digital pin an output
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop(){
// read the input on A0 and map it to a PWM pin
// with an attached LED
int sensorVal = analogRead(A0);
Serial.print("Analog Read) : ");
Serial.print(sensorVal);
// the default PWM resolution
analogWriteResolution(8);
analogWrite(11, map(sensorVal, 0, 1023, 0 ,255));
Serial.print(" , 8-bit PWM value : ");
Serial.print(map(sensorVal, 0, 1023, 0 ,255));
// change the PWM resolution to 12 bits
// the full 12 bit resolution is only supported
// on the Due
analogWriteResolution(12);
analogWrite(12, map(sensorVal, 0, 1023, 0, 4095));
Serial.print(" , 12-bit PWM value : ");
Serial.print(map(sensorVal, 0, 1023, 0, 4095));
// change the PWM resolution to 4 bits
analogWriteResolution(4);
analogWrite(13, map(sensorVal, 0, 1023, 0, 127));
Serial.print(", 4-bit PWM value : ");
Serial.println(map(sensorVal, 0, 1023, 0, 127));
delay(5);
}
[目次へ戻る] |
Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください
[ドキュメント一覧]