=== ESPr One 32(ESP-WROOM-32 Arduino互換ボード)のピン配置について === [https://www.switch-science.com/catalog/3555/ ESPr One 32]はWi-Fiモジュール[https://www.switch-science.com/catalog/3156/ ESP-WROOM-32]をArduinoフォームファクタの基板に搭載してArduinoと同じように使えるようにしたボードです。ただし、Arduino Uno R3等と完全にピン配置が互換にはできないため、本ページでは互換性を保つために変更すべき点を記述します。 [[Image(http://trac.switch-science.com/raw-attachment/wiki/espr_one32/IMG_5183.png)]] * 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|| **資料** * [http://trac.switch-science.com/wiki/esp32_setup ESP-WROOM-32のセットアップについて] * [http://trac.switch-science.com/wiki/esp32_tips ESP-WROOM-32に関するTIPS] ==== 基本的なピンアサイン ==== ||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はアナログ入力として使えません。デジタル入出力およびI^2^C専用となっています。 * ESP32のIO32,IO33は、本基板では発振子専用としており、GPIOピンとして利用できません。 * IO0, IO2はESP32のブートモード切り替えに使われています。シールドと接続すると起動できなくなるといった干渉がある場合、背面のジャンパを切り離すことで起動モードの不用意な変更を防ぐことができます。 * また、ESP32のA10以降は現在、[https://github.com/espressif/arduino-esp32/issues/102 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 の変更用ジャンパは基板表に設置されています。 [[Image(http://trac.switch-science.com/raw-attachment/wiki/espr_one32/IMG_5185_sj.png)]] * 画像上部からA0, A1, A2用となっています。デフォルトでは全部左側が導通するようになっています。 * ジャンパの右側を切断し、左側をハンダを盛るなどして導通させると機能が切り替わります。 ||左のパッド||Arduinoのピン||右側のパッド|| || || || || ||IO25(A18)||A0||IO36(A0)|| ||IO26(A19)||A1||IO39(A3)|| ||IO27(A17)||A2||IO34(A6)|| * A3の変更用ジャンパは基板表に設置されています。 [[Image(http://trac.switch-science.com/raw-attachment/wiki/espr_one32/IMG_5186_sj.png)]] * デフォルトでは右側が導通するようになっています。 ||左のパッド||Arduinoのピン||右側のパッド|| || || || || ||IO35(A7)||A0||IO4(A10)|| * 例えば、ESP32のタッチ入力 `T0` が使いたい、となった場合は以下のように考えます。 1. `T0` が使えるのは ESP32 の IO4 だけである。 2. IO4 が割り当てられているのは、上の表より、ArduinoのA3である 3. よって、スケッチには`T0`と記述し、基板上のA3をタッチするとタッチ検出ができる ==== なんでこういう配置なのか? ==== * D0,D1 * ESP32のSerialの推奨ピンです。 * D2~D5 * ESP32のSPI1(HSPI)の推奨ピンが、D10~D13と同じように並んでいます。 * D6,D7 * 起動モード選択用なので、ジャンパで外部と切り離せるようになっています。タッチ入力は起動後も利用できるので、全く引き出さないのはもったいないという判断です。 * D8,D9 * Serial1の出力を並べました。ATコマンド利用時は、ここを使うことになります。 * D10~D13 * ESP32のSPI(VSPI)の推奨ピンです。 * A0,A1 * Arduino M0 pro/zero のDACピンがA0になっているので、ESP32のDACピンもこの付近に設置しました。 * A2,A3 * 前述のようにESP32のA10~はADC2系統とIC内部では分類され、WiFiと共存できません。しかし、ADC1系統のピンは信号の出力ができません。将来的にADC2とWiFiが共存できるようになることを期待しています。 * A4,A5 * 割り当てられるピンが不足したため、アナログ入力機能は省きI^2^Cおよびデジタル入出力専用としました。 * 切り替え先のIO34,35,336,39 * 内部ではADC1系統と分類されているADCです。ADC2から切り替えて使います。信号出力ができないため、低優先度としました。