Arduinoの基礎 - ペリフェラル
各部詳細
Arduino UNO R3の各部詳細は下図の通りである。
図の左上のUSBコネクタの近くに、ICSP2(6ピンのピンヘッダ)が無いArduinoは、
USB - シリアル変換にATmega16U2が使用されていない(恐らくCH340Gが使用されている)と思われるので避けたほうがよい。
GPIO
14本のデジタルIOピン(PIN0 - PIN13)、6本のアナログINピン(PIN0 - PIN5)、6本のアナログOUTピン(PIN3, 5, 6, 9, 10, 11)がある。
・デジタルIOピン(PIN0 - PIN13)
Arduino IDEのソースコード上で入出力(INPUT, OUTPUT)として設定する。
センサから読み取る時は入力、アクチュエータに接続するときは出力である。
このピンで扱う電圧値は、HIGHとLOWの2値のみである。
・アナログINピン(PIN0 - PIN5)
アナログセンサを読み取る時に使用する。
このピンで扱う電圧値は、0 - 1023である。
・アナログOUTピン(PIN3, 5, 6, 9, 10, 11)
デジタルIOピンの6本のみアナログ出力として使用できる。
どのピンをアナログ出力とするかは、Arduino IDEのソースコード上で設定する。
電源
USB電源、ACアダプタ等を電源として使用できる。(ACアダプタは9[V] 2.1[mm]センタープラス型を推奨)
ACアダプタとUSB電源を同時に接続しても構わないが、その場合は、ACアダプタが電源となる。
SPI
SPI用のピンは、D10 - D13である。
ICSP端子を使えば、他ボードとピン互換にできる。(SSは除く)
UNO | LEONARDO | MEGA 2560 | |
---|---|---|---|
SCL | D13 / ICSP3 | ICSP3 | D52 / ICSP3 |
MISO | D12 / ICSP1 | ICSP1 | D50 / ICSP1 |
MOSI | D11 / ICSP4 | ICSP4 | D51 / ICSP4 |
SS | D10 | (TX LED) | D53 |
I2C
I2C用のピンは、A4 / A5である。
Arduino UNO R3で拡張されたSCL / SDAピンを使用すれば、他ボードとピン互換にできる。
I2C | UNO | LEONARDO | MEGA 2560 |
---|---|---|---|
SCL | A5 / SCL | D3 / SCL | D21 / SCL |
SDA | A4 / SDA | D2 / SDA | D20 / SDA |
Timer
Arduino UNOには、Timer0 / Timer1 / Timer2の3つのタイマーがある。
Timer0 | Timer1 | Timer2 |
---|---|---|
D5 / D6 | D9 / D10 | D3 / D11 |
Timerを使用する関数やライブラリを使用すると、思わぬ落とし穴に遭遇する事がある。
・delay(), millis(), micros() 等の関数でTimer0を利用しており、D5, D6をPWMに使用するとデューティ比が高めになる。
・ServoライブラリはTimer1を利用しており、D9およびD10でPWMが使用できなくなる。
・ToneライブラリはTimer2を利用しており、D3およびD11でPWMが使用できなくなる。
・SPIを利用する場合、D11でPWMが使用できなくなる。
Arduino言語マニュアル
言語リファレンスは [ヘルプ] - [リファレンス]で閲覧できる。(Arduino IDEのインストールフォルダのreferenceフォルダにある)
Arduino日本語リファレンス(Arduino Wiki)