ESP32 ADC(模拟输入)功能详解
创作时间:
作者:
@小白创作中心
ESP32 ADC(模拟输入)功能详解
引用
CSDN
1.
https://blog.csdn.net/weixin_51358957/article/details/137603964
ESP32的ADC(模拟输入)功能允许开发者测量0V至3.3V之间的电压,具有12位分辨率。本文将详细介绍ESP32的ADC引脚定义、使用方法以及相关代码示例。
引脚定义
ESP32的模拟输入(ADC)功能的引脚可以测量0V至3.3V之间的不同电压,这些引脚具有12位分辨率,所以可以将测量的电压分配给0到4095之间的值,其中0V对应于0,3.3V对应于4095。
ESP32支持18个不同通道的测量,在ESP-WROOM-32中引出15个,图中用红色方框圈出。需要注意的是采集的ADC是非线性的,无法区分0V和0.1V以及3.2V和3.3V的电压:
使用Wi-Fi时不能使用ADC2引脚,无法从ADC2 GPIO获取值。
代码示例
ESP32读取ADC的函数为:
analogRead(pin);
以下是一个读取电位器值的示例代码:
// 电位器连接 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的测量电压约为800mV(1V输入=ADC读数1088)ADC_2_5db:ADC输入电压衰减,将测量范围扩展到约1100mV。(1V输入=ADC读数3722)ADC_6db:ADC输入电压衰减,将测量范围扩展到约1350mV。(1V输入=ADC读数3033)ADC_11db:ADC输入电压衰减,将测量范围扩展到约2600mV。(1V输入=ADC读数1575)analogSetPinAttenuation(pin, attenuation):设置指定引脚输入衰减。默认值ADC_11db。衰减值与上一个函数相同。adcAttachPin(pin):将引脚连接到ADC(同时清除可能打开的任何其他模拟模式),返回TRUE或FALSE结果。
热门推荐
解码企业文化DNA:从价值观到落地的全流程指南
寿命长的人,每天排便在这个次数→
尤加利的养殖方法,每天晒光6小时左右
专家老是喊你补维生素D?因为50%的中国人就是不足
ICL晶体植入安全吗?有没有后遗症?
如何提升电竞酒店的核心竞争力?
筹码分布实战指南:如何识别支撑与压力位
肝火旺的症状及治疗方法
智真长老的四句箴言:鲁智深命运的启示
软件正版化 教育信息化迎来升级新机遇
歼-35A亮相,美媒评估战力
《水浒传》梁山好汉全部108人的社会各阶级分析
基础护肤之外如何进阶?敏感性皮肤如何护理?皮肤科专家支招
《现代思想与古典哲学》:列奥·施特劳斯的早期思想
【科普】喝可乐能化肾结石?真相令人意外……
什么胶水能导电?
心电轴右偏严重吗
摘镜过新年!术后视力多少才算“成功”?
LG显示已决定将广州LCD面板工厂出售给TCL华星
学校新生态:“游戏化教与学”走进校园的五种融合方式
多重人格症状有哪些测试
澳门高校硕士申请攻略:双非学生逆袭机会,免语言中文授课双证研究生!
评估一个人胖瘦程度,“圆度指数”算的更准确
本周末足球赛事前瞻:罗马、阿根廷青年人和塞维利亚主场作战能否全取三分?
Dell服务器U盘启动BIOS设置方法
“百吨王” 入刑丨“知错不改,一意孤行者”或将构成危险作业罪!
跑步心率多少最好最合理
以毒攻毒:一百年前,他想到用动物的血液治疗病人
二手商品卖家是经营者吗?与实物严重不符能要求卖家退一赔三吗?
投入式液位计产品优势及应用