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结果。
热门推荐
靠墙站立:简单却有效的健康运动方式
快节奏生活中如何快速缓解疲劳?
南非:非洲大陆的明珠
病牛饲养管理指南
2型糖尿病预防策略
人类活动导致过去百年来全球降水多变性增强
企业自主招标:流程、优势与风险管理
松花酿酒,春水煎茶。
手机流量单位M、MB、G、GB换算方法
铁血宰相俾斯麦的政策:维护欧洲和平
敏感加密信息模糊查询解决方案
饮用水市场“价格战”下的水质安全考量:消费者应如何明智选择?
日本游戏开发商拥抱PC平台:怪物猎人的成功案例
孩子手机/游戏/网络成瘾,怎样戒除?
藿香正气水可以泡脚吗?藿香正气水泡脚的作用
养殖‖白羽肉鸡产业链2024-2025:盈亏交织下的行业风云
深入高可用系统原理与设计
沪金主连是什么
怎样让打印内容占满一张纸 多种方法教会你
天冷了,穿袜子睡觉到底好不好?
首次访问圣保罗的20件必做之事
服务收费标准明确发布,让消费者明明白白消费
如何利用多维表格实现高效进度管控?
回南天护肤指南!2招解决“外油内干”,广东人必看!
长期摄入导致高血压
如何注册安全邮箱?轻松掌握保护隐私的技巧
我国海工装备市场份额连续7年居世界首位
绵阳戒烟专家支招如何快速有效戒烟
社区戒烟新模式助力全民“大健康”
如何通过SPDF轨道数计算一个原子的电子数?