yaboPP电子
项目

创建Arduino控制的电池充电器

February 17, 2016经过jason Poel Smith

在这个项目中,我们使用Arduino和附着的充电电路来控制NIMH可充电电池的充电。

Arduino和附件充电电路可用于监视和控制NIMH可充电电池的充电,这是:以下方法:

完成的设备

可充电电池是为便携式电子设备供电的好方法。yabosports官网他们可以为您节省很多钱,并且在正确回收时,它们对环境会更好。为了充分利用可充电电池,需要充电。这意味着您需要一个好的充电器。您可以在商业充电器上花费很多钱,但是为自己建造一个钱会更有趣。因此,这是如何构建Arduino控制的电池充电器的方法。

首先,重要的是要指出,没有适合所有可充电电池的通用充电方法。每种类型的电池都使用不同的化学过程来使其起作用。结果,每种电池都需要以不同的方式充电。我们无法涵盖本文中的所有电池类型和充电方法。因此,为简单起见,我们将专注于最常见的AA可充电电池镍金属氢化物(NIMH)。

一种Fritzing diagram of the project

该项目的示意图

materials:

parts in order from left to right

  • 一种rduino Microcontroller
  • 一种一种battery Holder
  • nimh aa电池
  • 10欧姆电阻器(至少额定5瓦)
  • 1 MOHM电阻
  • 1 µF电容器
  • IRF510 MOSFET
  • TMP36温度传感器
  • 5V Regulated Power Supply
  • prototyping Breadboard
  • 跳线

如何为NIMH AA电池充电

Increasing the C-rate will charge the battery faster, but will increase the risk of damaging it

there are a lot of different ways that you can charge a NiMH battery. The method that you use depends mostly on how fast you want to charge your battery. The Charge rate (or C-rate) is measured relative to the capacity of the battery. If your battery has a capacity of 2500mAh and you charge it with a current of 2500 mA, then you are charging it at a rate of 1C. If you charge it with a current of 250 mA, then you are charging it at a rate of C/10.

快速充电电池(以更高的C/10速率充电)时,您需要仔细监视电池的电压和温度,以确保您不会过度充电。这会严重损坏您的电池。但是,当您缓慢地给电池充电(以C/10速度或更低的速度)时,如果您不小心收取过度充电,损坏电池的可能性要小得多。因此,缓慢的充电方法通常被认为是更安全的,并且有助于最大程度地发挥电池寿命。因此,对于我的DIY电池充电器,我决定使用C/10的充电率。

the Charging Circuit

该充电器的电路设计是基本的Arduino控制电源。该电路由5伏调节的电压源提供动力,例如AC适配器或ATX计算机电源。由于当前的限制,大多数USB端口都不适合该项目。5V源通过10欧姆电阻和电源充电电池mOSFET。MOSFET设置了允许多少电流流入电池中。将电阻作为监视电流的一种简单方法。这是通过将每个端子连接到Arduino上的模拟输入引脚并测量每一侧的电压来完成的。MOSFET由pWM output钉在arduino上。脉冲宽度调制信号的脉冲通过1M电阻和1 µF电容器将脉冲宽度调制信号的脉冲平滑为稳定的电压信号。该电路允许Arduino监视和控制流入电池的电流。

the Temperature Sensor

温度传感器可防止电池过度充电并引起安全危险

作为额外的预防措施,我包括一个TMP36温度传感器来监视电池的温度。该传感器输出直接对应温度的信号电压。因此,它不需要像Thermistor那样校准或平衡。传感器通过在电池外壳的背面钻一个孔并将传感器粘在适当的位置,以使其在安装时坐在电池侧。然后,将传感器的引脚连接到Arduino上的5V,GND和类似于输入引脚。

放置在面包板上之前和之后的AA电池持有人

编码

该项目的代码非常直接。代码顶部有一些变量,可以通过输入电池容量额定值以及电阻器的确切电阻来自定义充电器。也有有关充电器安全阈值的变量。电池的最大允许电压设置为1.6伏。电池的最高温度设置为35摄氏度。最大充电时间设置为13小时。如果超过这些安全阈值中的任何一个,则关闭充电器。

在代码的主体中,您会观察到系统不断测量电阻器端子的电压。这用于计算电池的端子电压和流入电池的电流。将该电流与设置为C/10的目标电流进行比较。如果计算出的电流与目标电流不同10 mA,则系统会自动调整输出以纠正它。

the Arduino uses the serial monitor tool to display all the current data. If you wish to monitor the performance of your charger, you can connect the Arduino to the USB port on your computer, but this is not necessary as the Arduino is powered by the 5V power supply of the charger.

您可以在下面找到可下载的完整代码版本:

arduino_controlled_battery_charger_code.zip

既然您已经拥有知识,那么您就可以使用自己的充电器开始。确保监视您的充电率并使用安全协议,因为电池充电可能很危险。

为自己自己尝试一下!Get the BOM.

49条评论
  • t
    TheGladiator 2016年2月22日
  • p
    菲尔·S February 26, 2016

    现在,如果您只能为12V铅酸做一个吗?
    我有一个CTEK“智能”充电器Tha经历了大约八个阶段,从硫化到维护充电。
    我经常认为那会成为一个不错的项目。
    无论如何,做得很好,可能比许多廉价的人要好得多。

    像。 回复
    • m
      marsu4444 2021年6月12日
      亲爱的菲尔·S,我看上去很像您的同一件事。我参加了FWI(小岛)的Fablab,我们确实需要改变。请告诉我您是否在该项目中取得了进展?我们的CTEK确实会在一段时间后失败,需要维修。将其程序注入Arduino将是能够进行NIMH,铅酸或锂/离子的通用充电器的解决方案...请告知,自2016年必须取得进展以来。#desulfuritation #maintenancecharging的八个阶段
      像。 回复