模數轉換器(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。
ADC輸入通道具有12位分辨率,所以可以獲得0到4095之間的模擬讀數,其中0對應於0V,4095對應於3.3V,還可以在代碼上設置通道的分辨率以及ADC範圍。
ESP32 ADC引腳沒有線性行爲,可能無法區分0和0.1V,或3.2和3.3V。在使用ADC引腳時,您需要記住這一點。您將得到類似於下圖所示的行爲。