【ESP32】读取模拟信号值,以光敏传感器为例

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

使用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 获取值,您可以考虑改

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值