资讯详情

基于Arduino锂电池容量测试仪

基于Arduino18650锂电池容量测试仪

  • 基于Arduino锂电池容量测试仪
    • 为什么需要电池容量测试仪?
    • 所需元器件
    • 计算和显示单元
    • 恒定负载电流电路
    • 电压测量
    • 测量电池容量 Arduino 程序
    • 精度改进
    • 构建和测试电路
    • 电路图和代码

基于Arduino锂电池容量测试仪

随着技术的出现,我们的电子产品和电器变得越来越小,具有更多的功能和更复杂的应用。随着复杂性的增加,电路的功率要求也增加了。为了使设备尽可能小和便携,我们需要一个电池长时间提供大电流的电池,重量要轻得多,以便设备应保持便携性。

为什么需要电池容量测试仪?

市场上有很多电池供应商出售廉价仿冒版的锂离子电池,声称规格奇特,价格低廉,令人难以置信。当你购买这些电池时,它们要么根本不工作,要么能工作,充电容量或电流太低,无法与应用程序一起工作。那么,如果电池不是这些便宜的假冒产品之一,如何测试锂电池呢?一种方法是在空载和负载下测量开路电压,但这并不可靠。 在这里插入图片描述因此,我们将是锂离子 18650 建造18650个电池 电池容量测试仪将通过电阻器充满电 18650 放电电池,测量流过电阻器的电流,计算其容量。如果您在电池电压在指定的限制范围内没有获得声称的电池容量,则电池故障,您不应使用电池,因为电池的充电状态在负载下以非常快的速度耗尽,因此如果在电池组中使用本地电流电路,会导致热量和火灾。所以让我们直接进去。

所需元器件

Arduino纳米 16×2字符液晶 LM741 运算放大器 IC 2.2Ω、5W 电阻器 7805正电压稳压IC 12V电源 10kΩ微调电位器 0.47uF电容 33kΩ电阻 直流电源筒形插孔连接器 PCB螺丝端子 IRF540N N沟道MOSFET IC 穿孔板 焊接套件 散热片

计算和显示单元

分为两部分,首先是 Arduino Nano 的低 5V 电源和 16×2 字母数字 LCD 为了实时显示电流和电压测量的结果,屏幕及其连接。电路由使用 SMPS 的 12V 或者你可以使用电源 12V 电池以及为 Arduino 和 LCD 屏幕供电的最大电流约为 60-70mA。 将电压降 5V,我们将使用能够承受高达的线性稳压器 35V 至少需要电压,至少需要电压 7.5V 提供稳定的输入电源 5V 如果你的输入是电源,多余的电压会以热量的形式消散LM7805稳压IC电压大于12V,以免损坏散热器。LCD 由 7805 的 5V 电源供电并连接 Arduino 并以 4 位模式工作。我们还添加了10个k Ω控制抽头电位器 LCD 显示屏的对比度。

恒定负载电流电路

其次是基于PWM恒流负载电路使流过电阻的负载电流能够由我们控制和保持恒定,以免随着电池电压的下降而随时间的变化而产生误差。它由LM741 OPAMP IC和IRF540N N 沟道 MOSFET 通过打开和关闭我们设置的电压电平 MOSFET 来控制流过 MOSFET 的电流。 在比较器模式下操作放大器,所以在这种模式下。只要非反相引脚的电压高于反相引脚的电压,放大器的输出就会高电平。同样,如果反相引脚的电压高于同相引脚,则会降低输出。非反相引脚电压电平在给定电路中由 Arduino NANO 的 D9 PWM 引脚控制,引脚以上 500Hz 频率切换,然后电阻值为 33kΩ 的低通 RC 电路滤波器电容器 0.47 的电容器uF,同相引脚提供几乎恒定的直流信号。相反,引脚连接到负载电阻,读取电阻和公共电阻 GND 两端的电压。OPAMP 输出引脚连接 MOSFET 打开或关闭栅极端子。OPAMP 将尝试通过切换连接 MOSFET 使两端的电压相等,因此流过电阻的电流将与您在一起 NANO 的 D9 设置在引脚上 PWM 值成正比。在这个项目中,我将电路的最大电流限制为 1.3A,这是合理的,因为我拥有的电池的最大额定电流是 10A。

电压测量

典型的充满电的锂离子电池的最大电压为 4.1V 至 4.3V,低于 Arduino Nano 模拟输入引脚 5V 内部电阻超过电压限制 10kΩ,因此,我们可以直接将单元连接到任何模拟输入引脚,而不用担心流过它们的电流。因此,在本项目中,我们需要测量电池的电压,以确定电池是否在正确的电压工作范围内,是否完全放电。

我们还需要测量流过电阻的电流,因为我们不能使用分流器,因为电路的复杂性会增加,负载路径中电阻的增加会降低电池的放电率。使用较小的分流电阻将需要额外的放大器电路,以确保其电压读数对 Arduino 可读。

因此,我们直接读取负载电阻两端的电压,然后使用欧姆定律将负载电阻值获得的电压除以获得流过其电流。电阻的负极直接连接到 GND,因此,我们可以放心地假设我们在电阻器上读取的电压是电阻器中的电压降。

测量电池容量的 Arduino 程序

在硬件电路完成后,我们开始这样做 Arduino 编程。现在,如果你的话 PC 上没有安装 Arduino IDE,那你在这里做什么呢!转到官方 Arduino 网站并下载并安装 Arduino IDE,或者你也可以在其他任何编辑器中编码,但这是另一天的话题,现在我们坚持使用它 Arduino IDE。我们现在正在使用它 Arduino Nano,因此,请确保您已经通过向TOOLS> BOARDS并在那里选择ARDUINO NANO选择了 Arduino Nano 板,现在通过转向TOOLS> PROCESSOR选择您的 nano 当你在那里时,有正确的处理器,还可以选择您的 Arduino 在您的 PC 端口上连接。我们正在使用它 Arduino 驱动与它连接 16×2 字母数字 LCD,并测量电池的电压和流过负载电阻的电流,如上一节所述,我们通过声明头文件驱动 16×2 开始我们的代码字母数字液晶屏。我们正在使用它 Arduino 驱动与它连接 16×2 字母数字 LCD,并测量电池的电压和流过负载电阻的电流,如上一节所述,我们通过声明头文件驱动 16×2 开始我们的代码字母数字液晶屏幕。您可以跳过此部分,在页面末尾获取完全煮熟并提供的代码,但请耐心等待我们将代码分成小部分并尝试解释。

第一个文件已经定义,我们继续声明变量,我们将在代码中使用它来计算电压和电流。此外,在本节中,我们必须定义驱动程序 LCD 将用于提供 PWM 从电池和电阻器中输出并读取模拟电压的引脚。

#include <LiquidCrystal.h> //Default Arduino LCD Librarey is included const int rs = 3, en = 4, d4 = 5, d5 = 6, d6 = 7, d7 = 8; //Mention the pin number for LCD connection LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
const float BAT_LOW = 3.0;    //to define the low voltage limit of the Li Ion cell
const float BAT_HIGH = 4.5;   //to define the high voltage limit of the cell
const int MOSFET_Pin=9;
const int PWM_VALUE=150;
unsigned long previousMillis = 0; // Previous time in ms
unsigned long millisPassed = 0;  // Current time in ms
float Capacity=0;     //Variable to define the battery Capacity
float Resistor=2.2;   // Load Resistor Value is 2.2ohms
float mA;

现在进入设置部分,如果您想让您的 Arduino 一直连接到您的 PC 并使用串行监视器监控进度并在此处初始化 LCD 屏幕。它还将在屏幕上显示一条欢迎消息“电池容量测试器电路”3 秒钟。

void setup()
{ 
        
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.setCursor(0, 0); // Set the cursor on the first column and first row.
  lcd.print("Battery Capacity");
  lcd.setCursor(0,1);
  lcd.print("Tester Circuit");
  delay(3000);
  lcd.clear();
}

精度改进

无论如何,这是一种读取电压和电流的好方法,但它并不完美。实际电压和测得的 ADC 电压之间的关系不是线性的,这将导致电压和电流测量出现一些误差。

如果您想提高结果的准确性,则必须在图表上绘制通过应用各种已知电压源获得的 ADC 值,然后使用您喜欢的任何方法从中确定乘数方程。这样,准确性将得到提高,并且您将非常接近实际结果。

此外,我们使用的 MOSFET 不是逻辑电平 MOSFET,因此它需要超过 7V 才能完全打开电流通道,如果我们直接对其施加 5V,电流读数将不准确。但是您可以使用逻辑电平 IRL520N N 沟道 MOSFET 来消除 12V 电源的使用,并直接使用 Arduino 的 5V 逻辑电平。

构建和测试电路

我通过 DC Barrel Jack 连接器为恒定负载电流电路提供了 12V 电源,然后在 LM7805 的帮助下,为 Nano 和 LCD 屏幕提供了 5V。现在给电路通电并调节微调电位器来设置液晶屏的对比度,此时你应该在液晶屏上看到欢迎信息,然后如果电池的电压电平在工作范围内,那么当前- 电池的电压和电流将显示在那里。

电路图和代码

已上传,可在个人主页中查看。

标签: 热量会提高电阻吗arduino单片机电阻正负极22000uf螺丝型大型电容连接器amp端子201微调电阻电阻130k能通电吗

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台