大好きArduino

Arduino総合情報サイト

Arduino文法

analogReference(mode)

2016/06/09

アナログ入力で使われる基準電圧を下記から設定します。

●引数

DEFAULT 5V
INTERNAL 内蔵基準電圧(ATmega168と328Pでは1.1V)
EXTERNAL AREFピンに供給される電圧(0V~5V)
INTERNAL1V1 Arduino Megaのみ有効  1.1V
INTERNAL2V56 Arduino Megaのみ有効 2.56V

※注意

  • 外部基準電圧を0V未満 または 5V(電源電圧)より高い電圧に設定できません。
  • AREFピンに外部基準電圧源を接続した場合、analogRead()を実行する前に必ずanalogReference(EXTERNAL)を実行。(デフォルトの設定のまま外部基準電圧源を使用するとチップ内部でショートしArduinoボードが損傷する恐れがあります。
  • 外部基準電圧源をAREFピンに接続する方法として5KΩの抵抗器を介して供給します。こうすると、内部と外部の基準電圧源を切り替えながら使えるようになります。ただし、AREFピンの内部抵抗(32KΩ)の影響で基準電圧が変化しますので注意してください。5KΩの外付け抵抗と32KΩの内部抵抗によって分圧が生じ、たとえば2.5Vの電圧源を接続したとしても、2.5 * 32 / (32 + 5)により、約2.16VがAREFピンの電圧となります。

※AREFの使い方

  • AREFに供給される電圧が、ADCの最大値(1023)に対応する電圧を決定します。ADC=Analog to Digital Converterの略。
  • 通常ボードでは、AREF(pin 21)に何も繋がっていません。
  • 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の基準とすることができます。

Arduino 原文

-Arduino文法