使用Arduino的电池容量测试仪

电子说

1.2w人已加入

描述

电池容量的真实测量对于许多情况都是必不可少的。容量测量设备也可以解决发现假电池的问题。如今,假冒的锂电池和镍氢电池随处可见,无法满足其宣传的容量。有时很难区分真假电池。这个问题存在于备用电池市场,例如手机电池。此外,在许多情况下,必须确定二手电池(例如笔记本电脑电池)的容量。在本文中,我们将学习使用著名的 Arduino-Nano 板构建电池容量测量电路。我为浸入式组件设计了 PCB 板。因此,即使是初学者也可以焊接和使用该设备。

特征:

识别假锂离子/锂聚合物/镍镉/镍氢电池

可调恒流负载(也可由用户修改)

能够测量几乎任何类型电池的容量(低于 5V)

易于焊接、构建和使用,即使对于初学者也是如此(所有组件均为 Dip)

LCD 用户界面

规格:

板电源:7V 至 9V(最大值)

电池输入:0-5V(max) – 无反极性

恒流负载:37mA 至 540mA(max) – 16 步 – 可由用户修改

电路分析

图 1 显示了该装置的示意图。电路的核心是一块 Arduino-Nano 板。

pcb

图1:电池容量测量装置示意图

IC1 是一个 LM358 [1] 芯片,包含两个运算放大器。R5 和 C7 构成一个低通滤波器,将 PWM 脉冲转换为直流电压。PWM 的频率约为 500Hz。我使用了 Silent SDS1104X-E 示波器来检查 PWM 和滤波器的行为。我将 CH1 连接到 PWM 输出 (Arduino-D10),将 CH2 连接到滤波器的输出(图 2)。您甚至可以通过波特图“在实践中”检查滤波器的频率响应及其截止频率,这是 SDS1104X-E 的一个很好的引入功能。

pcb

图2:PWM信号(CH1:2V/div)和经过R5-C7 RC滤波器后的结果(CH2:50mV/div)

R5 是一个 1MΩ 电阻器,它极大地限制了电流,但是,滤波器的输出通过电压跟随器配置中的运算放大器(IC1 的第二个运算放大器)。IC1、R7和Q2的第一个运放构成恒流负载电路。至此,我们已经搭建了一个PWM可控的恒流负载。

2*16 LCD用作用户界面,使控制/调整变得容易。R4 电位器设置 LCD 对比度。R6 限制背光电流。P2 是一个 2 针 Molex 连接器,用于连接 5V 蜂鸣器。R1 和 R2 是轻触开关的上拉电阻。C3 和 C4 用于消除按钮的抖动。C1 和 C1 用于对电路电源电压进行滤波。C5 和 C6 用于滤除恒流负载电路噪声,以免降低 ADC 转换性能。R7 充当 Q2 MOSFET 的负载。

什么是恒流直流负载?

恒流负载是一种始终吸收恒定电流的电路,即使施加的输入电压发生变化也是如此。例如,如果我们将恒流负载连接到电源并将电流设置为 250mA,即使输入电压为 5V 或 12V 或其他任何值,电流消耗也不会改变。恒流负载电路的这一特性使我们能够构建电池容量测量装置。如果我们使用一个简单的电阻作为负载来测量电池容量,随着电池电压的降低,电流也会降低,这使得计算变得复杂和不准确。

PCB板

图 3 显示了电路的设计 PCB 布局。板的两侧用于安装组件。

当我打算设计原理图/PCB 时,我总是使用 SamacSys 组件库,因为这些库遵循工业 IPC 标准并且都是免费的。我将这些库用于 IC1 [2]、Q2 [3],甚至我还可以找到 Arduino-Nano (AR1) [4] 库,它节省了很多设计时间。我使用 Altium Designer CAD 软件,所以我使用 Altium 插件来安装组件库 [5]。图 4 显示了选定的组件。

pcb

图3:电池容量测量电路PCB板

当我打算设计原理图/PCB 时,我总是使用 SamacSys 组件库,因为这些库遵循工业 IPC 标准并且都是免费的。我将这些库用于 IC1 [2]、Q2 [3],甚至我还可以找到 Arduino-Nano (AR1) [4] 库,它节省了很多设计时间。我使用 Altium Designer CAD 软件,所以我使用 Altium 插件来安装组件库 [5]。图 4 显示了选定的组件。

pcb

图 4:从 SamacSys Altium 插件安装的组件

PCB 板比 2*16 LCD 略大,以适应三个触觉按钮。图 5、6 和 7 显示了电路板的 3D 视图。

pcb

图 5:组装好的 PCB 板的 3D 视图(顶部)

pcb

图 6:组装好的 PCB 板的 3D 视图(侧面)

pcb

  图7:组装的PCB板的三维视图(底部)

  组装和测试

  我用一块半自制的PCB板构建了一个快速原型并测试了电路。图8显示了电路板的图片。你不需要跟着我,只要把PCB订给专业的PCB制造公司,然后制造设备就行了。您应该为R4使用立式电位计类型,它允许您从板的侧面调整LCD对比度。

  在焊接组件并准备好测试条件后,我们准备测试电路。别忘了在MOSFET上安装一个大散热器(Q2)

      我选择R7作为3欧姆电阻。这允许我们产生高达750mA的恒定电流,但在代码中,我将最大电流设置为500mA左右,这足以满足我们的目的。降低电阻值(例如1.5欧姆)可以产生更高的电流,但是,您必须使用更强大的电阻并修改Arduino代码。图9显示了电路板及其外部接线。

pcb

  图9:电池容量测量装置的接线

  为电源输入准备7V到9V左右的电压。我使用了Arduino板的调节器来制作+5V轨道。因此,切勿向电源输入施加高于9V的电压,否则可能会损坏调节器芯片。

电路板将通电,您应该在 LCD 上看到一个文本。如果您使用蓝色背光 2*16 LCD,电路将消耗大约 75mA。

大约 3 秒后,文本将被清除,在下一个屏幕中,您可以通过上/下按钮调整恒流值。

在将电池连接到设备并测量其容量之前,您可以使用电源检查电路。为此,您应该将 P3 连接器连接到电源。

重要提示:切勿向电池输入施加任何高于 5V 或反极性的电压,否则您将永久损坏 Arduino 的数字转换器引脚。

设置您想要的电流限制(例如 100mA)并使用您的电源电压(保持在 5V 以下)。正如您在任何输入电压下看到的那样,电流保持不变。这正是我们想要的!(图 12)。

pcb

图 12:即使在电压变化之前电流也保持恒定(用 4.3V 和 2.4V 输入测试)

第三个按钮是复位。这意味着它只是重新启动电路板。当您计划重新启动程序以测试不同的黄油时,它很有用。

无论如何,现在您确信您的设备可以完美运行。您可以断开电源并将电池连接到电池输入并设置所需的电流限制。

为了开始我自己的测试,我选择了一个全新的 8,800mA 额定锂离子电池。这看起来是一个惊人的速度,不是吗?!但我无法以某种方式相信这一点:-),所以让我们测试一下。

在将锂电池连接到板子之前,我们必须对其进行充电,所以请准备一个固定的4.20V(500mA CC限制或更低)的电源(例如,使用上一篇文章中的可变开关电源)并充电电池直到电流达到低水平。不要用大电流给未知电池充电,因为我们不确定它的真实容量!高充电电流可能会导致电池爆炸!当心。结果,我遵循了这个程序,我们的 8,800mA 电池已准备好进行容量测量。

我使用电池座将电池连接到电路板。确保使用引入低电阻的粗而短的电线,因为电线中的功耗会导致电压下降和不准确。

让我们将电流设置为 500mA 并长按“UP”按钮。然后您应该会听到一声哔声,程序开始(图 14)。我已将截止电压(低电池阈值)设置为 3.2V。如果您愿意,可以在代码中修改此阈值。

pcb

图 14:电池容量计算程序

基本上,我们应该计算电池在其电压达到低电平阈值之前的“寿命”。图 15 显示了设备从电池 (3.2V) 断开直流负载并进行计算的时间。该设备还会发出两声长哔声以指示程序结束。正如您在 LCD 屏幕上看到的,真正的电池容量为 1,190mAh,与声称的容量相去甚远!您可以按照相同的程序测试任何电池(低于 5V)。

pcb

图 15:8.800mA 额定锂离子电池的真实计算容量

图 16 显示了该电路的材料清单。

pcb

图 16:物料清单

审核编辑:郭婷

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

全部0条评论

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

×
20
完善资料,
赚取积分