电池容量测量
本帖最后由 chensg 于 2015-1-4 11:29 编辑本人不久前做了一个测量电池容量的装置,供大家参考,可以很方便测量各种电池的容量,大家可以试试,看你购买到的电池有没有虚标哦!
{:soso_e113:}
/*
1602LCD接线:
* LCD RS pin to digital pin 11
* LCD Enable pin to digital pin 10
* LCD D4 pin to digital pin 9
* LCD D5 pin to digital pin 8
* LCD D6 pin to digital pin 7
* LCD D7 pin to digital pin 6
测量电阻串接在电路中
测量电阻+:接A0
测量电阻-:接地
*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(11, 10, 9, 8, 7, 6);
float Ucr = 0, Rcs = 2.7, Vce = 1.1, Ics, capacity = 0; //Rcs为测量电阻,阻值可跟据精度、量程调整,此例中最大量程407mA.
unsigned long Nowtime, Lasttime = 0, Cltime = 0, time = 0;
const int analogInPin = A0;
void setup()
{
lcd.begin(16, 2);
analogReference(INTERNAL); //使用内部1.1V参考电压。
pinMode(analogInPin, INPUT);
}
void loop() {
Nowtime = millis();
if (abs(Nowtime - Lasttime) >= 1000)
{
Lasttime = Nowtime;
int Uval = analogRead(analogInPin);//读取A0口值
Ucr = (Uval / 1023.0) * Vce * 1000.0; //换算为电压值,(mV)
Ics = Ucr / Rcs; // (mA)
capacity = capacity + (Ics / 60); //(mAm 毫安分钟)
if (Ics >= 3) //小于3mA作为测试结束。
{
time = time + 1;
}
lcd.setCursor(0, 0);
lcd.print(F("I:"));
lcd.print(Ics, 0);
//lcd.print(F("mA"));
lcd.setCursor(7, 0);
lcd.print(F("C:"));
lcd.print(capacity, 0);
lcd.setCursor(0, 1);
lcd.print(F("U:"));
lcd.print(Ucr, 0);
lcd.setCursor(7, 1);
lcd.print(F("T:"));
lcd.print(time, 0);
lcd.print(F("s"));
}
if ((Nowtime - Cltime) >= 5500)
{
lcd.clear();
Cltime = Nowtime;
}
delay(20);
} 好主意~:lol
不过,精度有多高? 我看不到懂是几V几A 数字又表示什么?
1090805647 发表于 2015-1-4 14:13 static/image/common/back.gif
我看不到懂是几V几A 数字又表示什么?
v/a标识当前放电的信息,c我不知道他标识啥(猜测是电池容量),t是放电累计的时间 问问, 是不是电池并接个2.7欧的电阻.测+极的压降 (得用一块充满电的电池) 一直放电至 电流小于 3ma ? 没有保护电路电池不就鼓起来 吗? 是不是应测电压低于 3.5V 或 3.6V ?:P 帕米 发表于 2015-1-4 17:38 static/image/common/back.gif
问问, 是不是电池并接个2.7欧的电阻.测+极的压降 (得用一块充满电的电池) 一直放电至 电流小于 3ma ? 没有保 ...
不限于接2.7欧电阻,是测这个测量电阻的电压降,可接其它负载。对于没放电保护的电池应再增设电池电压测控部分。 maxims 发表于 2015-1-4 17:07 static/image/common/back.gif
v/a标识当前放电的信息,c我不知道他标识啥(猜测是电池容量),t是放电累计的时间
限于1602LCD的显示位置的限制,没去显示单位,I是电流,单位mA,C是电池累计放电量,单位毫安分钟,T为累计放电时间,单位为秒。 maxims 发表于 2015-1-4 11:42 static/image/common/back.gif
好主意~
不过,精度有多高?
一般应用足够了,精度与测量电阻,Arduino板芯片内部参考电压(使用了内部参考电压)、设置的量程等有关。 我一直有个很大的疑问,电池的容量是怎么计算的,对应的放电电流和电压要考虑吗? 一直想做一个测试仪,不错
页:
[1]