我正在使用Arduino Nano和9.9V,6.6V和3.7V的各种Li-Fe,Li-Po电池。我可以使用Arduino读取电池的电压。我的Arduino的工作电压为5V,因此对于9.9V和6.6VI之类的电池使用了一个分压器,该分压器使用了两个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);
}
为了准确确定已充电电池的百分比,您需要每个电池的放电图。锂电池的放电曲线通常是非线性的。放电曲线基本上是电压与充电百分比的关系曲线,对于电池充电和放电曲线是不同的。
如果具有放电曲线,则可以为每个%到对应的电压值创建一个映射。然后,您可以将每个电压映射到您创建的映射中的%值。
例如:
100%-> 5.00 V99%-> 4.95伏....0%-> 3.23 V
[创建一个数组来存储地图操作系统大小100(每%):[5.00、4.95,... 3.23]
然后您可以使用电压找到%s。我希望您可以找到放电曲线图,否则,您可以自己使用安全电流对电池放电来手动找到它。