痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 4886|回復: 1

轉載: 簡易型鋰電池內阻檢測器

[複製鏈接]
發表於 2014-8-7 23:24:14 | 顯示全部樓層 |閱讀模式
http://bbs.yleee.com.cn/thread-3720-1-1.html

電池內阻檢測價格不斐,這個簡易的測試器,作為測試真假電池很快速!!

//  FPGARM于一乐论坛首次开源
//       2010年7月29日
//******锂电池内阻测试器******
//欢迎转载,但不得用于商业目的
//免责声明我不会写,反正就是免
//责啦,出什么事了我不管啊:)
//*********代码开始***********
#include "iom8v.h"
#include "macros.h"
#define  uchar unsigned char
#define  uint  unsigned int
void delay (uint ms)
{
uint t=100;
while (--ms)
  {
  while (--t);
  t=100;
  }
}
uint addata()
{
     uint addata;
         ADCSRA|=BIT(ADSC);
         while(!(ADCSRA&(BIT(ADIF))));
     addata=ADCL;
         addata=addata+ADCH*256;
         return addata;
}
void initial ()
{
     DDRD=0X3f;     //一共5颗LED,应该是0X1F,懒得改了
         DDRB|=BIT(2);  //PB2,SS,OC1B作为放电控制脚
         DDRC&=~BIT(3); //ADC3,PC3作为AD采集脚
         ADMUX=0xC3; //内部基准,右对齐
         ADCSRA=0X82; //AD使能,ADC时钟4分频
}
void main ()
{
uint ad_yuanlai=0,ad_fangdian=0,du,i,t=6;

delay (90); //延时一段时间,等接触良好
initial ();     //上电初始化

while (1)       // 大循环开始
{
ad_yuanlai=0;//原來
ad_fangdian=0;//放電

delay (26);

for (i=0;i<t;i++)
ad_yuanlai+=addata(); //采集t次

PORTB|=BIT(2); //开始放电,出现电压降

delay (25);    //延时,等待电压稳定

for (i=0;i<t;i++)
ad_fangdian+=addata();//采集t次,此时电压U=E-I*r,
                       //因为电流变化幅度不大,所以
                                           //所以下面就用du代替I*r,从而
                                           //判断r的大小。

PORTB&=~BIT(2);  //结束放电

if (ad_yuanlai>=ad_fangdian)
{
du=ad_yuanlai-ad_fangdian;  //得到△V
if (du<22)          //0     这里取22不是13是因为考虑到线阻什么的。
  PORTD=0X01;        //1     - - - - *  内阻小
if (du<35&&du>=22)  //13
  PORTD=0X03;        //2     - - - * *
if (du<48&&du>=35)  //13
  PORTD=0X07;        //3     - - * * *
if (du<61&&du>=48)  //13
  PORTD=0x0f;        //4     - * * * *
if (du<74&&du>=61)  //13
  PORTD=0X1F;        //5     * * * * *
if (du<87&&du>=74)  //13
  PORTD=0x11;        //2     * - - - *
if (du>87)          //
  PORTD=0x1b;        //4     * * - * *  内阻大
}
else PORTD=0x00;
}
}
//***********代码结束***********

放電 25mS 然有檢查 放電前後的電壓 AD 值 決定 LED 的亮燈數 ... 不知道大家對此有何看法!!

評分

2

查看全部評分

發表於 2014-8-8 00:01:18 | 顯示全部樓層
如果電池在滿電的情況下~放電25mS, 電池的電壓下降幅度不大~
但是在快沒電的情況下~ 以相同放電時間跟電流做比較~
電池電壓下降幅度就滿大的~
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-11-25 09:01 PM , Processed in 0.235987 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.