【问题标题】:Accuaracy problem with internal ADC in esp32esp32 内部 ADC 的精度问题
【发布时间】:2019-11-14 18:12:11
【问题描述】:

我现在测量电池的电路是 esp32、nrf24l01 和 18650。我用 18650 3.6V 标称/4.2 最大电池为 esp32 供电。运行分压器 100k、27k,然后测量点为 0.893V。在 3.6V 测量点,例如 ~0.72。

我使用内部 1.1V ADC,但为什么我只能在显示器上收到 ~3V

float battery_read()
{
    //read battery voltage per %
    long sum = 0;                  // sum of samples taken
    float voltage = 0.0;           // calculated voltage
    float output = 0.0;            //output value
    const float battery_max = 4.2; //maximum voltage of battery
    const float battery_min = 3.0; //minimum voltage of battery before shutdown

    float R1 = 100000.0; // resistance of R1 (100K)
    float R2 = 27000.0;  // resistance of R2 (10K)

    for (int i = 0; i < 100; i++)
    {
        sum += adc1_get_voltage(ADC1_CHANNEL_0);
        delayMicroseconds(1000);
    }
    // calculate the voltage*/

    voltage = sum / (float)100;
    Serial.println(voltage);
    voltage = (voltage *1.1) / 2047.0; //for internal 1.1v reference
    // use if added divider circuit
    voltage = voltage / (R2/(R1+R2));

【问题讨论】:

  • 当您实际在 ADC 输入端使用精密万用表时,您看到的电压是多少?
  • 我使用 VOM,然后我的 VBat 为 3.62,ADC 输入为 0.7xx。从代码中我只监控 VIN = VOUT/因子。大约是 3.0V

标签: c arduino esp32 adc


【解决方案1】:

我假设您使用的是 ESP32-WROOM-32 模块。

如果您希望从通道 ADC1_CHANNEL_0 而不是 EN 引脚读取,您的寄存器分频器应连接到 SENSOR_VP (VP) 引脚。

ADC1_CHANNEL_0 映射到 SENSOR_VP (VP) 引脚。

您的 EN 引脚应通过 RC 网络连接到 +3.3VDC(R-> 10k 和 C-> 0.1uF)。我怀疑您的模块是否在启动,因为它处于高电平有效状态,并且每次复位后需要 150uS 延迟才能变为高电平。

确保在第一次调用 adc1_get_voltage() 之前执行 adc1_config_width()adc1_config_channel_atten()

【讨论】:

  • 我的错,我实际上连接到 GPIO36。我也运行adc1_config_width(ADC_WIDTH_BIT_11);adc1_config_channel_atten(ADC1_CHANNEL_0,ADC_ATTEN_DB_0);。您对 VOM 和 adc 测量之间的区别有任何想法
  • adc1_get_voltage()返回的值是多少?它是否接近 1302。
  • 没有。大约是 1215。here is my circuit。我实际上已连接到 gpio36。
  • 您的电池电压是否接近 3.07 伏。
  • 不,我的电池是 3.3v 或 3.6v。本主题修复了该问题 [ESP32-WROOM 电池测量](github.com/espressif/arduino-esp32/issues/2158)。还有一个校准示例代码
猜你喜欢
  • 1970-01-01
  • 2020-04-28
  • 2021-12-20
  • 2019-10-04
  • 2013-03-26
  • 2022-08-13
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多