×

基于Arduino UNO的9V镍氢充电电池智能充电器

消耗积分:0 | 格式:rar | 大小:0.71 MB | 2022-12-21

香香技术员

分享资料个

我寻找智能充电器聊天可以在几个小时内为 9V 镍氢电池充电,但没有找到。此外,我发现的所有充电器都非常“愚蠢”。充电电流未知,电池充满后无终止充电功能。此类充电器的问题是它们会使电池过度充电并显着缩短使用寿命。所以我决定创造“智能”充电器。

第一个版本我打算保持简单,所以它允许基本的事情,比如恒流充电,电池充满电后自动终止充电,涓流充电,测量转移到电池的电量。

在下一个版本中,我将添加一些额外的有用功能,例如放电、容量测量和循环。

警告:用大电流给电池充电可能会导致电池爆炸或起火。请不要让充电器无人看管。此外,请不要尝试为不打算作为碱性电池充电的电池充电。该充电器仅使用镍氢电池进行了测试(并且您仍然需要自行承担风险使用它,如果由于设计或代码中的错误造成的任何损坏,我绝对不承担任何责任)。其他类型电池的懊恼将需要修改代码。

理论
需要记住的一些有用事实将有助于了解充电器所需的参数。

C——电流等于电池标称容量

以C倍率充电时单体电池电压可能达到1.6V。对于旧电池,此电压可能更高。

单体电池标称电压为1.2V,但充满电的电池开路电压高达1.5V。

电池充满电后,建议使用小于 0.025 C (C/40) 的涓流充电率。

给镍氢电池充电一般有两种选择:

1.快速充电。充电电流0.5C-1C。充电状态必须由 dV/dt(电压变化率)或 dT/dt(温度变化率)监控和终止

2.充电慢。充电电流0.1C。充电时间14-16小时。通过定时器终止充电。dT/dt 充电终止不可能用于低电流。根据文献,dV/dt 端接对于低于 0.5C 的电流可能不可靠。

充电电路基本参数
9V 电池通常有 7 节串联,但在某些情况下可能有 6 节或 8 节。稳压器应能提供至少高达8*1.6=12.8V的充电电压。LM317 稳压器的压降高达 2V,因此电源电压需要为 ~15V(这不考虑电流感应电阻上的压降)。

对于 200mA 的最大充电电流和 10 欧姆的电流感应电阻器,电流感应电阻器上的附加压降为 2V,因此需要 17V 的电源电压。

完全放电的电池可能具有非常低的甚至负电压。理想情况下稳压器的最小电压应为 0,但使用 LM317 可能低至 1.2V。

电路

电路说明
基本思想是测量充电电流并调整稳压器的电压,直到达到所需的电流。通过测量电流检测电阻器 R5 上的电压降来测量电流。I=V/R。

SparkFun I2C DAC Breakout - MCP4725 - 用于控制电压的 12 位数模转换器。输出电压可以通过 I2C 配置在 0 到 5V 之间。因为我们需要能够在更宽的范围内调节电压,所以使用0到15V的运算放大器LM358来放大DAC的输出电压。由电阻 R4 和 R3 设置的运算放大器的放大。Gain=1+R4/R3=1+6800/3300=3.06 所以运算放大器的输出电压大约为0到15V。

LM358 的最大输出电流为 50mA,因此 LM317 使用可调稳压器来控制更高的电流。运放输出接LM317的ADJ端。LM317 将在 ADJ 和 OUT 端子之间保持 1.2V,因此电池上的实际电压可以配置在 1.2 和 16.2V 之间。LM317 需要最小 3.5mA 电流来维持调节。因此,如果电池未连接,则使用 1kOhm 电阻器 R6 来确保调节。电容C1用于过滤输出电压,提高LM317的稳定性。

在两个不同点测得的电压。

1. 电阻 R5 连接到 Arduino 的引脚 A2。测量电阻上的电压,然后按 Icharge=V/R 计算充电电流

2. 电池电压最高可达16.2V,因此使用电阻分压器R1、R2将电压降至5V以下,Arduino允许。连接到 Arduino 引脚 A0 的分频器输出。对于 R1=5.1k Ohm 和 R2=20kOhm Vout=Vin/(20000+5100)*5100=0.2 所以电池电压除以 5。

继电器用于断开电池与充电电路的连接。您可以在我使用的照片继电器上看到,但通常可以使用任何具有 5V 控制的继电器。将电池连接到继电器的常开触点更安全。

我使用 YwRobot I2C SERIAL LCD 1602 MODULE 来显示充电器的状态,但可以使用任何其他 I2C 控制的 LCD 模块。似乎标准 LiquidCrystal_I2C 库不支持 YwRobot LCD 模块,所以我使用了New LiquidCrystal 库如果您使用不同的 LCD 模块,则需要更改此行:

Fv-QVnAJH0bGyfwwJZV3Gtb4hiMe

为数模转换器和 LCD 供电,我使用了 SparkFun 面包板电源 5V/3.3V。使用 Arduino 板的 5V 电压可能没问题。

您还需要为充电电路提供 17V 电压。如果你没有电源,你可以使用这样的可调DC/DC转换器

功能
我不想要很多电线,所以没有配置充电的按钮。懊恼电流仅在代码中配置。您需要在charger.ino 中设置所需的充电电流

FjHpX55_dxQHB1Kk0H-NbkRBVTux

target_current_mA - 恒定充电电流

max_time_for_trickle_charge - 涓流充电的最大分钟数,最多可设置为 600 (10h)

Battery_nominal_capacity_mA - 用于计算涓流电流的电池容量

一般充电电流可达标称容量。对于标称容量为 170mAh 的电池,最大充电电流为 170mA。170mAh 电池的最小充电电流通常为 C/10 - 17mA。

通电后充电器会检查电池是否连接。如果电池连接电池,电池将以配置的恒流充电,直到充满电。通过在 5 分钟内检测到负 dV/dt 来终止充电。充电完成后,充电器将切换到电流 C/40 的涓流充电。最大涓流充电时间过后,充电器将断开与电池的连接。

1 - dV/dt

2 - 以分钟为单位的充电时间

1 - 充电时间

2 - 电荷转移到电池

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'基于Arduino UNO的9V镍氢充电电池智能充电器',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);