极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16246|回复: 9

电池容量测量

[复制链接]
发表于 2015-1-4 11:29:57 | 显示全部楼层 |阅读模式
本帖最后由 chensg 于 2015-1-4 11:29 编辑

本人不久前做了一个测量电池容量的装置,供大家参考,可以很方便测量各种电池的容量,大家可以试试,看你购买到的电池有没有虚标哦!
{:soso_e113:}
  1. /*
  2. 1602LCD接线:
  3. * LCD RS pin to digital pin 11
  4. * LCD Enable pin to digital pin 10
  5. * LCD D4 pin to digital pin 9
  6. * LCD D5 pin to digital pin 8
  7. * LCD D6 pin to digital pin 7
  8. * LCD D7 pin to digital pin 6

  9. 测量电阻串接在电路中
  10. 测量电阻+:接A0
  11. 测量电阻-:接地
  12. */

  13. #include <LiquidCrystal.h>
  14. LiquidCrystal lcd(11, 10, 9, 8, 7, 6);
  15. float Ucr = 0, Rcs = 2.7, Vce = 1.1, Ics, capacity = 0;           //Rcs为测量电阻,阻值可跟据精度、量程调整,此例中最大量程407mA.
  16. unsigned long Nowtime, Lasttime = 0, Cltime = 0, time = 0;
  17. const int analogInPin = A0;

  18. void setup()
  19. {
  20.   lcd.begin(16, 2);
  21.   analogReference(INTERNAL);                             //使用内部1.1V参考电压。
  22.   pinMode(analogInPin, INPUT);
  23. }

  24. void loop() {
  25.   Nowtime = millis();
  26.   if (abs(Nowtime - Lasttime) >= 1000)
  27.   {
  28.     Lasttime = Nowtime;   
  29.     int Uval = analogRead(analogInPin);  //读取A0口值
  30.     Ucr = (Uval / 1023.0) * Vce * 1000.0; //换算为电压值,(mV)
  31.     Ics = Ucr / Rcs;           // (mA)
  32.     capacity = capacity + (Ics / 60);    //(mAm 毫安分钟)
  33.     if (Ics >= 3)                         //小于3mA作为测试结束。
  34.     {
  35.     time = time + 1;
  36.     }
  37.     lcd.setCursor(0, 0);
  38.     lcd.print(F("I:"));
  39.     lcd.print(Ics, 0);
  40.     //lcd.print(F("mA"));
  41.     lcd.setCursor(7, 0);
  42.     lcd.print(F("C:"));
  43.     lcd.print(capacity, 0);   
  44.     lcd.setCursor(0, 1);
  45.     lcd.print(F("U:"));
  46.     lcd.print(Ucr, 0);   
  47.     lcd.setCursor(7, 1);
  48.     lcd.print(F("T:"));
  49.     lcd.print(time, 0);
  50.     lcd.print(F("s"));   
  51.   }
  52.   if ((Nowtime - Cltime) >= 5500)
  53.   {
  54.     lcd.clear();
  55.     Cltime = Nowtime;
  56.   }
  57.   delay(20);
  58. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-1-4 11:42:14 | 显示全部楼层
好主意~
不过,精度有多高?
回复 支持 反对

使用道具 举报

发表于 2015-1-4 14:13:30 | 显示全部楼层
我看不到懂是几V几A 数字又表示什么?
回复 支持 反对

使用道具 举报

发表于 2015-1-4 17:07:49 | 显示全部楼层
1090805647 发表于 2015-1-4 14:13
我看不到懂是几V几A 数字又表示什么?

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

使用道具 举报

发表于 2015-1-4 17:38:25 | 显示全部楼层
问问, 是不是电池并接个2.7欧的电阻.测+极的压降 (得用一块充满电的电池) 一直放电至 电流小于 3ma ? 没有保护电路电池不就鼓起来 吗? 是不是应测电压低于 3.5V 或 3.6V ?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-4 19:31:41 | 显示全部楼层
帕米 发表于 2015-1-4 17:38
问问, 是不是电池并接个2.7欧的电阻.测+极的压降 (得用一块充满电的电池) 一直放电至 电流小于 3ma ? 没有保 ...

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

使用道具 举报

 楼主| 发表于 2015-1-4 19:37:13 | 显示全部楼层
maxims 发表于 2015-1-4 17:07
v/a标识当前放电的信息,c我不知道他标识啥(猜测是电池容量),t是放电累计的时间

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

使用道具 举报

 楼主| 发表于 2015-1-4 19:43:27 | 显示全部楼层
maxims 发表于 2015-1-4 11:42
好主意~
不过,精度有多高?

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

使用道具 举报

发表于 2015-8-21 16:57:21 | 显示全部楼层
我一直有个很大的疑问,电池的容量是怎么计算的,对应的放电电流和电压要考虑吗?
回复 支持 反对

使用道具 举报

发表于 2015-8-22 22:21:20 | 显示全部楼层
一直想做一个测试仪,不错
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 16:37 , Processed in 0.039758 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表