Arduinoチュートリアル 基礎編


アナログ入力ピン

原文

Arduinoが採用しているATmega168チップのアナログ入力について説明します。

【ADコンバータ】

ATmega168はオンボードのAD(analog to digital)コンバータを6チャネル持っています。このコンバータは10ビットの解像度で、0から1023までの整数を返します。
通常、Arduinoユーザーにとってこの機能は、アナログセンサからのデータを読み取るためのものですが、デジタルピン0〜13と同様に汎用のデジタル入出力ピンとしても使うことができます。デジタルピンが足りないときは、このことを思い出してください。

【ピンマッピング】

Arduinoのアナログ入力ピンには、14から19までのピン番号が割り振られています。デジタルピンとして使うときは、この番号を使ってください。
たとえば、次のコードはアナログ入力ピン0(デジタルピン14)を出力に設定したあと、HIGHにセットします。

pinMode(14, OUTPUT);
digitalWrite(14, HIGH);

【プルアップ抵抗】

アナログ入力ピンもデジタルピンと同様に内蔵プルアップの機能を持っています。ピンが入力に設定されているとき、次のコマンドで有効になります。

digitalWrite(14, HIGH);  // アナログピン0のプルアップを有効に

analogRead()でセンサの値を読み取っているときにうっかりプルアップをオンにしてしまうと、得られる値が影響を受けます。プルアップ機能の操作はアナログピンをデジタルモードで使っているときにだけ必要となるのが普通です。

【補足】

直前まで出力に設定されていたピンをanalogRead()に使用すると、正しく動作しません。その場合、いったん入力に設定してからanalogRead()を実行してください。

また、0〜3のアナログ入力ピンのひとつでAD変換(analogRead)を実行し、他のピンがデジタル出力に使われているとき、デジタルピンのスイッチングを行うとAD変換に影響して誤差を生じさせることがあります。ただし、I2Cに使われるアナログ入力ピン4と5は、0〜3のアナログ入力ピンの動作には影響しません。



[目次へ戻る]

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