ESPr One 32(ESP-WROOM-32 Arduino互換ボード)のピン配置について
ESPr One 32はWi-FiモジュールESP-WROOM-32をArduinoフォームファクタの基板に搭載してArduinoと同じように使えるようにしたボードです。ただし、Arduino Uno R3等と完全にピン配置が互換にはできないため、本ページでは互換性を保つために変更すべき点を記述します。
- Rev.4では両面の一部シルクにミスがあります。以下の正誤表をあわせてご利用ください。
Arduino ピン番号 | 修正前(誤) | 修正後(正)
|
|
D2 | IO5 | IO15
|
D3 | IO23 | IO13
|
D4 | IO9 | IO12
|
D5 | IO18 | IO14
|
|
D10 | IO15 | IO5
|
D11 | IO13 | IO23
|
D12 | IO12 | IO19
|
D13 | IO14 | IO18
|
資料
基本的なピンアサイン
Arduinoのピン番号 | ESP32のIO番号 | ESP32の主機能
|
| |
|
D0 | 3 | Serial RXD
|
D1 | 1 | Serial TXD
|
D2 | 15 | HSPI SS, T3, A13
|
D3 | 13 | HSPI MOSI, T4, A14
|
D4 | 12 | HSPI MISO, T5, A15
|
D5 | 14 | HSPI SCK, T6, A16
|
D6 | 0 | boot mode, A11, T1
|
D7 | 2 | boot mode, A12, T2
|
D8 | 16 | Serial1
|
D9 | 17 | Serial1
|
D10 | 5 | VSPI CS
|
D11 | 23 | VSPI MOSI
|
D12 | 19 | VSPI MISO
|
D13 | 18 | VSPI CLK
|
A0 | 25 | DAC1, A18
|
A1 | 26 | DAC2, A19
|
A2 | 27 | A17
|
A3 | 4 | A10, T0
|
A4 | 21 | SDA
|
A5 | 22 | SCL
|
- 例えば、ArduinoのD4ピンに信号を出したいなと思ったときは、ESP32のIO12がD4へ割り当てられていることを上の表から確認して、スケッチには
12
を記述します (例: digitalWrite(12, HIGH);
)。
- Arduino A4,A5はアナログ入力として使えません。デジタル入出力およびI2C専用となっています。
- ESP32のIO32,IO33は、本基板では発振子専用としており、GPIOピンとして利用できません。
- IO0, IO2はESP32のブートモード切り替えに使われています。シールドと接続すると起動できなくなるといった干渉がある場合、背面のジャンパを切り離すことで起動モードの不用意な変更を防ぐことができます。
- また、ESP32のA10以降は現在、WiFi機能と並行して利用できないという仕様があります。
ジャンパによって変更可能なピン
Arduinoのピン番号 | ESP32のIO番号 | ESP32の主機能 | 設置場所
|
| | |
|
A0 | 36 | A0 | 基板表
|
A1 | 39 | A3 | 基板表
|
A2 | 34 | A6 | 基板表
|
A3 | 35 | A7 | 基板裏
|
- ここで割当可能なESP32のA0,A3,A6,A7は入力としてのみ利用できます。
- A0, A1, A2 の変更用ジャンパは基板表に設置されています。
- 画像上部からA0, A1, A2用となっています。デフォルトでは全部左側が導通するようになっています。
- ジャンパの右側を切断し、左側をハンダを盛るなどして導通させると機能が切り替わります。
左のパッド | Arduinoのピン | 右側のパッド
|
| |
|
IO25(A18) | A0 | IO36(A0)
|
IO26(A19) | A1 | IO39(A3)
|
IO27(A17) | A2 | IO34(A6)
|
左のパッド | Arduinoのピン | 右側のパッド
|
| |
|
IO35(A7) | A0 | IO4(A10)
|
- 例えば、ESP32のタッチ入力
T0
が使いたい、となった場合は以下のように考えます。
T0
が使えるのは ESP32 の IO4 だけである。
- IO4 が割り当てられているのは、上の表より、ArduinoのA3である
- よって、スケッチには
T0
と記述し、基板上のA3をタッチするとタッチ検出ができる
なんでこういう配置なのか?
- D0,D1
- D2~D5
- ESP32のSPI1(HSPI)の推奨ピンが、D10~D13と同じように並んでいます。
- D6,D7
- 起動モード選択用なので、ジャンパで外部と切り離せるようになっています。タッチ入力は起動後も利用できるので、全く引き出さないのはもったいないという判断です。
- D8,D9
- Serial1の出力を並べました。ATコマンド利用時は、ここを使うことになります。
- D10~D13
- A0,A1
- Arduino M0 pro/zero のDACピンがA0になっているので、ESP32のDACピンもこの付近に設置しました。
- A2,A3
- 前述のようにESP32のA10~はADC2系統とIC内部では分類され、WiFiと共存できません。しかし、ADC1系統のピンは信号の出力ができません。将来的にADC2とWiFiが共存できるようになることを期待しています。
- A4,A5
- 割り当てられるピンが不足したため、アナログ入力機能は省きI2Cおよびデジタル入出力専用としました。
- 切り替え先のIO34,35,336,39
- 内部ではADC1系統と分類されているADCです。ADC2から切り替えて使います。信号出力ができないため、低優先度としました。