该代码基于ESP32(Arduino库)实现ADC(模拟数字转换器)数据采集。它配置ADC参数、获取校准特性,循环采样并计算平均值,将ADC读数转换为电压,考虑分压电阻影响,计算实际电压值,最后通过串口定期输出测量结果。
1. 需要准备的软硬件:
1.1 硬件:
-
ESP32开发板,其中VP引脚(即36脚,ADC1_CHANNEL_0)接到下一步的V_TEST,你也可以连到任一ADC1或ADC2的引脚
-
分压电路,如下图,注意图中的+5V并不是实际值,而是我们要测量并计算的电压
1.2 软件
- Arduino IDE或者在VS Code里的PlatformIO
2. 在Arduino IDE或者PlatformIO里选择ESP32开发板
3. 代码:
#include <Arduino.h>
#include <esp_adc_cal.h>
#include <driver/adc.h>
#define DEFAULT_VREF 1100 // 默认1.1V的参考电压
#define NO_OF_SAMPLES 64 // ADC采样次数
#define ADC_WIDTH ADC_WIDTH_12Bit // ADC 12位宽度
#define