ESP32-S3 控制 ADC
ESP32-S3 ADC 实验:电位器电压采样
ESP32-S3 具备多个 ADC 模拟输入通道,可用于采集电压信号。
常见的应用包括电位器电压检测、光敏电阻测量、温度传感器读取等。
本实验利用电位器调节电压,并通过 ADC 采集电压值,在串口监视器上实时显示。
一、实验目的
- 学习 ESP32-S3 ADC 模拟输入的使用方法
- 掌握 ADC 分辨率设置与电压换算
- 实现 电位器电压检测并串口输出
二、实验器材
- ESP32-S3 开发板
- 电位器模块
- 杜邦线若干
三、接线说明
| 电位器模块 | ESP32-S3 IO |
|---|---|
| ADC 输出 | IO7 |
| VCC | 3.3V |
| GND | GND |
四、实验现象
程序下载成功后,打开 串口监视器(115200 波特率),可以看到 实时输出的 ADC 电压值。
旋转电位器旋钮时,电压值在 0V ~ 3.3V 之间变化。
五、完整源代码
/*
* 实验名称:ADC实验
*
* 接线说明:ADC电位器-->ESP32 IO
* ADC-->(7)
*
* 实验现象:程序下载成功后,会在软件串口控制台上输出ADC检测电压值,调节电位器可改变检测电压
*
* 注意事项:
*
*/
#include "public.h"
//定义管脚
#define adc_pin 7
//定义全局变量
float adc_vol=0;
void setup() {
//串口0配置
Serial.begin(115200);
//设置分辨率 12 bits (0-4096)
analogReadResolution(12);
}
void loop() {
adc_vol = 3.3 * (float)analogRead(adc_pin) / 4095; //读取ADC值并换算电压
Serial.print("ADC检测电压:");
Serial.print(adc_vol);
Serial.println("V");
delay(500);
}
六、程序解析
-
分辨率设置
analogReadResolution(12);设置 ADC 的分辨率为 12 位(0-4095)。
- 0 → 0V
- 4095 → 3.3V
-
电压换算
adc_vol = 3.3 * (float)analogRead(adc_pin) / 4095;读取 ADC 原始值,并换算为实际电压值。
-
串口输出
Serial.print("ADC检测电压:"); Serial.print(adc_vol); Serial.println("V");实时在串口监视器中显示检测电压。
七、实验总结
通过本实验,我们学习了 ESP32-S3 ADC 的基本使用方法,并实现了电位器电压检测功能。
在实际应用中,可以将 ADC 应用于:
- 传感器数据采集(光照、温度、湿度等模拟信号)
- 电池电压监测
- 模拟输入量测量
为后续的物联网项目和智能硬件应用打下了基础。

浙公网安备 33010602011771号