Arduino ESP32 ADC(模拟输入)

学习目标:

  • 掌握Arduino 在ESP32上读取模拟输入(ADC)。

学习内容:

使用ESP32读取模拟值,可以测量0 V至3.3 V之间的电压(实际自己体会...)。

测得的电压转为数字量为0到4095,即2的12次方(模块上的ADC是12位的),其中0 V对应于0,3.3 V对应于4095。

但是,ADC是非线性的。


 读取模拟输入的函数:

analogRead(GPIO);

注意下图中ADC的引脚!

 

  • analogReadResolution(分辨率):设置采样位数和分辨率。它可以是介于9(0–511)和12位(0–4095)之间的值。默认值为12位分辨率。
  • analogSetWidth(宽度):设置采样位数和分辨率。它可以是介于9(0–511)和12位(0–4095)之间的值。默认值为12位分辨率。
  • analogSetCycles(周期):设置每个样本的循环次数。默认值为8。范围:1到255。
  • analogSetSamples(样本):设置范围内的样本数量。默认值为1个样本。它具有增加灵敏度的效果。
  • analogSetClockDiv(衰减):设置ADC时钟的分频器。默认值为1。范围:1到255。
  • 模拟衰减(衰减):设置所有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(引脚,衰减):设置指定引脚的输入衰减。默认值为ADC_11db。衰减值与之前的函数相同。
  • adcAttachPin(引脚):将一个引脚连接到ADC(同时清除任何其他可能开启的模拟模式)。返回真或假结果。
  • adcStart(引脚), adcBusy(引脚)和resultadcEnd(引脚):在相连引脚的总线上启动ADC转换。检查引脚ADC总线上的转换当前是否正在运行(返回真或假)。获取转换结果:返回16位整数。


仿真测试:

仿真网址:Wokwi - Online Arduino and ESP32 Simulator

 测试代码:

// Potentiometer is connected to GPIO 34 (Analog ADC1_CH6) 
const int potPin = 34;

// variable for storing the potentiometer value
int potValue = 0;

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

void loop() {
    // Reading potentiometer value
    potValue = analogRead(potPin);
    Serial.println(potValue);
    delay(500);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值