ESP32 ADC引脚没有线性行为

模数转换器(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引脚时,您需要记住这一点。您将得到类似于下图所示的行为。

原文地址:https://www.cnblogs.com/codeit/p/15704515.html