Arduino で電圧を測る (アナログ入力を読取る)
ここでは Arduino でアナログピンの値を読む方法について説明します。
analogRead() 関数を用いると指定したアナログピンから値を読むことができます。
Arduino ボードは、A0 から A5 までの 6 チャネルの 10 ビットのアナログ・デジタルコンバーターを持っています。
Arduino Uno などの動作電圧が 5V のボードでは 0V から 5V までの電圧は、 0 から 1023 までの整数に対応付けされます。バイナリの 1111 1111 11 は 10進数で 1023 です。
analogRead() 関数は読み取った値を 0 から 1023 までの整数値で返します。従って、5V が 1023 に対応する場合は、 (analogRead() の戻り値) * 5/1023 とすれば電圧が分かります。
尚、デフォルトで analogRead() の戻り値 0 から 1023 が 0V から 5V (もしくは Arduino Gemma のように 3.3V の動作電圧の場合は 0V から 3.3V) に対応付けされていますが、analogReference() 関数を 用いてこの範囲を変更することは可能ですが、設定可能な値はボードに依存します。
Arduino で電圧を測る
それでは実際に Arduino を用いて、電圧を計測してみましょう。
読み取った結果はシリアルモニターに出力します。
スケッチは次のようになります。
const int PIN_ANALOG_INPUT = 5;
void setup() {
Serial.begin( 9600 );
}
void loop() {
int i = analogRead( PIN_ANALOG_INPUT );
float f = i * 5.0 / 1023.0;
Serial.println( f );
delay( 1000 );
}
これによって 1 秒おきにシリアルモニターに電圧が表示されます。
以上、Arduino でアナログ入力を読み取る方法を紹介しました。
次のページでは温度センサー TMP36 の出力を analogRead 用いて読込み、その値から温度を換算。 そして、LCD 画面に温度を表示しています。