目的:
ESP32-WROOM32 の GPIO 設定について纏める。GPIO 一覧:
GPIO 一覧を下表に纏める。ピン名称 | No. | GPIO | ADC | その他 主な 用途 | リセット時状態 | 備考 | ||||
入力EN | PU/PD | |||||||||
IO0 | 25 | GPIO0 | TOUCH1 | EN | PU | ブートストラップ | ||||
TXD0 | 35 | GPIO1 | TXD | EN | PU | UART に使用 | ||||
IO2 | 24 | GPIO2 | ADC2 | A12 | HSPIWP | HS2_DATA0 | TOUCH2 | EN | PD | ブートストラップ |
RXD0 | 34 | GPIO3 | RXD | EN | PU | UART に使用 | ||||
IO4 | 26 | GPIO4 | ADC2 | A10 | HSPIHD | HS2_DATA1 | TOUCH0 | EN | PD | |
IO5 | 29 | GPIO5 | SS | EN | PU | ブートストラップ | ||||
SCK/CLK | 20 | GPIO6 | SCK | EN | PU | 使用不可 | ||||
SDO/SD0 | 21 | GPIO7 | SDO | EN | PU | 使用不可 | ||||
SDI/SD1 | 22 | GPIO8 | SDI | EN | PU | 使用不可 | ||||
SHD/SD2 | 17 | GPIO9 | SHD | EN | PU | 使用不可 | ||||
SWP/SD3 | 18 | GPIO10 | SWP | EN | PU | 使用不可 | ||||
SCS/CMD | 19 | GPIO11 | SCS | EN | PU | 使用不可 | ||||
IO12 | 14 | GPIO12 | ADC2 | A15 | HSPIQ | HS2_DATA2 | TOUCH5 | EN | PD | ブートストラップ |
IO13 | 16 | GPIO13 | ADC2 | A14 | HSPID | HS2_DATA3 | TOUCH4 | EN | ||
IO14 | 13 | GPIO14 | ADC2 | A16 | HSPICLK | HS2_SCK | TOUCH6 | EN | ||
IO15 | 23 | GPIO15 | ADC2 | A13 | HSPICS0 | HS2_CMD | TOUCH3 | EN | PU | ブートストラップ |
IO16 | 27 | GPIO16 | EN | |||||||
IO17 | 28 | GPIO17 | EN | |||||||
IO18 | 30 | GPIO18 | VSPICLK | EN | ||||||
IO19 | 31 | GPIO19 | VSPIQ | EN | ||||||
IO21 | 33 | GPIO21 | VSPIHD | SDA | EN | |||||
IO22 | 36 | GPIO22 | VSPIWP | SCL | EN | |||||
IO23 | 37 | GPIO23 | VSPID | EN | ||||||
IO25 | 10 | GPIO25 | ADC2 | A18 | DAC1 | DIS | ||||
IO26 | 11 | GPIO26 | ADC2 | A19 | DAC2 | DIS | ||||
IO27 | 12 | GPIO27 | ADC2 | A17 | TOUCH7 | EN | ||||
IO32 | 8 | GPIO32 | ADC1 | A4 | TOUCH9 | DIS | ||||
IO33 | 9 | GPIO33 | ADC1 | A5 | TOUCH8 | DIS | ||||
IO34 | 6 | GPIO34 | ADC1 | A6 | DIS | 入力のみ, PU/PD 無し | ||||
IO35 | 7 | GPIO35 | ADC1 | A7 | DIS | 入力のみ, PU/PD 無し | ||||
SENSOR_VP | 4 | GPIO36 | ADC1 | A0 | SVP | DIS | 入力のみ, PU/PD 無し | |||
SENSOR_VN | 5 | GPIO39 | ADC1 | A3 | SVN | DIS | 入力のみ, PU/PD 無し |
*No. は ESP32-WROOM32 の ピンNo.
*GPIO6~11 は使用不可 (ESP32-WROOM-32内で SPIフラッシュメモリに使用)
*GPIO 0,2,5,12,15 は 起動モード設定に使用される為、外部での プルアップ、プルダウン時は注意する必要がある。
*GPIO 34~39 は 入力専用で、内部プルアップ/プルダウンは無い。
GPIO設定方法:
ピンモード設定
pinMode( GPIO No. , モード ) ;モード : OUTPUT 出力に設定
INPUT 入力に設定
INPUT_PULLUP 入力 (内臓プルアップ付き) に設定
例 :
GPIO13 を プルアップ付き 入力 に設定
pinMode (13, INPUT_PULLUP) ;
GPIO27 を出力に設定し、'High' を出力
pinMode (27,OUTPUT) ;
digitalWrite (27, HIGH) ;
digitalWrite (27, HIGH) ;
内臓プルアップ/プルダウン 設定
プルアップ設定は pinMode の INPUT_PULLUP 設定でできるが、プルダウンはできない。プルダウン設定は、以下の方法で設定可能。
gpio_set_pull_mode( GPIO_NUM , PULL_MODE) ;
GPIO_NUM : GPIO_NUM_0 ~ GPIO_NUM_39
PULL_MODE : GPIO_PULLUP_ONLY プルアップ
GPIO_PULLDOWN_ONLY プルダウン
GPIO_PULLUP_PULLDOWN プルアップ、プルダウン 両方
GPIO_FLOATING プルアップ/プルダウン 無し
プルアップ/プルダウン の抵抗値は 20KΩ~50KΩ。
例 :
GPIO13 を プルダウン付き 入力 に設定
pinMode (13, INPUT) ;
gpio_set_pull_mode( GPIO_NUM_13, GPIO_PULLDOWN_ONLY) ;
gpio_set_pull_mode( GPIO_NUM_13, GPIO_PULLDOWN_ONLY) ;
参考になりましたGJ
返信削除お役に立てて何よりです。
削除