【问题标题】:How to measure Lipo or lifepo4 battery with esp32如何用 esp32 测量 Lipo 或 lifepo4 电池
【发布时间】:2019-11-14 06:02:33
【问题描述】:

我的电池目前是 lifepo4 3.32v。然后我设置

adc1_config_width(ADC_WIDTH_11Bit);

adc1_config_channel_atten(ADC1_CHANNEL_0, ADC_ATTEN_DB_11); //设置参考电压 因此,如果我应用 3.9v,那么我将在监视器中设置 2047。 measyre adc值的代码

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

但是当我将 lifepo4 (3.2v) 应用到 GPIO36 时,我总是看到 2047?问题出在哪里?

【问题讨论】:

  • ESP 是否直接由该电池供电?
  • 我使用 USB 数据线供电并使用 GPIO36 测量电池。但后来它会直接由电池供电。例如 lifepo4 最大电压为 3.6,那么 11db 的最大刻度为 3.6?我也在其他论坛上问过,他们建议我总是使用分压器。 link

标签: arduino esp32 adc


【解决方案1】:

来自https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/adc.html

在 11dB 衰减时,最大电压受 VDD_A 限制,而不是 满量程电压。

检查 VDD_A。

【讨论】:

  • 是 VDD_A 是加在 esp32 板上的电压,因为我是通过 USB 线或 Vin 供电的,所以它总是 3.3v ?
  • @QuangMinhLê 没有 VDD_A 是芯片引脚之一。但是,如果您的电路板由 3.3V 稳压器供电,则该引脚很可能连接到那些 3.3V。因此你不能测量超过 3.3Vs
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多