ESP32_ADC(Arduino)

ADC模数转换

ESP32集成了12位的逐次逼近式ADC,分别为ADC1模块ADC2模块,共支持18个模拟输入通道:

  • ADC1模块:8个通道,32~39
  • ADC2模块:10个通道,0,2,4,12 ~ 15,25 ~ 15;部分引脚和WIFI模块共用

ESP32ADC参考电压为内部提供的 V R E F V_{REF} VREF,不同芯片, V R E F V_{REF} VREF不同,中位数是1.1V
默认情况下,ADC的模拟信号输入范围是: 0~1.1V。如果要测量高于1.1V的电压,
则要对输入电压进行衰减ESP32提供了4种衰减倍数(以ESP32-S2为例) :

  • 0dB:不衰减, 可测量输入电压范围: 0~750mv,参考电压: 1.1V
  • 2.5dB:可测量输入电压范围: 0~1050mv, 参考电压: 1 .35V
  • 6dB:可测量输入电压范围: 0~1300mv, 参考电压: 2.2V
  • 11dB:可测量输入电压范围: 0~2600mv, 参考电压: 3.3V

在Arduino中,只需要调用analogRead()方法,即可完成ESP32的转换和读取
请添加图片描述

API

ADC的转换和读取函数

uint16_t analogRead(uint8_t pin);

analogRead() 是一个用于读取pin引脚模拟输入值的函数。默认情况下ADC分辨率12位它返回一个介于 0(完全关闭)4095(完全打开) 之间的整数,衰减倍数为11dB,模拟输入的范围0-3.3v,参考电压可取3.3v

  • **pin:**指定引脚编号
// 读取模拟输入值
int sensorValue = analogRead(analogPin);
// 将读取到的值转换为电压值
float voltage = sensorValue * (3.3 / 4095);

实训案例

光照电压采样和换算

#include <Arduino.h> #define ain 35 // 定义模拟输入引脚为35uint16_t adc_value = 0; // 定义一个16位无符号整数变量用于存储ADC采样值
float adc_voltage = 0.0; // 定义一个浮点数变量用于存储ADC电压值void read_adc() // 定义一个函数用于读取ADC采样值和电压值
{adc_value = analogRead(ain); // 从模拟输入引脚读取采样值并存储到adc_value变量中adc_voltage = adc_value * (3.3 / 4095); // 根据采样值计算电压值并存储到adc_voltage变量中Serial.printf("采样值:%d 电压值:%.2f", adc_value, adc_voltage); // 通过串口打印采样值和电压值Serial.println(); // 换行delay(500); // 延时500毫秒
}void setup()
{Serial.begin(115200); // 设置串口波特率为115200
}void loop() 
{read_adc(); // 调用read_adc函数读取ADC采样值和电压值
}

效果如下:
请添加图片描述
在这里插入图片描述

光照电压动态控制灯光亮度

#include <Arduino.h>#define d2 2 // 定义引脚d2为数字输出引脚
#define ain 35 // 定义模拟输入引脚ain为35uint16_t adc_value = 0; // 定义一个16位无符号整数变量adc_value,用于存储ADC采样值void Init_PWM() // 初始化PWM函数
{ledcSetup(1, 128, 12); // 设置PWM通道1的频率为128Hz,占空比为12%ledcAttachPin(d2, 1); // 将PWM通道1与引脚d2连接
}void adc_set_pwm() // 设置PWM值的函数
{adc_value = analogRead(ain); // 读取模拟输入引脚ain的采样值,并存储到adc_value变量中ledcWrite(1, adc_value); // 将PWM通道1的占空比设置为adc_valueSerial.println(adc_value); // 通过串口打印adc_value的值delay(100); // 延时100毫秒
}void setup() 
{Init_PWM(); // 调用初始化PWM函数Serial.begin(115200); // 设置串口波特率为115200
}void loop() 
{adc_set_pwm(); // 调用设置PWM值的函数
}

效果如下:
请添加图片描述
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/610070.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

调试器加载错误,从任务栏打开可能会导致该问题 2024/1/8

&#x1f9e7;喜欢将常用软件固定在任务栏的用户肯定很苦恼这个问题 &#x1f9e7;问题复现 &#x1f9e7;这里先查找一下原因 &#x1f9e7;查看一下固定在任务栏的微信小程序开发工具的属性 如果不会打开任务栏图标属性界面的小伙伴请先翻到文章最后 &#x1f9e7;再使用同样…

HJ2 计算某字符出现次数

题目描述&#xff1a; 写出一个程序&#xff0c;接受一个由字母、数字和空格组成的字符串&#xff0c;和一个字符&#xff0c;然后输出输入字符串中该字符的出现次数。&#xff08;不区分大小写字母&#xff09; 数据范围&#xff1a; 1≤n≤1000 输入描述&#xff1a; 第一…

第十六章 正则的介绍和使用

文章目录 一、正则的概念和意义二、正则的创建三、正则的写四、正则的使用五、读正则六、练习 一、正则的概念和意义 正则&#xff1a;正确的规则&#xff0c;用来约束字符串的规则&#xff0c;正则的数据类型是对象&#xff0c;正则对象&#xff0c;正则表达式正则的意义&…

破解国企绩效管理中存在的三大难题

绩效管理是实现国企三项制度改革的重要保障&#xff0c;是实现员工个人绩效与企业整体效益不断提高的重要推手。国企现代化建设与高质量发展需要充分利用绩效管理的“指挥棒”作用&#xff0c;实现目标引领、问题导向、敏捷响应外部变化&#xff0c;从而激活组织&#xff0c;推…

CRM功能定制,哪些功能是需要格外注意的?

​到了2023年&#xff0c;在如今的商业环境中&#xff0c;千篇一律的方法很少能带来成功。这对于CRM管理系统尤其如此。虽然标准化的CRM解决方案为企业提供了一个简单的“入坑”门槛&#xff0c;但它们往往缺乏为企业带来真正竞争优势所需的灵活性&敏捷性。企业想要拥有适合…

【Python程序开发系列】一文总结API的基本概念、功能分类、认证方式、使用方法和开发流程

这是Python程序开发系列原创文章&#xff0c;我的第195篇原创文章。 一、什么是API&#xff1f; API是软件开发中非常重要的概念&#xff0c;它简化了不同组件之间的交互和集成&#xff0c;提供了对其他软件或服务功能的访问和调用方式。 API是应用程序编程接口&#xff08;Ap…

计算机配件杂谈-鼠标

目录 基础知识鼠标的发展鼠标的左右手鼠标的显示样式鼠标的移动和可见性移动可见性 现在的我们的生活工作都基本上离不开电脑了&#xff0c;不管是你平时玩玩游戏&#xff0c;上班工作等等&#xff1b; 今天将关于鼠标的一些小的技巧分享出来&#xff0c;共勉&#xff01; 基础…

Openharmony 对应Android基本系统信息

最新需要做Openharmony的一些适配&#xff0c;但是看了hdc&#xff0c;相比adb阉割了不少东西&#xff0c;很多都没展示出来&#xff0c;所以就想方设法跟adb的一些方法对照一下&#xff0c;分享一下希望帮到更多的人。 什么是getprop 在Android系统中&#xff0c;getprop是一个…

Git删除远程仓库某次提交记录后的所有提交

1、鼠标右键->git bash here&#xff0c;然后cd切换到代码目录&#xff1b; 2、git log查看提交记录&#xff0c;获取commit id 3、git reset commit id&#xff08;commit id指要保留的最新的提交记录id&#xff09; 4、git push --force&#xff0c;强制push 如果出现…

上海亚商投顾:三大指数小幅反弹,旅游、机器人板块集体走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数昨日震荡反弹&#xff0c;创业板指一度涨超1.7%&#xff0c;午后集体回落翻绿&#xff0c;临近尾盘又…

软考高级系统架构设计师考试经验分享

文章目录 1. 软考介绍&#xff08;1&#xff09;什么是软考&#xff08;2&#xff09;软考的作用&#xff08;3&#xff09;软考各科目的难度&#xff08;4&#xff09;考试时间&#xff08;5&#xff09;考试形式 2.系统架构设计师备考经验&#xff08;1&#xff09;辅导资料&…

关于MySQL源码的学习 这里是一些建议

学习MySQL源码需要一定的编程基础&#xff0c;特别是C语言和数据结构。以下是一些建议&#xff0c;帮助你更好地入手学习MySQL源码&#xff1a; 基础知识 熟悉C语言编程基本概念、数据结构和算法。了解Linux操作系统基本概念&#xff0c;如进程、线程、内存管理、文件系统等。…

知识点整理[(GraphGeo) DATA AND PROBLEM DEFINITION]

3 DATA AND PROBLEM DEFINITION 3.1 Data Collection 问题一:IP定位数据集构成 回答: 包含数以百万计的IP地址,这些IP地址包括: (1)它们具有自己的知识(如自主系统(AS)和WHOIS数据); (2)网络测量

pve多台物理机虚拟化 pve虚拟机优势

Proxmox VE是一个运行虚拟机和容器的平台。基于Debian Linux&#xff0c;完全开源。为了获得最大的灵活性&#xff0c;实现了两种虚拟化技术——基于内核的虚拟机(KVM)和基于容器的虚拟化(LXC)。一个主要的设计目标是使管理尽可能容易。运行在单个节点上使用Proxmox VE&#xf…

[力扣 Hot100]Day1 两数之和

考完研了秽土转生&#xff0c;开始刷一下LeetCode准备一下复试&#xff0c;我尽量每个工作日一更 题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设…

【低照度图像增强系列(3)】EnlightenGAN算法详解与代码实现

前言 ☀️ 在低照度场景下进行目标检测任务&#xff0c;常存在图像RGB特征信息少、提取特征困难、目标识别和定位精度低等问题&#xff0c;给检测带来一定的难度。 &#x1f33b;使用图像增强模块对原始图像进行画质提升&#xff0c;恢复各类图像信息&#xff0c;再使用目标检…

MySQL explan参数详细解读

MySQL的EXPLAIN语句用于分析SQL查询的执行计划&#xff0c;它返回的结果有助于理解MySQL如何处理和优化查询。以下是EXPLAIN结果中各列参数的详细解读&#xff1a; id&#xff1a; 标识SQL查询中的每个部分&#xff08;例如子查询、联合查询等&#xff09;的顺序。值越大表示该…

搜维尔科技:第九届元宇宙数字人设计大赛作品规范解读!

作品提交 参赛小组需要将作品上传至百度网盘&#xff0c;并将分享链接发送至frankaxis3d.cn邮箱。邮寄格式如下&#xff1a; 邮件标题&#xff1a;作品名称元宇宙数字人设计大赛作品 邮件内容标明&#xff1a;学校名称、院系名称、作品名称、作者名称、联系电话及指导老师名…

机器学习系列--R语言随机森林进行生存分析(2)

随机森林&#xff08;Breiman 2001a&#xff09;&#xff08;RF&#xff09;是一种非参数统计方法&#xff0c;需要没有关于响应的协变关系的分布假设。RF是一种强大的、非线性的技术&#xff0c;通过拟合一组树来稳定预测精度模型估计。随机生存森林&#xff08;RSF&#xff0…

Linux du和df命令

目录 一. df二. du 一. df ⏹用于显示系统级别&#xff0c;磁盘分区上的可用和已用空间的信息 -h&#xff1a;以人类可读的格式显示文件系统大小 ⏹每秒钟监视当前磁盘的使用情况 watch 用于周期性的执行特定的命令-n 1 表示每一秒刷新一次命令执行的结果df -h ./ 表示周期性…