5、ESP32 ADC(模拟输入)

引脚定义:

        ESP32模拟输入(ADC)功能的引脚可以测量 0 V 至 3.3 V 之间的不同电压,这些引脚具有 12 位分辨率,所以可以将测量的电压分配给 0 到 4095 之间的值,其中 0 V 对应于 0,3.3 V 对应于 4095。

        ESP32 支持 18 个不同通道的测量,在ESP-WROOM-32中引出15个,图中用红色方框圈出

  

        需要注意的是采集的ADC是非线性的,无法区分 0V 和 0.1V 以及 3.2V 和 3.3V 的电压:

  

        使用 Wi-Fi 时不能使用 ADC2 引脚,无法从 ADC2 GPIO 获取值。


代码:

        ESP32 读取ADC函数:

analogRead(pin);

        Code:

// 电位器连接 GPIO 34 (ADC1_CH6)
const int potPin = 34;

int potValue = 0;    // 存储电位器读取量

void setup()
{
    Serial.begin(115200);
    delay(1000);
}


void loop()
{
    potValue = analogRead(potPin);    // ADC 读取电位器
    Serial.println(potValue);
    delay(500);
}

ADC引脚其他功能: 

  • analogReadResolution(resolution):设置analogRead返回值的分辨率,默认12位(范围从0到4096)。参数介于9(0–511) 和12(0–4095)之间。
  • analogSetWidth(width):设置analogRead返回值的分辨率,默认12位(范围从0到4096)。参数介于9(0–511) 和12(0–4095)之间。
  • analogSetClockDiv(attenuation):设置ADC时钟分频器,默认值1。参数范围:1到255。
  • analogSetAttenuation(attenuation):设置所有ADC通道输入衰减,默认值ADC_11db。参数值:
    • ADC_0db:无衰减。ADC 的测量电压约为800 mV(1V输入= ADC读数1088)
    • ADC_2_5db:ADC 输入电压衰减,将测量范围扩展到约1100 mV。(1V 输入 = ADC 读数 3722)。
    • ADC_6db:ADC 输入电压衰减,将测量范围扩展到约1350 mV。(1V 输入 = ADC 读数 3033)。
    • ADC_11db:ADC 输入电压衰减,将测量范围扩展到约2600 mV。(1V 输入 = ADC 读数 1575)。
  • analogSetPinAttenuation(pin, attenuation):设置指定引脚输入衰减。默认值ADC_11db。衰减值与上一个函数相同。
  • adcAttachPin(pin):将引脚连接到ADC(同时清除可能打开的任何其他模拟模式),返回 TRUE 或 FALSE 结果。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无敌暴龙战士朵拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值