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);
}

六、程序解析

  1. 分辨率设置

    analogReadResolution(12);
    

    设置 ADC 的分辨率为 12 位(0-4095)。

    • 0 → 0V
    • 4095 → 3.3V
  2. 电压换算

    adc_vol = 3.3 * (float)analogRead(adc_pin) / 4095;
    

    读取 ADC 原始值,并换算为实际电压值。

  3. 串口输出

    Serial.print("ADC检测电压:");
    Serial.print(adc_vol);
    Serial.println("V");
    

    实时在串口监视器中显示检测电压。


七、实验总结

通过本实验,我们学习了 ESP32-S3 ADC 的基本使用方法,并实现了电位器电压检测功能。
在实际应用中,可以将 ADC 应用于:

  • 传感器数据采集(光照、温度、湿度等模拟信号)
  • 电池电压监测
  • 模拟输入量测量

为后续的物联网项目和智能硬件应用打下了基础。

posted @ 2025-08-16 14:19  jeikerxiao  阅读(145)  评论(0)    收藏  举报