ESP32引腳筆記
ESP32建議使用的引腳
可參考下圖Euno開發板引腳
模擬輸入可採用: 32、33、34、35、36、39
數字輸出可採用: 上圖右側引腳
SPI : mosi-23, miso-19, clk-18, cs-5
IIC: scl-22, sda-21
僅輸入引腳
GPIO34~39是GPIs–僅輸入的管腳。這些引腳沒有內部上拉或下拉電阻。它們不能用作輸出,因此只能將這些管腳用作輸入:GPIO 34、GPIO 35、GPIO 36、GPIO 39
SPI快閃記憶體
GPIO 6~GPIO 11在一些ESP32開發板中是公開的。但是,這些引腳連線到ESP-32晶片上的整合SPI快閃記憶體,不建議用於其他用途。所以,不要在專案中使用這些管腳:
GPIO 6(SCK/CLK)、GPIO 7(SDO/SD0)、
GPIO 8(SDI/SD1)、GPIO 9(SHD/SD2)、
GPIO 10(SWP/SD3)、GPIO 11(CSC/CMD)
電容式觸控GPIO
ESP32有10個內部電容式觸控感測器。它們能感應到任何帶電物質的變化,比如人類皮膚。因此,他們可以檢測到當用手指觸控gpio時引起的變化。這些引腳可以很容易地整合到電容墊,並取代機械按鈕。電容式觸針也可以用來喚醒ESP32的深度睡眠。
這些內部觸控感測器連線到這些GPIO:
T0 (GPIO 4)、T1 (GPIO 0)、T2 (GPIO 2)、T3 (GPIO 15)
T4 (GPIO 13)、T5 (GPIO 12)、T6 (GPIO 14)、T7 (GPIO 27)
T8 (GPIO 33)、T9 (GPIO 32)
模數轉換器(ADC)
ESP32有18 x 12位ADC輸入通道(而ESP8266只有1 x 10位ADC)。這些是可用作ADC和相應通道的GPIO:
ADC1_CH0 (GPIO 36)、ADC1_CH1 (GPIO 37)、ADC1_CH2 (GPIO 38)、ADC1_CH3 (GPIO 39)、ADC1_CH4 (GPIO 32)
ADC1_CH5 (GPIO 33)、ADC1_CH6 (GPIO 34)、ADC1_CH7 (GPIO 35)
ADC2_CH0 (GPIO 4)、ADC2_CH1 (GPIO 0)、ADC2_CH2 (GPIO 2)、ADC2_CH3 (GPIO 15)、ADC2_CH4 (GPIO 13)
ADC2_CH5 (GPIO 12)、ADC2_CH6 (GPIO 14)、ADC2_CH7 (GPIO 27)、ADC2_CH8 (GPIO 25)、ADC2_CH9 (GPIO 26)
注意:使用Wi-Fi時不能使用ADC2管腳。因此,如果您使用Wi-Fi,並且無法從ADC2 GPIO獲取值,則可以考慮改用ADC1 GPIO,這應該可以解決您的問題。
數模轉換器(DAC)
ESP32上有2 x 8位DAC通道,用於將數字訊號轉換為模擬電壓訊號輸出。這些是DAC通道:
DAC1 (GPIO25)、DAC2 (GPIO26)
RTC GPIOs
ESP32支援RTC GPIO。當ESP32處於深度睡眠狀態時,可以使用路由到RTC低功耗子系統的GPIO。這些RTC gpio可用於在超低功耗(ULP)協處理器執行時將ESP32從深度睡眠中喚醒。以下GPIO可以用作外部喚醒源。
RTC_GPIO0 (GPIO36)、RTC_GPIO3 (GPIO39)、RTC_GPIO4 (GPIO34)、RTC_GPIO5 (GPIO35)
RTC_GPIO6 (GPIO25)、RTC_GPIO7 (GPIO26)、RTC_GPIO8 (GPIO33)、RTC_GPIO9 (GPIO32)
RTC_GPIO10 (GPIO4)、RTC_GPIO11 (GPIO0)、RTC_GPIO12 (GPIO2)、RTC_GPIO13 (GPIO15)
RTC_GPIO14 (GPIO13)、RTC_GPIO15 (GPIO12)、RTC_GPIO16 (GPIO14)、RTC_GPIO17 (GPIO27)
脈衝寬度調製
ESP32 LED PWM控制器有16個獨立通道,可以配置為生成具有不同特性的PWM訊號。所有可以作為輸出的管腳都可以用作PWM管腳(GPIOs 34到39不能產生PWM)。
要設定脈衝寬度調製訊號,需要在程式碼中定義這些引數:訊號頻率、佔空比、脈寬調製通道、輸出訊號的GPIO。
I2C引腳
ESP32有兩個I2C通道,任何管腳都可以設定為SDA或SCL。將ESP32與Arduino IDE一起使用時,預設I2C引腳為:
GPIO 21(SDA)、GPIO 22(SCL)
如果要使用其他管腳,在使庫函式時,只需呼叫:Wire.begin(SDA, SCL);
SPI引腳
預設情況下,SPI的pin對映為:
中斷
Esp32-s的所有GPIO都可以配置為中斷