【问题标题】:To know the % charge of the battery using Arduino使用 Arduino 了解电池的电量百分比
【发布时间】:2019-10-15 05:48:07
【问题描述】:

我正在使用 Arduino Nano 和各种 9.9V、6.6V 和 3.7V 的 Li-Fe、Li-Po 电池。 我可以使用 Arduino 读取电池的电压。我的 Arduino 在 5V 下工作,因此对于 9.9V 和 6.6V 等电池,我使用了一个使用两个 10k 电阻的分压器。但问题是我需要读取充电电池的百分比,我在代码中尝试了一些东西,但我不确定关于它。请任何人帮助我。 我的代码是:

#define cellPin A0

const float mvpc = 4.55 ; //measured voltage of arduino through voltmeter
float counts = 0;  //battery volts in millivolts
float mv = 0;
float multiplier = 2;
float output = 0;
int charge = 0;

void setup() {
  // put your setup code here, to run once:
Serial.begin(115200);
}

void loop() {
  // put your main code here, to run repeatedly:
counts = analogRead(cellPin);
Serial.println(counts);

mv = counts * mvpc;
Serial.println(mv);

output = (mv * multiplier)/1000 ;
Serial.print(output);
Serial.println("V");

charge = (counts/1024)*100;
Serial.print(charge);
Serial.println("%");

delay(1000);

}

【问题讨论】:

    标签: arduino arduino-ide battery batterylevel


    【解决方案1】:

    为了准确确定充电电池的百分比,您需要每个电池的放电图。锂电池的放电图通常是非线性的。放电曲线基本上是电压与充电百分比的关系,并且对于充电和放电电池来说是不同的。

    如果你有放电曲线,你可以为每个百分比创建一个映射到相应的电压值。然后,您可以将每个电压映射到您创建的映射中的 % 值。

    例如:

    100% -> 5.00 伏 99% -> 4.95 V …… 0% -> 3.23 V

    创建一个数组来存储大小为 100 的映射(对于每个 %):[5.00, 4.95, ... 3.23]

    然后您可以使用电压找到 %s。希望你能找到放电图,否则你可以自己手动找到,用安全电流给电池放电

    【讨论】:

    【解决方案2】:

    除了maheenul,我想补充一点,你的计算有点不对劲。

    const float mvpc = 4.55 ; //measured voltage of arduino through voltmeter
    

    我想您是通过 USB 为您的 Arduino 供电的。这个电压不是很可靠。

    float counts = 0;  //battery volts in millivolts
    counts = analogRead(cellPin);
    

    analogRead 返回 10 位 (0-1023) ADC 读数。电压参考的一小部分。它不是以毫伏为单位的值!所以在下面你应该使用 1024 而不是 1000。

    output = (mv * multiplier)/1000 ;
    

    charge = (counts/1024)*100; 这会计算您的 Vref 的百分比。这不是 maheenul 解释的收费。

    如果您想要准确的测量值,您应该使用更好的 Vref。内部 1.1Vref 或一些经过良好调节的 Vref。两者都带有适当的分压器。

    但我想 5-10% 的折扣对于电池充电测量来说没什么大不了的。

    【讨论】:

    • 我观看了视频 [youtube.com/watch?v=lec7kPv3VS8],并对电池电压进行了编码以通过 Arduino 读取。如果您有更好的选择,请与我分享。
    猜你喜欢
    • 1970-01-01
    • 2015-07-26
    • 2023-04-07
    • 1970-01-01
    • 2012-02-15
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多