chensg 发表于 2015-1-4 11:29:57

电池容量测量

本帖最后由 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);
}

maxims 发表于 2015-1-4 11:42:14

好主意~:lol
不过,精度有多高?

1090805647 发表于 2015-1-4 14:13:30

我看不到懂是几V几A 数字又表示什么?

maxims 发表于 2015-1-4 17:07:49

1090805647 发表于 2015-1-4 14:13 static/image/common/back.gif
我看不到懂是几V几A 数字又表示什么?

v/a标识当前放电的信息,c我不知道他标识啥(猜测是电池容量),t是放电累计的时间

帕米 发表于 2015-1-4 17:38:25

问问, 是不是电池并接个2.7欧的电阻.测+极的压降 (得用一块充满电的电池) 一直放电至 电流小于 3ma ? 没有保护电路电池不就鼓起来 吗? 是不是应测电压低于 3.5V 或 3.6V ?:P

chensg 发表于 2015-1-4 19:31:41

帕米 发表于 2015-1-4 17:38 static/image/common/back.gif
问问, 是不是电池并接个2.7欧的电阻.测+极的压降 (得用一块充满电的电池) 一直放电至 电流小于 3ma ? 没有保 ...

不限于接2.7欧电阻,是测这个测量电阻的电压降,可接其它负载。对于没放电保护的电池应再增设电池电压测控部分。

chensg 发表于 2015-1-4 19:37:13

maxims 发表于 2015-1-4 17:07 static/image/common/back.gif
v/a标识当前放电的信息,c我不知道他标识啥(猜测是电池容量),t是放电累计的时间

限于1602LCD的显示位置的限制,没去显示单位,I是电流,单位mA,C是电池累计放电量,单位毫安分钟,T为累计放电时间,单位为秒。

chensg 发表于 2015-1-4 19:43:27

maxims 发表于 2015-1-4 11:42 static/image/common/back.gif
好主意~
不过,精度有多高?

一般应用足够了,精度与测量电阻,Arduino板芯片内部参考电压(使用了内部参考电压)、设置的量程等有关。

czkala 发表于 2015-8-21 16:57:21

我一直有个很大的疑问,电池的容量是怎么计算的,对应的放电电流和电压要考虑吗?

太行摄狼 发表于 2015-8-22 22:21:20

一直想做一个测试仪,不错
页: [1]
查看完整版本: 电池容量测量