以前做项目剩有几十个14500锂电池,不知是否全好的,干脆就做个测试电池容量的来测一下
原理图:
/************************************************************
*简易测电池容量
*电阻是已知的 电压通过A0口测得 之后就可以通过欧姆定律算得电流
*电流乘以时间得到容量 (这个用一秒一次采样 之后将这一秒当成恒流放电
*算出每秒放电量再不断叠加)
*
*电阻5欧 5瓦 可根据容量改( Rdown)
**************************************************************/
float Udown=0, Rdown=5,Vcc=5,capacity,Idown,time=0;
void setup()
{
Serial.begin(9600); //定义串口波特率为9600
}
void loop() {
time=time+1;
Udown = analogRead(A0); //读取A0口值
Udown=Udown/1023*Vcc; //换算为电压值
Idown=Udown/Rdown; //换算为电流值
capacity=capacity+Idown; //换算为电池容量值
Serial.print("U:");
Serial.print(Udown,3); //电压值保留小数点3位
Serial.print("V");
Serial.print(" I:");
Serial.print(Idown,3); //电流值保留小数点3位
Serial.print("A");
Serial.print(" capacity:");
Serial.print(capacity,3); //电池容量值保留小数点3位
Serial.print("mAh");
Serial.print(" time:");
Serial.print(time); //测试时间
Serial.println("s");
delay(1000); // 一秒刷新一次 这个与容量测试挂钩 最好别改
}
*串口工具需要一直开着,否则会清零
*电池中途可以卸下 再接上 不影响测量 另外这个只是粗略测量
*只能测5v以下
*另外改改程序(A0-A7)就能实现多个电池一起测
|