在这篇文章中,我们将构建一个基于Arduino的电池水平指示器,其中一系列的6个led显示电池水平。如果你对监测和维护你的12V电池感兴趣,这个电路可能会变得方便。
为什么电池电量监测是至关重要的
所有的电池都有一定的电压极限来放电,如果超过了规定的电压极限,电池的寿命就会大幅度降低。
作为电子爱好者,我们可能都有一个电池来测试我们的原型电路。因为在实验过程中我们只关注原型,所以不太关心电池。
被提议的电池充电器电路将向您展示电池中剩余的能量,该电路可以连接到电池,而您对电路进行原型。当该电路指示电池电量低时,您可以将电池充电。该电路有6个LED,一个LED发光的时间表示电池的电压电平。
如果您的电池已满,最左侧LED发光,电池已死亡或即将死,最正确的LED发光。
这个怎么运作
电路由Arduino组成,Arduino是系统的大脑,它是一个电位分压器,帮助Arduino对输入电压进行采样。一个预先设定的电阻是用来校准上述设置。6个led的系列将指示电池的水平。
校准了指标
LED与电池电量的关系如下:
LED1 - 100%到80%
LED2 - 80%至60%
LED3 - 60% - 40%
LED4 - 40% - 20%
LED5 - 20% - 5%
LED6 - <5%(给电池充电)
Arduino测量的电压范围从12.70V到11.90V。从充电器断开后,充满电的电池电压应高于12.70V。对于12V密封铅酸电池,低电压不能低于11.90V。
作者的原型:
程序代码:
//-------- 项目由R.Girish ---------//
int analogInput = 0;
int f = 2;
int e = 3;
int d = 4;
int c = 5;
int b = 6;
int = 7;
int s = 13;
vout = 0.0;
浮动vin = 0.0;
float R1 = 100000;
浮动R2 = 10000;
int值= 0;
无效的设置()
{
Serial.begin (9600);
pinMode (analogInput、输入);
pinMode(年代,输出);
pinMode(输出);
PinMode(B,输出);
pinMode (c、输出);
pinMode (d、输出);
pinMode (e,输出);
pinMode (f,输出);
digitalWrite(年代,低);
digitalWrite(高);
延迟(500);
digitalWrite (b、高);
延迟(500);
digitalWrite (c、高);
延迟(500);
digitalWrite (d、高);
延迟(500);
digitalWrite (e、高);
延迟(500);
DigitalWrite(F,高);
延迟(500);
digitalWrite(低);
DigitalWrite(B,低);
digitalWrite (c、低);
digitalWrite (d、低);
digitalWrite (e,低);
DigitalWrite(F,低);
}
无效循环()
{
值= analogRead (analogInput);
Vout = (value * 5.0) / 1024;
vin = vout /(R2/(R1+R2));
系列。println("输入电压= ");
以(vin);
如果(vin > 12.46) {digitalWrite(一、高);}
其他{digitalWrite(低);}
if(vin<=12.46 && vin>12.28) {digitalWrite(b,HIGH);}
其他{digitalWrite (b,低);}
if(vin<=12.28 && vin>12.12) {digitalWrite(c,HIGH);}
其他{digitalWrite (c,低);}
if(vin<=12.12 && vin>11.98) {digitalWrite(d,HIGH);}
否则{digitalwrite(d,low);}
如果(vin < = 11.98 & & vin > 11.90) {digitalWrite (e、高);}
其他{digitalWrite (e,低);}
如果(vin < = 11.90) {digitalWrite (f,高);}
否则{digitalwrite(f,low);}
延迟(2000);
}
//-------- 项目由R.Girish ---------//
如何设置电路:
这个Arduino 6 LED电池电量指示电路的校准必须小心进行,如果没有正确校准,电路将显示不正确的电池电压水平。
当您打开电路时,它首先使用LED测试开始,其中LED在某些延迟中顺序向上亮起。这可能会帮助您在安排LED时调试错误。
1)设置你的可变电源的电压精确到12.50V。
2)打开串口监视器。
3)旋转预先设置的电阻时钟方向或反时钟方向,并把读数到12.50V。
4)现在,减少可变电源到12.00V,串行监视器上的读数应该显示相同或非常接近12.00V
5)现在,将电压提高到13.00V,串行监视器上的读数还应显示相同或非常接近。
6)同时,当你增加或减少电压,每个LED应该打开/关闭不同的电压水平。
一旦成功完成上述步骤,您的电池电平指示灯将准备好用于预期目的。
添加自动切断
上面解释的Arduino电池电量指示电路可以进一步增强,包括一个自动电池满电切断设施。
下图显示了如何在现有设计中实现这一点:
Fatin Nabihah Sairy.说
你好,swagatam先生,我需要做我的最后一年的项目。我需要做电池指示灯使用蓝牙和wifi。我的问题是,我需要做一个vdr,以避免更多的电压供应到我的arduino+LCD+蓝牙模块。我希望你能帮助我
Swagatam说
Hi fatatin,您可以使用7805 IC稳压器来确保Arduino的5V安全。
Faizan Hamayun说
你好;
我一直在寻找一种电路,可以检测如果锂离子4.2v可充电电池是在故障,我的意思是消耗非常少的电流,如10-100mA,但没有得到适当的充电电流。领导指示。
Swagatam说
你好,检测这个的唯一方法可以通过一个电流感应电阻和一个电压放大电路,这将表明是否电池消耗约为1C电流或没有......LM3915 IC看起来是一个候选人,使这个系统。
Faizan Hamayun说
这可以使用Arduino与我想要达到结果的少数部分完成。
Faizan Hamayun说
我只需要一个导致指示如此小的opamp,如lm393可以使用?。请建议一个电路。
Swagatam说
你可以尝试下面的概念,只保留一个而不是显示的4
//www.addme-blog.com/2015/04/battery-current-indicator-circuit.html
Swagatam说
......。将LED阴极连接到输入电源接地线。
LED会为良好的电池和关闭的坏电池…为相反的响应连接LED通过运放输出和正线。
(Akhil辛格说
您能为太阳能电池电量充电电路提供电路,充电12V 7AH电池
Swagatam说
你可以做以下电路:
https://www.homemade-circulay.com/2012/04/how-to-make-solar-battery-charger.html.
调整10K为电池准确获得14V,并在1放大器时使用15V的输入
艾萨克umoh说
晚上好……请问,先生,我怎样才能使led灯一直亮着,但当电池电量不足时却关闭
Faizan Hamayun说
如果一个死电池连接到这个电路,但电池也连接到充电电路,我们怎么能得到低电池指示?由于充电器输出高于13v,所以绿色LED ON代替红色LED。要做什么吗?
Swagatam说
当一个好的电池连接供电电压将立即下降,并稳定下来的电池放电水平,但对于一个死电池,这可能不会发生,这将表明一些问题的电池。
gr说
嗨,Faizan
不要用这个电路给你的电池充电,它不会显示正确的电池水平。
的问候。
Atuh加布里埃尔说
请您帮我看一下12伏自动切断电池充电器的电路图
Swagatam说
阿图,你可以尝试以下设计:
https://www.homemade-circules.com/opamp-low-high-battery-charger/
Faizan Hamayun说
你好,我已经校准了锂离子电池充电器的电路,我已经连接充电器,当没有电池时,它显示4.2v,当一个3.7v电池连接到它时,串行监视器显示电压超过4.7v怎么办?为什么它不显示正确的充电电压或我需要改变公式?
Swagatam说
你好,Mr. GR将在这里看到你的问题,并适当地回答....请耐心等待。
gr说
嗨,Faizan,
该电路不是为锂离子电池设计的,它是为12V SLA电池设计的。
该代码是为12V电池编写的,不会监测3.7V锂离子电池。
不要用这个电路给你的电池充电。它被设计成只在放电时监测电池。
请仔细阅读这篇文章,这样可以避免大部分关于这个项目的误解。
问候
Faizan Hamayun说
它也增加了电池电压
未知的说
先生,我做了相同的电路,但串行监视器显示20+读数,没有电池。
而且只使用二次电池。
gr说
嗨未知...... .lol
请详细说明您的问题,请以其他人可以理解的方式评论您的问题。
问候
Faizan Hamayun说
焦急地等待着答复。
Swagatam说
请参考您之前的评论,以便回复....
Faizan Hamayun说
好的,如果我校准锂电池,但一旦充电电路连接,将做什么变化来检测电池的原始电压在充电?相反,它将电池电压与充电电路电压相加。
gr说
嗨faizan,
你不能校准电路的锂离子电池,因为程序是为12V电池编写的。
这就是为什么当你连接充电器时,你会在串行监视器上得到不寻常的电压读数。
如果你正在寻找基于锂离子的项目,这不是正确的一个。
问候
Gizem Yılmaz说
你好,
我需要为我的实习项目做电池级电路。输入端为5v,有五个led。例如,如果有1v,只有一个led会亮,然后为2v的前两个,你能帮我这个吗?
Swagatam说
你好,Mr, GR会给你更好的建议,我会尽快将问题转发给他....
gr说
嗨,Gizem
你确定你的设计,因为一个5V (4.5v等)电池不应该被允许下降到1伏,大多数电路将只工作在3V以上。
如果你想让我按照你的要求进行,我会为你设计一个电路。
问候
Dinusha说
亲爱的先生,
是否只使用电池端电压作为输入?我可以使用这个独立的光伏系统(12V电池监测)?因为我想断开电池从负载或pv阵列在所需的充电水平。
Swagatam说
亲爱的Dinusha,
是的,你可以单独使用,只监控电池,监控下的电池可以给Arduino充电。
Dinusha说
谢谢先生。
其实我想设计一个控制电路,为独立光伏系统供电12V直流总线。该控制器必须具有MPPT(带P & O算法)。正常情况下,系统在12V电池过充过放电时断开。
我想设计一个控制器在电池充电大于95%时断开MPPT,然后跟踪电压无MPPT直到100%充电。如果充电水平低于95%,则重新连接MPPT。它可以通过使用arduino。?
{我想防止在空载时切断MPPT的问题,并平稳地解决这个断开和重新连接的问题}
Swagatam说
Dinuasha,如果你的要求是将充电阈值控制在100%和95%的范围内,那么我认为用一个简单的运放电路就可以做到,对于这样一个简单的操作来说,使用Arduino就有点过分了。
乔尔wanjala说
如果我想在液晶显示器上以百分比的形式显示电池水平,而不是使用led,我能做什么??请建议
赃物说
gr先生很快会回答你的问题……
gr说
嗨,乔,
让我对此进行一些研究,如果可以读取0到100%电压范围。我会很快发布一个设计。
问候
PolloB说
先生,请提供PIC单片机的12V电池容量led液位表,并提供充电控制。谢谢
赃物说
嗨,Pollo,目前我没有这个设计,如果我找到一个我会让你知道…
Anupriya说
嗨,在此,电压电平以LED的形式表示。如果可以在数字格式中获得电压级别
赃物说
嗨,它将需要修改整个代码,可能不可能在此刻…
Anupriya说
如果有可能,请你告诉我
赃物说
我将不得不为定制联系程序员,因此将是一个付费的服务。
阿奴说
我们得到54.59作为输入电压显示在监视器中
赃物说
对不起,我无法正确理解您的问题,请详细解释一下
艾伦说
您好主席先生,请建议您自己设计的电路,可通过不仅仅是仅使用由于火花而轻松地磨损的启动停止来控制3相电动机,如果我可以让它成为无线感谢,我可以进一步询问。
艾伦问:吉尔勒莫说
你好先生,我可以再次请帮忙,帮助我设计一个电路,让我用遥控器控制我的三相电机,谢谢你和上帝保佑,...
赃物说
你好,Allan,我的网站上已经有一篇相关的文章,你可以参考并尝试一下:
https://www.homemade-circuars.com/3-Phase-incuction-motor-speed/
一旦你成功地建立了上面解释的基本模型,远程控制就可以集成了。
sheraz艾哈迈德说
你好先生!亲爱的爵士如何检测到12V电池和充电器的存在,称12V-10AMP SMPS在12V电池使用Arduino同时充电?我的问题是,如果Arduino ADC通道在电池端子之间使用LED显示器连接到电池之间的电压,那么电路是正确的,但如果我们断开充电器的电池,Arduino将如何检测电池终端的缺失充电器端子?我的意思是Arduino如何在电池终端中检测到充电器的存在或不存在?
赃物说
Hi Sheraz,当你将一个外部电压连接到电池上时,外部电压会下沉并与电池电压合并成为一个共同电压。
假设你的电池在11伏特,如果你把一个12伏特的电池连接到它,那么这个12伏特将立即下降到11伏特的电池端子,然后电池将开始吸收这个电压,并充电,直到它的端子电压达到12伏特。一旦发生这种情况,充电将停止,只要两个电源连接在一起,它们将继续在这个水平上。
同样,如果连接14V,则在连接充电器时,最终电压将在14V下沉淀。
所以区分充电器是否连接的唯一方法是通过一个电流传感器阶段,因为电池将开始从充电器中吸取电流,而它正在充电,这可以用来监测充电器输入的存在或缺席。
sheraz艾哈迈德说
先生,我将实现10amp-12v的SMPS设计,使用atmega8,通过放置4个led为25%,50%,75%和最终100%,我将使用atmega8 adc通道显示这个百分比,就像你在这篇文章中展示的电路,我认为如果我们通过使用一些调节器从充电器终端获得5v来供电atmega8电路,那么我们将仍然需要使用电流感应电路来知道电池是否在充电。在没有电流检测电路的情况下,由于控制器可以检测到充电器末端的12伏电压,所以显示器也显示电池已100%充电。你说得对,先生,利用电流感应电路,这个问题就可以解决了。
赃物说
是的,Sheraz,我认为下面的概念可以修改,以实现基于电流的切断。
//www.addme-blog.com/2015/04/battery-current-indicator-circuit.html
梅尔基奥说
HY先生先生
我有家庭工作要使用Arduino Uno,MOSFET /晶体管和电压传感器进行关于控制器配料/自动充电的项目。
充电和放电....期间,我仍然对arduino程序代码感到困惑
愿你帮我…
Swagatam说
Hi Melchior,通过集成一个mosfet级和Arduino适当选择的输出,上面的电路可以很容易地转换成一个自动切断系统。
让我知道,如果你想让我做这个修改在上述电路??
梅尔基奥说
非常感谢你的帮助…
我先尝试了这个程序……
如果还有问题,我会再咨询您……
再来一次
非常感谢你的好意,帮助了我
Swagatam说
好的,没问题!
sheraz说
你好先生!亲爱的先生,我想添加迟滞特性到这个电池监视器,使电池上阈值水平(截止点)= 14.4v,下阈值水平(充电起点)= 12v通过添加一个继电器到电池充电器与相同的led显示器使用arduino。我的问题是如何处理代码添加迟滞特性,以便当电池充满我不开始充电,直到它回到12v?
Swagatam说
嗨Sheraz,实际上可能不需要代码修改,可以通过外部Opamp电路轻松完成,如果可能,我会尽快更新......
诚实说
先生,我打算为LED灯构建电池百分比监视器。这有多可能,我怎么能走下去?
Swagatam说
你可以在你的应用中使用上面解释的相同的电路
Vysakh说
长官,我能在同一个arduino上使用nrf模块代码和这个代码吗
Swagatam说
对不起Vysakh,我不知道它。
鞍瓦尔说
先生,你能不能同时用Arduino读取两个电池的电压?
Swagatam说
安瓦尔,对不起,我不是很确定!
鞍瓦尔说
好的,先生,谢谢你的答案
Sairam.说
先生,这个电路可以测量12V锂或锂离子电池的电池寿命
Swagatam说
是的,它可以用于测量任何12v电池的电池电平
阿比说
你好先生,
我们可以用LCD来代替led来显示电池充电的百分比,也可以自动控制电池的充电,比如如果它变成100%自动停止充电,当它变成10%就开始充电。
Swagatam说
你好Abhi,我不是很擅长Arduino编码,所以我对LCD集成不太了解。对于电池自动切断,各个LED级都可以配置一个继电器驱动级对于所需的操作
Chavan自治Balasaheb说
你好先生,
我是丁莎·乌兰。
我有一个问题??
在电路中330欧姆电阻的作用是什么?
Swagatam说
斯瓦拉杰,这是为了防止led过电流。
Chavan自治Balasaheb说
谢谢!
你能给我建议3.7v 2.6Ah锂离子电池的电平指示电路吗?
项目细节:-我们做了一个电动自行车充电站项目。
在这个项目中,我们开发了一个电池充电电路。
这是一个原型项目。我们使用的是锂离子(3.7v, 2.6Ah)电池。是否可以使用Arduino Uno来保护电池不过度充电?或
我们可以使用Arduino Uno来展示电池收费多少钱?
当电池充满电后,电池会在Arduino Uno的帮助下自动断开电源。这是否可能通过使用Arduino Uno。
请建议我们正确的方式..
Swagatam说
你可以尝试相同的电路,这是解释在上面的文章,只是更换电池与您的3.7V锂离子,并更换电源输入与6V 1安培充电电源。确保为Arduino提供单独的5v电源。
对于自动切割,您可以使用最近更新的设计
Chavan自治Balasaheb说
谢谢你!
摩根泰勒说
嗨,斯瓦格塔姆,谢谢你的电池电量指示器。我想用这个来做个调整。我不知道如何写程序,但我需要如果一个9伏电池,我需要它与5个LED的工作。我还需要LED能够与一个从100%亮到0%(完全黑暗)的电位器暗淡。最后一件事,我想知道这是否可以与Arduino Nano。那样会更好。你能帮我吗?我将永远感激你。保持良好的工作。
Swagatam说
谢谢你Tyler,但是我的Arduino知识也不够好,所以我无法指导你所需的代码修改和相关信息!!
Nurlina Azmi.说
你好,先生。我叫Nurlina。
我有一个问题。
10k预设电阻的目的是什么?(对不起,我刚开始学习这个)。
我希望使用这个电路为一个3.7v的锂离子电池容量20000毫安,我应该改变编码的哪一部分,以使我的电路功能良好?
Swagatam说
你好Nurlina, perset是用来校准led的,以便他们准确地读取不同的电压水平。
对不起,关于编码我没有太多的想法!
Nurlina Azmi.说
谢谢你回答我的第一个问题,但实际上我还有几个问题要问。
1) 100K电阻的作用是什么?
2)我可以使用320欧姆电阻代替led,如果我没有任何330欧姆?
3)为什么您在校准期间为LED校准到您的编程中的LED期间设置了不同的电压值?
Swagatam说
100K用于形成具有10K预设的潜在分频器,用于向特定的Arduino引脚馈送电压参考电平
320欧姆也可以
这篇文章是另一个作者写的,所以我不能提出多少修改意见。你必须建造它并实际测试它,以了解电路的精确工作
PRASANT KUMAR.说
请告诉我,它是否适用于96V电池系统。如果是,请提出需要做的更改。这对我很有帮助。
Swagatam说
我不推荐这种电路用于监测96V电池
Alamgir说
嗨Swagatam
你建议监控48 V电池吗?
Swagatam说
嗨,Alamgir,我不建议对上述概念进行48V充电。