【开源硬件】Green BMS Made with KiCad 智能 BMS 电源管理系统
“ GreenBMS 是一款开源的智能 BMS 电源管理系统,支持蓝牙通信。 ”
概述Smart BMS 是用于锂电池(Lifepo4、锂离子、NCM 等)电池组的开源电池管理系统。 作者自述:为什么选择Green BMS?一年前,我为女儿买了一辆电动摩托车,并用锂电池组(LiFePO4)替换了已经耗尽的 PB-gel 电池。为了管理锂电池,我在市场上没有找到一款智能、便宜且易于配置的产品。因此,我决定自己制作!经过大量的工作,当我看到它运行良好时,我决定与全世界分享 Green BMS 项目,让其他人也有机会使用它,甚至改进它。我女儿的滑板车已经行驶了数百公里,但这个项目不仅适用于电动设备,还可用于太阳能储存系统和任何由锂电池供电的应用。我很高兴能通过我的项目为环境和可持续发展的未来贡献自己的绵薄之力!
硬件功能 锂电池组需要一个 BMS(电池管理系统)。 BMS 的主要功能有: - 防止电池电压过高
- 防止电池电压过低
- 在温度超出范围时保护电芯
- 均衡电池单元
智能 BMS 还具有以下功能: Green BMS 包括四个主要组件: 1. 电池模块 2. 控制单元 3. 限制器 4. 安卓应用程序
每个电池的电压和温度值由相关的电池模块(Attiny)获取,并通过串行 I2C 线路发送到控制单元(Arduino Mega)。 控制单元通过限制器(包括一个用于打开或关闭充电电路的功率继电器)启动或停止充电(通过输出继电器)。控制单元还可通过输出继电器启动或停止放电。 均衡电流:最大 1.2 A(可通过参数调整)。 当仅均衡电池组中的一个电池时,控制单元会激活限流器内部的限流功能(充电电流限制在 1A)。 控制单元可通过 Green BMS 应用程序与智能手机连接(蓝牙)!电池组模块电池模块直接连接到电池上,由电池自身供电电池模块微控制器(Attiny84)接收电池电压、电池极温度和平衡电阻温度信号,并利用其软件中包含的逻辑执行以下功能:- 通过 I2C 串行协议与主控单元通信- 为 BMS 的控制单元发送电池电压、电池正负极温度、均衡电阻温度的数值- 根据控制单元的指令执行电池均衡(通过 mosfet)。 电池模块通过一条隔离的 4 线 I2c 总线与控制单元并行通信。用户可通过按钮对每个单元模块的 I2C 地址进行编程,并通过两个指示灯的闪烁检查十位和各位值。可设置的地址范围为 1 至 99 。模块地址与模块在 I2c 总线上的连接无关。地址存储在 Attiny EEPROM 中。电池模块的另一个重要功能是使用电路板上的按钮进行电压补偿校准电池模块的平均消耗电流为 15 mA。电池组模块硬件
上图显示了电池模块的主要组件。连接 7 脚编程连接器时,微控制器从电池中获取电源;未连接连接器时,微控制器与电池分离:在这种情况下,可以通过连接 "Arduino as isp "电缆加载软件。
Attiny84 微控制器中的软件是使用开源 Arduino IDE 应用程序开发的。 软件使用 "Arduino as isp "工具加载,这是一种特殊配置,将 Arduino Uno 控制器用作 Attiny 微控制器的编程器。
控制单元
控制单元是 BMS 的主要单元,基于开源微控制器 Arduino Mega。控制单元的功能包括: - 通过 I2c 与电池组的所有电池模块通信
- 从电池模块接收电池组管理系统所需的电池电压、电池正负极温度和均衡电阻温度值
- 向电池模块发送均衡指令
- 通过继电器执行以下安全功能:
- 充电正常:当电池组中只有一个电池达到高值或与电池模块的 I2C 通信中断时,打开两个继电器触点
- 放电正常:当电池组中只有一个电池达到最低值或与电池模块的 I2C 通信中断时,打开一个继电器触点
- 报警指示灯:报警时关闭一个触点以提供指示灯
- 均衡:当电池组中只有一个电池达到均衡时,关闭一个触点:Green BMS 系统利用该信号降低充电电流
- 系统确定:当控制装置必须关闭以避免不必要的消耗时,关闭触点。
- 通过蓝牙模块与安卓设备通信。
通过安卓应用程序,可以对 BMS 进行校准:系统将所有参数存储在控制单元内 Arduino Mega 微控制器的 EEprom 存储器中。控制单元硬件
上图显示了控制单元的主要组件。Arduino Mega 是控制单元的背板,必须通过相关连接器为其提供 12 伏直流电。
要为 Arduino Mega 和所有控制单元功能供电,必须使用 DC-DC 转换器将整个电池组转换为 12 伏直流。Arduino Mega 是一种商用开源卡。接口板插在 Arduino Mega 的上方。 接口板包括控制单元输入/输出连接器。接口板包括一个看门狗电路,可在软件崩溃时使继电器断电。微型输出继电器(12 伏直流线圈)由驱动 IC 驱动。 重要提示:继电器触点支持的最大电流为 1A,请勿将这些触点直接用于电池充放电电路,而是用于驱动电源继电器! 控制装置的平均功耗为 5.5 瓦。如果总是让它处于通电状态,即使在不需要它的时候,也会在几天内将电池组放电!因此,在设计 12v 电源电路时,必须确保在不进行放电或充电操作时关闭控制单元。无论如何,建议在每次放电后都对电池组充电,如果电池长时间不工作,最好每周充电一次。 接口板 PCB 是使用 Kicad 开放源码应用程序设计的。
控制单元透明有机玻璃外壳切割图,使用开放源码 2D cad Librecad 设计。控制单元软件 Arduino Mega 中的软件是使用开放源码 Arduino IDE 应用程序开发的。使用标准 USB 电缆(一般随 Arduino Mega 提供)连接到相关端口,加载软件。限制器(Limiter)单元
BMS 电池管理系统限制器单元根据控制单元的指令启动或停止充电。
当 BMS 只均衡电池组中的一个电池时,控制单元会命令限流继电器将充电电流强制降至 1A,以停止对已达到平衡电压(正在平衡)的电池充电,同时继续对其他电池充电。限流电路包括一个 Mosfet IRFZ44N、一个 NPN 晶体管 BD139 和一个 0.68 欧姆的功率电阻,这些元件会产生高温,因此必须选择一个金属限流盒来散热,而且必须使用专用绝缘套件来固定上述元件。此外,限制器还配有一个安全恒温器,当达到临界温度时,恒温器会打开电路。
Honeywell 2455R 82-195 L70C Green BMS 限制器使用12vdc功率继电器,建议充电电流不超过20A。Green BMS限制器适用于16s Lifepo4 48v:它可以用于更高电压的充电,但 “IN” 和 “OUT” 端子之间的电压不得超过10V,并且在任何情况下都必须小心操作,确认系统安全! Green BMS APP关于 Green BMS 的 App,可以参考:https://hackaday.io/project/1814 ... een-bms-android-app使用 APP,可以完成各种配置与监控操作:
LicenseGreen BMS已被开源硬件协会认证为开源硬件,UID:IT000007。 License:Creative Commons Attribution-ShareAlike 4.0 International License
仓库 & 下载可以在Github中获取开源仓库: https://github.com/Green-bms/SmartBMS
|