综合技术交流
直播中

白纪龙

7年用户 1305经验值
擅长:连接器 电源/新能源 连接器 模拟技术 连接器 测量仪表 连接器 EMC/EMI设计 连接器 嵌入式技术 连接器 连接器 连接器 连接器 接口/总线/驱动 连接器 处理器/DSP 连接器 光电显示 连接器 控制/MCU 连接器 连接器 连接器 MEMS/传感技术 连接器 电源/新能源 MEMS/传感技术 测量仪表 嵌入式技术 模拟技术 连接器 EMC/EMI设计 光电显示 处理器/DSP 接口/总线/驱动 控制/MCU
私信 关注
[经验]

使用微控制器和继电器的线性调节器调压器单芯锂离子电池充电器的切换机制



在本教程中,设计了充电电路从恒流模式切换到恒压模式的开关机制,并完成了使用线性调节器调压器拓扑的锂离子电池充电电路。在开关机构中,电池电压的检测是借助于微控制器电路完成的。该开关机构基于继电器电路,继电器电路在微控制器的帮助下再次工作。通过增加基于控制器的开关机构,完成了单芯锂离子电池的充电电路。
虽然任何微控制器都可以用来设计开关机构的控制器电路,但由于 Arduino UNO 是广泛使用的原型板,所以它被用在这个充电器电路中。在 Arduino 上开发非常简单和快速,因为它有大型的社区支持和容易获得的软件库。
– 所需组件 -
1.png


图1: 线性调节器调压器单芯锂离子电池充电器开关机构所需元件清单


方框图 -
2.png

图2: 线性调节器调压器单芯锂离子电池充电器开关机构框图

电路连接 -
在前面的教程中,恒流源和恒压源已经使用 lm317稳压器集成电路设计。Lm317是一种流行的正电压调节器,具有过电压保护,内部电流限制,过载保护,低静态电流(更稳定的输出)和安全区域补偿(其内部电路限制最大功率损耗,使其不自毁)。现在,是时候设计一种开关机制,通过检测电池的终端电压,使电池从恒流状态转换为恒压状态充电。
根据锂离子电池的充电周期,充电时必须保持恒流充电,以达到预定的充电电压范围。当电池达到预先设定的电压时,它必须用恒压电源充电。因此,必须有智能电路来检测电池的真实电压,并在 CC 和 CV 之间切换电池。
电池电压的检测是借助单片机(Arduino UNO 在这个电路)和开关的帮助下进行的继电器电路。需要充电的电池的最大额定电压为4.2 v。为了给这种电池充电,需要在 CC 模式下提供60ma 的恒定电流,在 CV 模式下提供4.2 v 的恒定电压。充电器电路是通过连接以下元件组装而成的
继电器-用于切换 CC 和 CV 电路的机械继电器用于此电路。电路中使用了两个继电器(在电路图中分别为 rl1和 RL2)。继电器一端连接到12v 电源,另一端连接到晶体管 q1和 q2的收集器。
开关晶体管-继电器触发时,晶体管(q1和 Q2)开关。晶体管 q1和 q2分别与 Arduino 板的引脚12和11接口。这些晶体管用作电路中的高端开关。
二极管-二极管 d1和 d2有助于放电的继电器线圈电流时,他们被关闭。这些二极管被称为反馈二极管或者自由振荡二极管。
电流感应电阻器-为了感应充电电流,使用了一个小值电阻器 Rsense (1欧姆)。该电阻器连接到继电器 r2的 NO 引脚上。在电路中,这个电阻器的最大降幅为60毫伏,所以最好尽可能小地取值电阻器。电阻器 Rsense 的功率额定值可以计算如下-
从电阻器 Rsense 流出的最大电流为60ma。
因此,功率 = (Rsense 上的最大电流)2 * Rsense
功率 = (0.06 * 0.06) * 1
功率 = 3.6兆瓦
因此,根据可用性,一个电阻具有0.25 w 的额定功率可用于 Rsense。电流感应电阻接到 Arduino 的引脚 A1,而 Arduino 的引脚 a0接到充电器电路的输出端,以感应电池电压。
下拉电阻器-在输出端采用高值的下拉电阻器 Rpull (1mω) 。这个电阻器帮助电路保持在理想模式。当电池没有连接到输出端时,该电阻用于接地输出端不需要的尖峰或噪声。因此,微控制器的 ADC 引脚在没有电池的情况下不会感知突然或噪声信号。
微控制器 -Arduino UNO 是用于该电路的微控制器板。控制器的模拟引脚可以感知电池的电流和电压。因此,控制器有助于触发继电器的开和关,这开关的输出 CC 和 CV 电路。从模拟引脚感应电压和电流是由 Arduino 草图管理的。电池的电压和电流水平在控制器中进行数字化,并与最大额定值进行比较,以确定开关点。当电路被切换时,控制器改变连接到晶体管的引脚处的数字逻辑以激活继电器。
下载和检查的 Arduino 草图,以了解它如何提供基于软件的智能切换的 CC 和 CV 电路编程。
指示二极管-有三个二极管连接在电路,以显示充电状态的电路。当充电器电路在 CC 模式下工作时,白色 LED (在电路图中显示为 D3)开始发光。当充电器电路在 CV 模式下工作时,绿色 LED (如电路图中的 D4)开始发光。当电池充满电后,红色 LED (在电路图中显示为 D5)开始发光。这些 led 由 Arduino 板控制,并且根据控制器感知的电池的真实电压,它通过在接口引脚处传递 HIGH 逻辑来开关其中一个 led。同时 LED,绿色 LED 和红色 LED 分别接口到 Arduino 板的引脚7,8和9。
电容器-电容器的 c1在稳压器输入可以处理电源噪声。陶瓷电容 c 2和这个 c 1并行使用来降低 ESR。电路中使用的电容器必须具有比输入电源电压更高的额定电压。否则,电容器可能开始泄漏电流,由于在其板上的过剩电压,并将爆发。在使用直流电源之前,必须确保滤波电容器已经放电。为此,必须用带绝缘手套的螺丝刀将电容器短路。
–  电路是如何工作的
按照这个算法,当电池电压在3 v 到4 v 之间时,电池必须通过恒流源充电。当电池的电压达到4 v 时,就应该用4.2 v 的恒压电源充电。
这个充电电路工作在四个状态-
理想状态-最初,12V 直流电适用于充电电路和任何电池是不连接的输出。在这种状态下,电路保持在理想状态。控制器的模拟引脚在输出端感知零伏特,不触发任何继电器。
恒流状态-当电池连接到电路,其实际电压在3v 到4v 之间,然后微控制器触发晶体管 q1和 Q2。这就激活了继电器 r1和 R2,电池连接到 CC 电路。电池现在开始充电,恒定电流为60ma,白色 LED 开关打开。当电池电压达到4v 时,电池应该切换到 CV 状态。
恒压状态-当锂离子电池电压达到4伏时,微控制器通过下拉电阻感应它,并开关晶体管 Q1 OFF。这个断电继电器 r1和电池然后连接到 CV 电路。该电路以4.2 v 的恒定电压给电池充电,绿色 LED 开关处于开启状态。微控制器连续监控这种状态下的充电电流或电池电流。
终止状态-当充电电流大约为60ma 的10% 至20% 时,电池就被称为完全充电。在这个电路中,10mA 的充电电流被设置为电池充电终端的截止点。当电池电流小于10ma 时,微控制器关闭晶体管 q2并停用继电器 R2。这断开电池从 CV 电路和红色 LED 是开关,以表明电池充满电。
–  程序设计指南 -
Arduino Sketch 设法感知电池电压和电池电流,并通过切换继电器改变充电状态。在 Arduino 的草图中,首先,电路连接是通过定义变量来表示的。
3.png

图3: 用于改变充电状态的 Arduino 代码的屏幕截图

对于检测电池电压,定义了感知电压()函数。在该函数中,使用 analogRead ()函数检测电池电压,并将数字读取返回为浮点数。为了检测电池电流,定义了 senseCurrent ()函数。该功能的工作原理与传感电压()功能相同,除了相关的引脚有电流感应电阻连接到它。
4.jpg

图4: 用于感应电压的 Arduino 代码的屏幕快照

在 setup ()函数中使用 pinMode ()函数将 Arduino 引脚设置为数字输入或输出,并将默认逻辑传递给它们。Setup ()函数只在开机时运行一次。
5.jpg

图5: 线性调节器调压器开关机构 Arduino 代码中设置函数的屏幕截图

电池的充电状态是使用代码中的 Flag 变量确定的。
6.png

图6: Arduino 编码中线性调节器调压器切换机构的标志变量截图

根据电池状态,在连接到开关晶体管的控制器引脚处设置数字逻辑来触发继电器。数字逻辑的变化是通过代码中的一个 switch 语句来完成的,该语句以 Flag 变量作为切换参数。
7.jpg

图7: 阿尔杜伊诺线性调节器调压器切换机构代码中数字逻辑的屏幕截图

这就完成了 Arduino 示意图。检查完整的代码并将其编译到 Arduino 板上进行测试。
测试电路
为了测试充电器电路,一个标称电压3.7 v 的锂离子电池由它充电。最初,电池电压(Vbat)测量为3.84 v,并注意到以下观察时,充电电池-
8.jpg

图8: 表列锂离子电池充电器的输出特性

从上面的观察可以看出,电池充电非常缓慢。这是由于在恒流模式下充电电流较小(只有60毫安)。如果充电电流增加,那么电池充电所需的时间就会减少。CC 模式下的电池充电电流可以根据电池标准提高。这样可以缩短电池的充电时间。
使用线性调节器调压器设计的充电器电路具有以下特点:
反向电池极性保护-在电路中,当电池以反向极性连接时,继电器提供隔离。
逆向电流保护-当充电电路是关闭的,并且电池仍然连接在输出端,那么就可以有电流从电池到充电器电路的逆向流动。因此,继电器 r1提供了隔离和保护电路的背面电流。
自动充电终端-控制器的程序切断 CV 电路以及一旦电池电压达到4.2 v,所以,有一个自动充电终端避免任何过充电的电池。
可视指示-在电路中接口有发光二极管来指示电池的充电状态。当电池充电在50% 到90% 之间,并且充电器在恒流模式下工作时,白光 LED 被打开。当电池充电90% 或以上,充电器在恒压模式下运行时,绿色 LED 开关打开。当电池完全充电时,红色 LED 开关打开。所有这些 led 都是由控制器开关取决于电池的实际电压感知它。
这种充电器电路设计简单,只需要装配基本的电子元件。在 Arduino 板上使用的程序代码也是简单直接的。虽然这种充电器电路有一定的局限性。
在恒流充电模式下,充电电流设定值越小,充电时间越长。在 CC 模式下增加充电电流可以减少充电时间。要了解如何在 CC 模式下增加充电电流,请查看前面的教程,其中设计了恒流和恒压源电路。由于使用了机械继电器,这个电路变得相当笨重。此外,电路设计工作只在恒定电流和恒定电压状态。充电器电路不在滴流充电状态下工作,滴流充电意味着当电池的真实电压低于3伏时给电池充电。因此,这种充电电路应该用于电压在3v 以上的锂离子电池充电。
在组装电路时,注意一些预防措施是很重要的。为了安全起见,锂离子电池必须始终以0.5 c 至0.8 c 的充电速率充电。继电器的电压应小于用于触发继电器的输入电压。反激二极管(d1和 D2)应该在两个继电器上使用,以防止电路产生任何反激电流。Rsense 必须使用具有适当额定功率的电阻器,否则额定功率较低的电阻器会因高电流而损坏。Arduino 板可以感知最小电压5mv。因此,必须明智地选择电流感应电阻器,以便在任何充电状态下,通过它的电压都不会低于5毫伏。必须注意充电器电路的输出端子不要意外短路。否则,它也会导致电池终端短路,这可能会使电池着火。因此,如果电池终端被短路,即使是错误的,也会有严重的危险。在电路中不应该有任何松动的连接,否则,在输出端可能没有电压或突然的电压。
在组装电路时,特别注意与 Arduino 板接口部件时的一些注意事项也很重要。应该确保控制板的背面不接触任何金属表面,因为它可以流动下面的小电流,并可能损坏板。提供给 Arduino UNO 的电压不能超过12v。因此,应该使用稳压直流电源为 Arduino 板供电。控制板只在直流电源上工作。因此,即使充电器电路的主要电源是交流电源,那么它也必须由变压器分级,由桥接电路整流,并由类似7812的稳压器集成电路调节。在编译代码时,必须在 Arduino IDE 中选择正确的板卡。选择董事会可以通过导航到工具-> 董事会-> 选择选项。虽然上传的代码 USB 连接器不应该删除的 PC 时,草图上传到板即使它可能需要时间。
【新课推荐】45天BMS锂离子电池管理系统设计实战线上特训班 老白新课,课程包含一块板子,老白手把手教学,性价比超高
带你从0开始做个充电宝.jpg 45天BMS锂离子电池管理系统设计实战线上特训班_电子发烧友学院 https://t.elecfans.com/topic/449.html
纪客老白新上好课:
45天BMS锂电池系统管理线上特训班招生啦!!!
【录播课程6部+45天线上直播课+BMS电源模块开发板(成品)】
录播课程如下:(学习资料礼包+全天解答交流群)
1.通用元器件基础系列  ¥399
2.元器件选型  ¥399
3.驱动电路设计大全  ¥399
4.防护电路  ¥299
5.硬件焊接调试  ¥499
6.电源系统分析  ¥599
限时优惠价¥1999
特训班45天BMS.jpg

更多回帖

发帖
×
20
完善资料,
赚取积分