Arduinoの基礎 - ペリフェラル

提供:MochiuWiki : SUSE, EC, PCB
2024年12月9日 (月) 12:47時点におけるWiki (トーク | 投稿記録)による版 (→‎各部詳細)
ナビゲーションに移動 検索に移動

ピン配置

Arduino UNO R4 WiFi

下表に、Arduino UNO R4 WiFiの全IOピンの機能を示す。

ピン 種類 説明
D0 デジタル UART受信
D1 デジタル UART送信
D2 デジタル GPIOピン, 割り込み
D3 デジタル GPIOピン, 割り込み, PWM
D4 デジタル GPIOピン
D5 デジタル GPIOピン, PWM
D6 デジタル GPIOピン, PWM
D7 デジタル GPIOピン
D8 デジタル GPIOピン
D9 デジタル GPIOピン, PWM
D10 デジタル SPI (CS), GPIOピン, PWM
D11 デジタル SPI (COPI), GPIOピン, PWM
D12 デジタル SPI (CIPO), GPIOピン
D13 デジタル SPI (SCK), GPIOピン, ビルトインLED
A0 アナログ Analog入力, DAC出力
A1 アナログ入力 Analog入力, OPAMP +
A2 アナログ入力 Analog入力, OPAMP -
A3 アナログ入出力 Analog入力, OPAMP出力
A4 アナログ入力 Analog入力, SDA*
A5 アナログ入力 Analog入力, SCL*



各部詳細

Arduino UNO R3の各部詳細は下図の通りである。

Arduino UNO R3 01.jpg

図の左上のUSBコネクタの近くに、ICSP2(6ピンのピンヘッダ)が無いArduinoは、
USB - シリアル変換にATmega16U2が使用されていない(恐らくCH340Gが使用されている)と思われるので避けたほうがよい。

Arduino UNO R3 02.jpg


GPIO

14本のデジタルIOピン(D0 - D13)、6本のアナログINピン(A0 - A5)、6本のアナログOUTピン(D3, D5, D6, D9, D10, D11)がある。

・デジタルIOピン(D0 - D13)
 Arduino IDEのソースコード上で入出力(INPUT, OUTPUT)として設定する。
 センサから読み取る時は入力、アクチュエータに接続するときは出力である。
 このピンで扱う電圧値は、HIGHとLOWの2値のみである。

・アナログINピン(A0 - A5)
 アナログセンサを読み取る時に使用する。
 このピンで扱う電圧値は、0 - 1023である。

・アナログOUTピン(D3, D5, D6, D9, D10, D11)
 デジタルIOピンの6本のみアナログ出力として使用できる。
 このピンで扱う電圧値は、0 - 255である。
 どのピンをアナログ出力とするかは、Arduino IDEのソースコード上で設定する。

電源

USB電源、ACアダプタ等を電源として使用できる。(ACアダプタは9[V] 2.1[mm]センタープラス型を推奨)
ACアダプタとUSB電源を同時に接続しても構わないが、その場合は、ACアダプタが電源となる。


SPI

SPI用のピンは、D10 - D13である。
ICSP端子を使えば、他ボードとピン互換にできる。(SSは除く)

Arduino UNO R3 03.jpg
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


Arduino UNO R3 04.jpg



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)