【ESP32】Arduino开发 | ADC模数转换器 + 单次转换例程

server/2024/12/15 6:14:58/

关于ESP32的ADC外设的详细介绍放在了ESP-IDF开发的对应文章中,通过跳转链接可以找到。

1. API

1.1 读取ADC(原始值)

uint16_t analogRead(uint8_t pin)
  • pin:ADC管脚。

1.2 读取ADC(电压值)

uint32_t analogReadMilliVolts(uint8_t pin)
  •  pin:ADC管脚。

        返回转换后的电压毫伏值。

1.3 设置转换分辨率

void analogReadResolution(uint8_t bits)
  • bits:分辨率位数(1-16) 。

1.4 设置衰减

void analogSetAttenuation(adc_attenuation_t attenuation)
  • attenuation:衰减。
衰减值数据范围
ADC_0db100mV - 950mV
ADC_2_5db100mV - 1250mV
ADC_6db150mV - 1750mV
ADC_11db150mV - 3100mV

2. 例程

2.1 单次采集

        每1秒采集一次ADC原始值和电压值。

#include <Arduino.h>TickType_t adcTick = 0;
TickType_t dacTick = 0;
uint8_t dacVal = 0;void setup()
{Serial.begin(115200);/* 初始化ADC */analogSetAttenuation(ADC_11db);analogReadResolution(12);
}void loop()
{TickType_t tick = xTaskGetTickCount();/* 采集ADC */if (tick - adcTick >= 1000 / portTICK_PERIOD_MS) {Serial.printf("[ADC] raw: %d, volt: %d mV\r\n", analogRead(36), analogReadMilliVolts(36));adcTick = tick;}/* 改变DAC输出电压 */if (tick - dacTick >= 2000 / portTICK_PERIOD_MS) {dacWrite(25, dacVal);dacVal += 10;dacTick = tick;}
}

        setup函数里面设置ADC分辨率为12位,衰减为11db,这两个是默认值不配也行。


http://www.ppmy.cn/server/150278.html

相关文章

日拱一卒(17)——leetcode学习记录:定长字符串中元音字符的数量

一、题目 给你字符串 s 和整数 k 。 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为&#xff08;a, e, i, o, u&#xff09;。 示例 1&#xff1a; 输入&#xff1a;s "abciiidef", k 3 输出&#xff1a;3 解释&…

概率、似然、最小二乘

参考文章 通过例子理解最大似然估计 最大似然估计和最小二乘估计的区别与联系 SLAM的发展以及分类 移动机器人运动模型 深入理解最大似然估计与最大后验估计&#xff1a;概率中的两大估计法 从贝叶斯公式到卡尔曼滤波 Kalman滤波通俗理解实际应用 简单总结 概率&#xff1a;…

Visual Studio Community安装WebForm创建和数据连接

目录 一、安装Visual Studio Community 1.下载Visual Studio Community 2.双击安装 3.配置 二、项目创建 1.创建新项目 2.配置新项目 3.创建web窗体 4.代码分部 5.文件打开问题 三、数据库访问 1.自己先装一个sql server 2.创建实体数据模型 3.创建连接 4.修改更…

react-dnd 拖拽事件与输入框的文本选中冲突

问题描述 当我们使用拖拽库的时候&#xff0c;往往会遇到拖拽的一个元素他的子孙元素有输入框类型的dom节点&#xff0c;当拖拽的事件绑定在该元素身上时候&#xff0c;发现子孙的输入框不能进行文本选中了&#xff0c;会按住鼠标去选中文本的时候会触发拖拽 实际的效果&…

python制造一个报错

在Python中&#xff0c;制造一个报错&#xff08;异常&#xff09;可以通过多种方式实现。最常见的方法之一是直接引发一个异常。以下是一些例子&#xff0c;展示了如何制造不同类型的报错&#xff1a; 引发ValueError异常&#xff1a; try:# 制造一个 ValueError 异常raise Va…

PTL系统助力新能源汽车生产线的物料精准管理

在新能源汽车生产线蓬勃发展的当下&#xff0c;多车型混合生产模式已成为行业常态。传统的物料管理方式在面对多种型号新能源汽车生产时&#xff0c;由于缺乏精准的指引和高效的防错机制&#xff0c;常常出现物料错拿导致产品不良&#xff0c;以及因核对物料耗费大量时间而造成…

Linux shell的七大功能---输入输出重定向 << >> < >

1、输出定向符 >&#xff08;覆盖&#xff09; 命令>文件 以覆盖的形式&#xff0c;将命令正确的输出结果写入进文件 例&#xff1a;“who命令”将当前的Linux服务器系统使用者等信息显示出来 &#xff08;使用“ Ctrl Alt F mun ”切换到命令行界面&#xff0…

(3)spring security - 认识PasswordEncoder

目录 1.简介1.1.简单了解认证流程 2.密码验证3.PasswordEncoder的内置实现4.小结 目标&#xff1a; 简单了解认证的流程简单认识spring security中的Password Encoder 1.简介 还是以这幅图为基础&#xff0c;认识Password Encoder到底是什么&#xff1f; 1.1.简单了解认证流程…