06: 詳説 Intel Edison Arduinoボードの入出力端子【Arduino規格のPOWER及びANALOG IN編】
よく訓練されたアップル信者、都元です。昨日のエントリーはこちらです。Arduino互換のピン配置を持つIntel Edison Arduinoボードですが、そこに搭載された各入出力端子について、整理していきましょう。
Arduinoの端子類
まずは、Arduino規格の端子類です。
J2A1 (POWER) と RESET SW
写真の上部、POWERと書いてある部分のピンは、電源入出力部です。
GNDがグラウンド、0V電位を表す基準端子となります。
VINはシステムに対する電源供給、つまり入力端子です。多くの場合は、DCジャックやUSBバスパワー経由での給電で動かすので私は使ったことがありませんが、ピンに給電する方式を撮る場合はこのピンに7〜12Vを印加します。
5Vと3.3V端子は、その電圧を固定的に出力するピンです。外部のモジュールに電源供給したい場合等、ここから電源を引っ張りだすことができますね。その他使い道は色々あると思います。
RESET端子は、基板上のリセットボタンと同じ役割をします。このピンをGNDに接続すると、リセットボタンを押下したのと同じ状態になります。リセット時は、起動を1からやり直す動きになります。工場出荷時に戻すわけではありません。リセットボタンが他のシールド等で隠されてしまったり、筐体(ケース)にリセットスイッチを配置したい場合に使えますね。
IOREF端子は、正直あまり理解しきってません。「IOピンの電圧レベルを出力する」そうです。まだ使う機会は来なさそうですねぇ。
AREF端子は後述、ANALOG INの部分で説明します。
J1A1 (ANALOG IN)
次に、上の写真の下部。ANALOG INと書いてある部分の端子は、アナログセンサー入力端子です。要するに、アナログセンサーが出力する0〜5Vの電圧を受け取り、その電圧に比例した数値を、Edison内のプログラムが利用できます。分解能は10bit、つまり0〜1023までの数値が取れます。A0〜A5の独立した6端子がありますので、それぞれ値を読むことができます。
上記では「0〜5Vの電圧を受け取り」と書きましたが、上は5Vとは限りません。アナログ入力の値を10bitの値に変換する際、最大値を決めるのが、前述のAREF端子です。ここに印加された電圧を最大値として解釈し、それと較べてA0にはどの程度の電圧が掛かっているのか、それを1024段階で表す仕組みです。まぁ、AREFには何も繋がないでおくと、5Vになる、というわけです。
スイッチによるアナログ入力
一番簡単なのは、スイッチでしょう。GNDとA0の間にスイッチをはさみます。スイッチがOFFの場合、5Vの電源とつながっているため、内部で取得できる値は1023になるでしょう。スイッチがONの場合、A0端子は0Vとなるため、内部で取得できる値は0になるでしょう。
さて、しれっと置いてある抵抗は、一体何でしょうか。
上図のようにこれが無い場合、スイッチがONになった時を想像してみてください。スイッチがONになった瞬間、5VとGNDがショートし、過大電流によって本体を壊してしまうことになります。
一方この状態だと、スイッチがOFFの時、A0はどこにも繋がっていない状態になります。値が定まらず、ランダムな値が取れてしまう結果となります。なので、スイッチOFFの場合はA0は5Vにつながる必要があるのです。
このような目的で配備される抵抗を、プルアップ抵抗と呼びます。回路が切れている時に、入力端子への電圧を高電圧側に固定する役割を持ちます。逆に、回路が切れている時に入力端子をGND側に固定するような抵抗も考えられます。こちらはプルダウン抵抗と呼びます。が、使われる機会はプルアップの方が多いようです。
可変抵抗によるアナログ入力
しかし、スイッチではあまりアナログな意味がありません。ON/OFFというデジタルな状況しか表現できないのですから。スイッチに続いて、次にイメージしやすいのは可変抵抗(ボリューム)でしょうか。
どちらに回すとどうなるか、は繋ぎ方次第ですが、ボリュームの角度によって、取れる値が0から1023まで徐々に増えたり減ったりすることになります。
まとめ
今回は、ボードからの電源入出力、及びアナログ入力について学びました。いやー、プルアップ抵抗、みたいな知識が出てくると、電子回路いじってる感が出てきて良いですね!
明日のエントリーはこちらです。