2010年1月22日金曜日

Arduino I/Oボード仕様概略

この投稿は、建築発明工作ゼミ2008を参考に、現在の仕様にあわせて新たに書き起こしたものです。
この投稿内容については、上記ブログ管理人のkousakuさんの許可を得ております。

Arduino Duemilanove 328(最もスタンダードなArduinoボード)

Arduino基盤には、大きく分けて以下のようなピンがあります。LED、センサ、アクチュエータ、その他電子部品を接続して使用します。
  1. デジタル入力ピン
  2. デジタル出力ピン
  3. アナログ入力ピン
  4. アナログ出力(PWM)ピン
  5. 5Vピン
  6. GND(グランド)ピン
1. デジタル入力ピン
基盤上方にあるDIGITAL0〜13番ピンについては、デジタル入出力の際に、使用するピンを出力用に使うのか、入力用に使うのかをプログラム上の pinMode()設定する必要があります。

digitalRead()では、HIGHかLOWの二段階の入力方法しかありません。LOWは0Vに、HIGHは5Vに対応します。あるいは、二進法ではLOWが0、HIGHが1、またboolean型変数におけるfalse/trueに対応します。(接続したセンサなどを通して、オンになっているのかオフになっているのかを読み取るときに使います)。
例えば、電源(5Vピン)からの電圧をスイッチでオン/オフ(0V/5V)できるような回路をデジタル入力ピンに接続すれば、スイッチの状態がオン(HIGH)かオフ(LOW)かをArduinoに伝える事ができます。

2. デジタル出力ピン
digitalWrite()も同様にLOW/HIGHの二段階の出力です。
例えば、LEDライトを付けたり消したりしたい時、デジタル出力ピンに抵抗とLEDを接続すれば、Arduinoで動いているスケッチ(プログラム)から、LEDライトをオン/オフできます。

Arduinoの5Vピンからの出力電圧は基本的には5V固定ですから、デジタル入力・出力とは、電気が流れている状態(5V)と、流れていない状態(0V)の二種類ということになります。スケッチ(プログラム)上では使われ方によって、下記のような記述方法を書き分ける必要があります。

3. アナログ入力ピン
analogRead()は、センサなどから0〜1023の1024段階の読み取りが可能です(0V〜5Vを1024段階に分けています)。
例えば、温度センサによって0℃ 〜 100℃を計測するとします。0℃ 〜 100℃の値はセンサと電子回路で0V〜5V(0〜1023)の1024段階に変換され、その電圧をアナログ入力ピンに入力すれば、温度センサがどれくらいの温度を感知したかをArduinoに伝えることができます。

4. アナログ出力(PWM)ピン
analogWrite()は、上方の3、5、6、9、10、11番ピンの6箇所に接続でき、0〜255の256段階の出力が可能です(0V〜5Vを256段階に分けています)。
例えば、温度センサからのアナログ入力によって得られた0〜1023の値(温度)によってモーターの回転数を変えたいとします。アナログ出力ピンに、入力値 / 4、つまり1024段階の値の1/4の値を出力させれば、アナログ出力とつながったモーターへ256段階のスピード調節の命令を伝えることができます。

アナログ入出力においては、pinMode()を設定する必要はありません。

5. 5Vピン
基盤の下方にある5Vピンからは、5V電圧をとることができます。

6. GNDピン
GNDピン(0V)は、上方13番ピンの隣と、下方5Vピンの隣に2つ、合計3箇所あります。

Arduino基盤では、基本的に、0〜5Vの電圧を扱います。参考までに、乾電池の基本電圧は1.5Vです。
通常は、USB接続によってパソコンから5V電源がArduino基盤に供給されます。外部電源から供給したい場合には、外部電源端子にバッテリやACアダプタ(6〜20V/推奨は7〜12V)などを接続します。


0 コメント:

コメントを投稿