Arduino 日本語リファレンス


アナログ入力で使われる基準電圧を設定します。analogRead関数は入力が基準電圧と同じとき1023を返します。

【パラメータ】

次のうちの1つを指定します。

DEFAULT: 電源電圧(5V)が基準電圧となります。これがデフォルトです。
INTERNAL: 内蔵基準電圧を用います。ATmega168は1.1V、ATmega88は2.56Vです。
EXTERNAL: AREFピンに供給される電圧を基準電圧とします。

【戻り値】

なし

【注意】

AREFピンに外部の電圧源を接続するときは5KΩの抵抗器を通したほうがいいでしょう。それによってハードウェアの状態に適さない設定をanalogReferenceでしてしまったときに、ATmegaチップの内部がダメージを受けるのを防ぐことができます。
また、抵抗を経由して外部の電圧源を接続することで、デフォルトの5Vから外部の3.3Vに切り替える、というようにAREFの設定を実行中に変更することが可能になります。

【AREFの使い方】

AREFに供給される電圧が、ADCの最大値(1023)に対応する電圧を決定します。ADCはAnalog to Digital Converterの略です。

AREF(pin 21)に何も繋がっていない状態がすべてのArduinoボードの標準的な構成です。analogReferenceがDEFAULTに設定されているとき、AVCCとAREFは内部的に接続されています。この接続は低インピーダンスなので、DEFAULT設定のまま(誤って)AREFピンに電圧をかけてしまうと、ATmegaチップがダメージを受けることがあります。これが、AREFピンに5KΩの抵抗器をつなぐほうが良い理由です。

analogReference(INTERNAL)を実行することで、AREFピンはチップ内部で内蔵基準電圧源に接続されます。この設定では基準電圧(1.1V)以上の電圧がアナログ入力ピンにかかったとき、analogReadは1023を返します。基準電圧未満では比例の関係となり、0.55Vで512となります。

内蔵基準電圧源とAREFピンの間の接続は高インピーダンスなので、AREFピンから1.1Vを読み取ることは難しく、高インピーダンスなマルチメータが必要になるでしょう。INTERNAL設定のときは、外部の電圧源を(誤って)AREFピンにつなげてしまったとしてもチップがダメージを受けることはありませんが、1.1Vの電圧源はオーバーライドされてしまい、ADCの読みは、その外部からの電圧で決定されてしまいます。

外部の基準電圧を使用するときの正しい設定はanalogReference(EXTERNAL)です。これにより、内部の基準電圧源は両方とも切り離されて、AREFピンに対して外から供給される電圧をADCの基準とすることができます。



[目次へ戻る]

Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください [Arduino wiki]