ESP32_ADC(Arduino)

news2024/11/19 5:43:18

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 // 定义模拟输入引脚为35

uint16_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为35

uint16_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_value
  Serial.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.coloradmin.cn/o/1371402.html

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

相关文章

iTOP-3A5000开发板28路PCIE、4路SATA、2路USB2.0、2路USB3.0、LAN、RS232、VGAHDMI等

性能强 采用全国产龙芯3A5000处理器&#xff0c;基于龙芯自主指令系统 (LoongArch)的LA464微结构&#xff0c;并进一步提升频率&#xff0c;降低功耗&#xff0c;优化性能。 桥片 采用龙芯 7A2000&#xff0c;支持PCIE 3.0、USB 3.0和 SATA 3.0.显示接口2 路、HDMI 和1路 VGA…

创建一个郭德纲相声GPTs

前言 在这篇文章中&#xff0c;我将分享如何利用ChatGPT 4.0辅助论文写作的技巧&#xff0c;并根据网上的资料和最新的研究补充更多好用的咒语技巧。 GPT4的官方售价是每月20美元&#xff0c;很多人并不是天天用GPT&#xff0c;只是偶尔用一下。 如果调用官方的GPT4接口&…

从传统部署到无服务器计算:AI应用在AWS平台上的革新与飞跃

文章目录 《快速构建AI应用–AWS无服务器AI应用实战》内容简介作者简介目录 随着人工智能技术的不断发展&#xff0c;越来越多的企业开始将人工智能应用于各个业务场景&#xff0c;以提高效率、降低成本并创造新的商业模式。然而&#xff0c;传统的人工智能解决方案往往需要大量…

【好玩的开源项目】使用Docker部署briefing视频聊天系统

【好玩的开源项目】使用Docker部署briefing视频聊天系统 一、briefing介绍二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载briefing镜像五、部署briefing速查表5.1 使用dock…

界面组件DevExpress WPF v23.2 - 更轻量级的主题支持

DevExpress WPF Subscription拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExp…

【Python机器学习】用于回归的决策树

用于回归的决策树与用于分类的决策树类似&#xff0c;在DecisionTreeRegressor中实现。DecisionTreeRegressor不能外推&#xff0c;也不能在训练数据范围之外的数据进行预测。 利用计算机内存历史及格的数据进行实验&#xff0c;数据展示&#xff1a; import pandas as pd im…

LeetCode-搜索插入位置(35)

题目描述&#xff1a; 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 思路&#xff1a; 给定数组查找指定元素值的…

免 费 搭 建 多模式商城:b2b2c、o2o、直播带货一网打尽

鸿鹄云商 b2b2c产品概述 【b2b2c平台】&#xff0c;以传统电商行业为基石&#xff0c;鸿鹄云商支持“商家入驻平台自营”多运营模式&#xff0c;积极打造“全新市场&#xff0c;全新 模式”企业级b2b2c电商平台&#xff0c;致力干助力各行/互联网创业腾飞并获取更多的收益。从消…

超级工具大盘点

在当今竞争激烈和快节奏的工作环境中&#xff0c;提高效率成为每个人追求的目标。为了更好地应对日常任务和项目&#xff0c;我们需要运用有效的工具和策略。软件是其中一种强大的支持工具&#xff0c;可以极大地提升工作效率和管理能力。在本文中&#xff0c;我将分享一些值得…

详解c++移动构造函数和移动赋值运算符在代码性能中起的作用

对象移动 对象移动&#xff0c;就是把一个不想用了的对象A中的一些有用的数据提取出来&#xff0c;在构建新对象B的时候就不需要重新构建对象中的所有数据——从不想用了的对象A中提取出来的有用数据在构建对象B时都可以拿来使用。 我们知道&#xff0c;拷贝构造函数、拷贝赋…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷④

2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷4 目录 需要竞赛软件包环境以及备赛资源可私信博主&#xff01;&#xff01;&#xff01; 2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷4 模块一 …

2022 年全国职业院校技能大赛高职组云计算赛项试卷部分解析

2022 年全国职业院校技能大赛高职组云计算赛项试卷部分解析 【赛程名称】高职组-云计算赛项第一场-私有云【任务 1】私有云服务搭建[10 分]【题目 2】Yum 源配置[0.5 分]【题目 3】配置无秘钥 ssh[0.5 分]【题目 4】基础安装[0.5 分]【题目 5】数据库安装与调优[0.5 分]【题目 …

Open CASCADE学习|模块组成

OpenCASCADE由七个模块组成&#xff0c;分别如下&#xff1a; Foundation Classes基础类 Modeling Data 建模数据 Modeling Algorithms 建模算法 Visualization 可视化 Data Exchange 数据交换 Application Framework 程序框架 Kernel Classes 核心类 2D Geometry 二维几…

JDBC初体验(一)

一、JDBC概述 JDBC&#xff08;Java DateBase Connectivity&#xff09;是Java数据库连接技术的简称&#xff0c;提供连接各种常用数据库的能力 1.1 JDBC工作原理 JDBC API 提供者&#xff1a;Sun公司 作用&#xff1a;Java访问数据库的标准规范。提供给程序员调用的接口与类…

基于ssm的图书馆书库管理系统+vue论文

摘 要 当下&#xff0c;如果还依然使用纸质文档来记录并且管理相关信息&#xff0c;可能会出现很多问题&#xff0c;比如原始文件的丢失&#xff0c;因为采用纸质文档&#xff0c;很容易受潮或者怕火&#xff0c;不容易备份&#xff0c;需要花费大量的人员和资金来管理用纸质文…

深度学习分类任务中的准确率、精确率(查准率)、召回率(查全率)、F1值、ROC曲线的AUC值,

0. 混淆矩阵 其中关于 TP, TN; FP, FN 的解释&#xff1b; 其中 首字母 T&#xff0c;F代表预测的情况&#xff0c;即T代表预测的结果是对的&#xff0c; F代表预测的结果是错误的&#xff1b; 第二个字母代表预测是预测为 正样本&#xff0c;还是负样本&#xff0c; Positve…

<软考高项备考>《论文专题 - 57 干系人管理(1) 》

1 论文基础 1.1 写作要点 过程定义、作用写作要点、思路识别干系人识别干系人是定期识别项目干系人&#xff0c;分析和记录他们的利益、参与度、相互依赖性、影响力和对项目成功的潜在影响的过程。作用:使项目团队能够建立对每个干系人或干系人群体的适度关注。本项目里有哪些…

VMware虚拟机安装Ubuntu

准备:Ubuntu的镜像文件,VMware,手. 1.新建虚拟机&#xff0c;选择自定义&#xff0c;下一步。 2.硬件兼容性&#xff0c;选择Workstation 16.x&#xff0c;下一步。 3.选择安装程序光盘映像文件&#xff0c;路径为映像文件所在文件夹&#xff0c;下一步。 4. 创建用户和设置密…

Docker部署情侣恋爱网站

个人名片&#xff1a; 对人间的热爱与歌颂&#xff0c;可抵岁月冗长&#x1f31e; 个人主页&#x1f468;&#x1f3fb;‍&#x1f4bb;&#xff1a;念舒_C.ying 个人博客&#x1f30f; &#xff1a;念舒_C.ying 情侣恋爱网站 1. 修改代码2. 目录结构3. 编写Dockerfile4. 编写d…

苹果电脑Markdown文本编辑Typora mac功能介绍

Typora mac是一款跨平台的Markdown编辑器&#xff0c;支持Windows、MacOS和Linux操作系统。它具有实时预览功能&#xff0c;能够自动将Markdown文本转换为漂亮的排版效果&#xff0c;让用户专注于写作内容而不必关心格式调整。Typora Mac版除了支持常见的Markdown语法外&#x…