Arduinoの基礎 - ペリフェラル

2019年7月30日 (火) 16:51時点における192.168.1.23による版

各部詳細

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)