本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

如何使用 Arduino 测量电池容量
发布时间:2021-09-03
分享到:
如何使用 Arduino 测量电池容量
发布时间:2021-09-03
分享到:

特征:

  • 识别假锂离子/锂聚合物/镍镉/镍氢电池
  • 可调恒流负载(也可由用户自行修改)
  • 几乎可以测量任何类型电池的容量(5V以下)
  • 易于焊接、构建和使用,即使对于初学者也是如此(所有组件都是浸入式的)
  • LCD用户界面

规格:

  • 电路板电源:7V 至 9V(最大值)
  • 电池输入:0-5V(max) – 无反极性
  • 恒流负载:37mA 至 540mA(max) – 16 步 – 可由用户修改
  • 在许多情况下,对电池容量的真实测量是必不可少的。容量测量装置也可以解决发现假电池的问题。如今,假锂电池和镍氢电池随处可见,它们无法处理其宣传的容量。有时很难区分真假电池。这个问题存在于备用电池市场,比如手机电池。此外,在许多情况下,确定二手电池(例如笔记本电脑电池)的容量至关重要。在本文中,我们将学习使用著名的 Arduino-Nano 板构建电池容量测量电路。我设计了用于浸渍组件的 PCB 板。因此,即使是初学者也可以焊接和使用该设备。

视频:

1:电路分析

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

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

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

图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 的负载。

1-1:什么是恒流直流负载?

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

2:PCB板

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

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

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

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

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

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

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

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

图 7-组装好的 PCB 板的 3D 视图(底部)

3:组装和测试

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

图 8-第一个原型的图片,在半自制的 PCB 板上

焊接完元件并准备好测试条件后,我们就可以测试我们的电路了。不要忘记在 MOSFET (Q2) 上安装一个大散热器。

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

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

为电源输入准备一个大约 7V 到 9V 的电压。我使用了 Arduino 板的稳压器来制作 +5V 电压轨。因此,切勿在电源输入端施加高于 9V 的电压,否则可能会损坏稳压芯片。

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

图 10-LCD 上的正确电路上电指示

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

图 11-上/下按钮恒流负载调整

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

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

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

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

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

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

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

图 13-额定 8,800mA 的锂离子电池

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

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

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

图 14-电池容量计算程序

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

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

下图显示了该电路的物料清单。

以上就是关于这个项目的全部分享了,有问题欢迎留言评论交流。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论