使用esp32读取模拟值意味着可以测量 0 V 到 3.3 V 之间的变化电压电平。
然后将测得的电压分配给一个介于 0 和 4095 之间的值,其中 0 V 对应于 0,3.3 V 对应于 4095。任何介于 0 V 和 3.3 V 之间的电压将被赋予介于两者之间的相应值。
注意ADC是非线性的,也就是说ESP32无法区分 3.3 V 和 3.2 V。两种电压的值相同:4095。对于非常低的电压值也会发生同样的情况:对于 0 V 和 0.1 V,您将获得相同的值:0。使用 ESP32 ADC 引脚时需要牢记这一点。

读取模拟信号值,使用analogRead()函数
使用 Arduino IDE 通过 ESP32 读取模拟输入就像使用 模拟读取()功能。它接受您要读取的 GPIO 作为参数:
analogRead(GPIO);

ESP32 支持 18 个不同通道的测量。DEVKIT V1 DOIT板(具有 30 个 GPIO 的版本)中只有 15 个可用。
抓住你的 ESP32 板引脚排列并找到 ADC 引脚。这些在下图中用红色边框突出显示。
这些模拟输入引脚具有 12 位分辨率。这意味着当您读取模拟输入时,其范围可能从 0 到 4095 不等。
注意:使用 Wi-Fi 时不能使用 ADC2 引脚。因此,如果您使用 Wi-Fi 并且无法从 ADC2 GPIO 获取值,您可以考虑改

ESP32能读取0V到3.3V的模拟电压,映射到0到4095的数字值。ADC非线性可能导致某些电压值区分不清。通过analogRead(GPIO)函数读取模拟信号,ESP32支持18个通道,但Wi-Fi使用可能限制某些ADC2引脚。可通过analogReadResolution等函数调整采样参数以优化读取。
最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



