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


前言

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 测量温度、光照强度、电池电量等模拟信号,并根据测量结果采取相应的控制措施。

  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人才程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值