【史上最全面arduino esp32教程】ADC的使用

举报
人才程序员 发表于 2024/03/31 16:46:49 2024/03/31
【摘要】 @TOC 前言Arduino ESP32 是一款功能强大的开发板,拥有丰富的硬件资源和灵活的编程能力。其中的 ADC(模数转换器)功能对于读取模拟信号并将其转换为数字值非常重要。本文将为您介绍在 Arduino ESP32 上使用 ADC 的方法和技巧。 一、ADC的介绍 1.1 ADC是什么ADC,即模数转换器,全称为Analog-to-Digital Converter。它就像是一位翻译...

@TOC


前言

Arduino ESP32 是一款功能强大的开发板,拥有丰富的硬件资源和灵活的编程能力。其中的 ADC(模数转换器)功能对于读取模拟信号并将其转换为数字值非常重要。本文将为您介绍在 Arduino ESP32 上使用 ADC 的方法和技巧。


一、ADC的介绍

1.1 ADC是什么

ADC,即模数转换器,全称为Analog-to-Digital Converter。它就像是一位翻译官,把世界上的模糊模糊的模拟信号,比如声音、光线、温度等,转换成计算机能够理解的数字语言,就像把口语翻译成文字一样。这样,计算机就能够处理这些信号,做各种各样的事情,比如录音、测量、控制等。ADC在我们的生活中无处不在,比如手机的摄像头、温度计、数码相机等设备都需要它来将模拟信号转换成数字信号,让我们能够方便地与数字世界交流。

1.2 ADC 的原理

ADC(模数转换器)的原理可以用一个简单的比喻来解释:

想象你有一个充满数字的尺子和一杯水。这个尺子代表模拟信号,水的高度表示信号的强度。现在,你想要知道杯子里有多少水(模拟信号的强度),但是你只能用尺子来测量。所以,你用尺子测量水的高度,然后把这个高度转换成数字,比如说你把尺子上的刻度数记录下来,就得到了一个数字,这个数字就代表了水的高度。

在ADC中,模拟信号就像是杯子里的水,ADC就像是尺子。ADC会以一定的时间间隔(采样率)去测量模拟信号的值,然后把这个值转换成数字形式,也就是用数字来表示模拟信号的强度。这个过程就是模拟到数字的转换,它基于一些物理原理,比如电压或电流的测量。

具体来说,ADC会把连续的模拟信号分成很小的时间段,每个时间段内测量一次信号的值。然后,它会把每次测量的结果转换成数字形式,比如用二进制来表示。这样,就得到了一串数字,它们代表了模拟信号在不同时间点上的强度,从而实现了模拟到数字的转换。

总的来说,ADC的原理就是把连续的模拟信号转换成离散的数字信号,使得计算机可以处理和分析这些信号,从而实现各种各样的应用。

他与电压对应的计算公式如下:
在这里插入图片描述

二、ADC函数的使用

在arduino中,我们仅仅只需要使用一个函数即可得到一个引脚的值

uint16_t analogRead(uin8_t pin);

参数为你要读取ADC值的引脚编号,返回值为ADC的值,
在esp32中,他的ADC分辨率为12位的,即他可以测量0~4095的一个范围

三、示例代码

// 定义光敏电阻引脚
const int lightSensorPin = 34;

void setup() {
  Serial.begin(9600); // 初始化串口通信
  
  pinMode(lightSensorPin, INPUT); // 设置光敏电阻引脚为输入模式
}

void loop() {
  // 读取光敏电阻的模拟值
  int lightValue = analogRead(lightSensorPin);

  // 将模拟值转换为亮度范围
  int brightness = map(lightValue, 0, 4095, 0, 100);

  // 打印亮度值
  Serial.print("Brightness Level: ");
  Serial.println(brightness);
  
  delay(1000); // 延迟1秒
}

在这里插入图片描述
我们使用 analogRead() 函数读取光敏电阻引脚的模拟值,并将其存储在 lightValue 变量中。
然后,我们使用 map() 函数将模拟值转换为我们想要的亮度范围。在本例中,我们将模拟值从 0-4095 映射到 0-100 的亮度范围,存储在 brightness 变量中。


总结

这篇文章简要介绍了如何在 Arduino ESP32 上使用 ADC 功能。ADC 是一项用于将模拟信号转换为数字值的重要功能,在许多项目中起着关键作用。通过本文,您了解了 ADC 的基本原理,并学会了使用 Arduino ESP32 板上的 ADC 功能进行模拟信号的读取和转换。

在开始使用 ADC 之前,我们首先了解了 ADC 的作用和工作原理。然后,我们介绍了 Arduino ESP32 上的 ADC 引脚和相应的编程接口。您学会了如何初始化 ADC,并编写代码来读取模拟输入信号并将其转换为实际的物理量。

通过深入学习 ADC 功能,您可以在各种项目中应用它。例如,您可以使用 ADC 测量温度、光照强度、电池电量等模拟信号,并根据测量结果采取相应的控制措施。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。