analogReadResolution(bits)原文この関数はArduino Dueのために追加されました。 analogRead()が返す値のサイズ(ビット数)を変更します。デフォルトは10ビット(0〜1023)で、従来のArduinoボードと互換性があります。 Dueは12ビットADコンバータを搭載しており、分解能(resolution)を12ビットに変更することで0〜4095の値を得ることができます。 【パラメータ】 bits: analogRead()関数が返す値の分解能をbit単位で指定します。このパラメータの範囲は1から32で、実際には12より大きな値をセットすると、近似値が返ります。詳細は下記を参照してください。 【戻り値】 なし 【補足】 この関数を使ってボードが提供するADCの能力を超える分解能を設定すると、不足するビットにはゼロが詰められます。たとえば、DueでanalogReadResolution(16)としたときにanalogRead()が返す値は、16ビットのうち上位12ビットだけがADCの結果で、下位4ビットにはゼロが詰められています。 ボードの能力よりも低い分解能を指定した場合は、下位ビットが捨てられます。 実際のボードよりも高い16ビットの分解能を指定しておけば、将来的にもあらゆるボードに対してスケッチを変更することなく対応することができます。 【例】 いくつかの分解能を指定してADCをテストします。 void setup() { // open a serial connection Serial.begin(9600); } void loop() { // read the input on A0 at default resolution (10 bits) // and send it out the serial connection analogReadResolution(10); Serial.print("ADC 10-bit (default) : "); Serial.print(analogRead(A0)); // change the resolution to 12 bits and read A0 analogReadResolution(12); Serial.print(", 12-bit : "); Serial.print(analogRead(A0)); // change the resolution to 16 bits and read A0 analogReadResolution(16); Serial.print(", 16-bit : "); Serial.print(analogRead(A0)); // change the resolution to 8 bits and read A0 analogReadResolution(8); Serial.print(", 8-bit : "); Serial.println(analogRead(A0)); // a little delay to not hog serial monitor delay(100); } [目次へ戻る] |
Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください [Arduino wiki]