下面是Arduino测试单节锂电池容量的程序代码: /*本程序用于单节锂电池的放电电量计算,测量电池的容量。单位mAh。锂电池放电终止电压=2.75V。 * 该程序的参数只适合锂电池。可测量1个电池。本程序带自动开关,在锂电池放电终止电压=2.75V时程序自动断开电池。 * 从而保证锂电池过放电。可以参考电路图--锂电池容量测试--自动电路图。(本程序对应电路少占用Arduino一个引脚)。 * 发光二极管点亮时代表锂电池正在放电;发光二极管熄灭时代表锂电池放电结束(锂电池电压小于2.75V时) */ long timeh;//计算机运行时间,也是电池的放电时间。单位:小时。 float v1a;//电池1的电压值(0~1023)。(0~5V 转0~1023)。 float v1ak;//电池1的电压值(0~5v)。 float v1b;//MOS开关管源极对地电压(0~1023)。(0~5V 转0~1023)。 float v1bk;//MOS开关管源极对地电压(0~5v)。 float i1a;//电池1的放电电流。单位:mA float i1ab;//电池1的放电电流的累加和。单位:mA float i1ap;//是电池的放电电流的平均值 float r1 = 3.75;//放电电阻阻值。单位:欧姆。放电电压4.2V--2.75V,对应电流1120mA--733mA。 long cisu1;//电池的放电程序运行次数。 float rongliang1;//电池1的容量,单位:mA.小时。 float mwh1;//单次毫瓦时。 float mwh;//毫瓦时。 boolean kaiguan;//开关kaiguan定义为布尔函数。 void setup() { Serial.begin(9600); cisu1 = 0; i1ab =0; pinMode(4, OUTPUT);//引脚4定义为输出引脚。 digitalWrite(4,HIGH);//用于控制MOS管开关状态,高位MOS管导通,低位MOS管关闭,切断放电电路。 } void loop() { timeh = millis()/1000/60;//时间函数,单位:分钟。每次点击串口监视器,时间函数都从零开始。 kaiguan=digitalRead(4);//开关读取Pin4引脚的状态。高位为真。 v1a = analogRead(A0); //放电电池的电压(0~5v 转为0~1023)。 v1ak = v1a/1023*5;//放电电池电压。单位:伏特。 v1b = analogRead(A1); //MOS开关管的源极对地电压(0~1023)。(0~5v 转为0~1023)。 v1bk = v1b/1023*5;//MOS开关管的源极对地电压(0~5v).单位:伏特。经过实测MOS管源漏极之间的电压只有0.02v。 //Serial.println(v1ak);//if (!pushButton1 && !pushButton2) //Serial.println(timeh); if((v1ak>2.75)&&kaiguan) {//锂电池放电终止电压是2.75V.如果v1a>2.75v 并且Pin4引脚为高位,则条件成立。 i1a=(v1ak-v1bk)/r1*1000;//ila是电池的放电电流,单位mA,r是放电电阻,本程序r1=3.75欧姆。 cisu1 = cisu1+=1; i1ab = i1ab+=i1a; i1ap = i1ab/cisu1;//i1ap是电池的放电电流的平均值。 rongliang1 = i1ap*timeh/60;//电池容量, 单位:毫安.小时。 mwh1=v1ak*i1a/60;//单次毫瓦时。(每分钟累计一次)。 mwh=mwh+=mwh1;//累计毫瓦时,(每分钟累计一次)。 Serial.print("电池电压:"); Serial.print(v1ak); //Serial.print(" "); //Serial.print("次数:"); //Serial.print(cisu1); Serial.print(" "); Serial.print("电流:"); Serial.print(i1ap); Serial.print(" "); Serial.print("电量mAh: "); Serial.print(rongliang1); Serial.print(" "); Serial.print("时间分钟:"); Serial.print(timeh); Serial.print(" "); Serial.print("毫瓦时mwh: "); Serial.println(mwh); delay(60000);//延迟1分钟。 } else { digitalWrite(4,LOW);//锂电池电压低于2.75V时,MOS开关管关断,切断电池的放电回路,从而保证电池不过放电。 //同时发光二极管熄灭。锂电池放电放电结束 Serial.print("1号电池容量:单位 mAh: "); Serial.print(rongliang1); Serial.print(" "); Serial.print("毫瓦时mwh: "); Serial.println(mwh); delay(60000); } }
Arduino测试锂电池容量电路图
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
锂电池
+关注
关注
260文章
8106浏览量
170029 -
Arduino
+关注
关注
188文章
6469浏览量
187005
发布评论请先 登录
相关推荐
18650锂电池容量测试
本文主要介绍了18650锂电池容量测量方法步骤。锂电池的容量有多大,是设备能够使用多长时间的前提。那么朋友们知道如何测锂电池容量比较准确吗?一般生产厂家的标称
发表于 07-24 11:08
•3.6w次阅读
锂电池容量测定仪
锂电池容量测定仪前段时间,打算DIY一个移动电源,于是四处购置原材料。首当其冲就是选择怎样的锂电池,查了一下淘宝的“18650”条目,各家锂电的价格和
发表于 05-25 14:22
新能源动力锂电池与普通容量型锂电池区别
型锂电池对材料的指标及电池材料配比的要求和动力锂离子电池有较大的不同。 两种锂电池在使用材料和生产工艺上是不同的,更客观的可以从价格方面做对比。比如两种
发表于 09-06 15:50
基于单片机锂电池容量测试仪的设计资料分享
不多说,先上实物图工作原理时:此设计是用万能板搭建,显示用12864字库屏,主板与屏幕分开,这个单片机电池容量测试仪对于锂电/镍氢程序实现自
发表于 12-03 07:55
锂电池容量测试方法
锂电池容量测试是以满电电压和设定的终止电压为参数的,因为锂电池的最低放电电压是2.75V,所以,小于3V的电压已经对锂电池测试没有意义;固定
锂电池容量损失机理
参考:百度文库资料 责任编辑:xj 原文标题:锂电池容量决定因素及损失原因分类讲解 文章出处:【微信公众号:锂电联盟会长】欢迎添加关注!文章转载请注明出处。
锂电池容量怎么计算?常见的18650锂电池容量有多大?
18650锂电池的容量最大能做到多少毫安时,还是一个很值得探讨的一个问题,因此一直受到众多从业者的关注,这几年来中国各个锂电池生产厂家技术都有所提升,不断的实验研发,容量也慢慢的有所提
锂电池容量下降怎么办?锂电池容量下降修复方法
锂电池容量下降怎么办?锂电池容量下降修复方法 锂电池是一种重要的能源储存设备,广泛应用于移动设备、电动汽车和可再生能源系统中。然而,随着使用时间的增长,锂电池容量可能会逐渐下降,从而
评论