在这篇文章中,我们将构建一个基于Arduino的电池电量指示器,其中一系列的6个led显示电池的电量。如果你对监控和维护你的12V电池感兴趣,这个电路可能会变得很方便。
电池电量监测为何至关重要
所有电池都有一定的电压限制排放,如果超出规定的限制,电池的寿命将大幅减少。
作为电子发烧友,我们都可能有一块电池来测试我们的原型电路。因为我们在实验中专注于原型,所以对电池的关注较少。
被提议的电池充电器电路将向您展示电池中剩余的能量,该电路可以连接到电池,而您对电路进行原型。当该电路指示电池电量低时,您可以将电池充电。该电路有6个LED,一个LED发光的时间表示电池的电压电平。
如果您的电池已满,最左侧LED发光,电池已死亡或即将死,最正确的LED发光。
这个怎么运作
该电路由Arduino组成,Arduino是系统的大脑,它是一个电位分压器,帮助Arduino采样输入电压。一个预先设置的电阻器被用来校准上述设置。该系列的6个led将指示电池的水平。
校准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(模拟算,输入);
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,低);
}
void循环()
{
值= analogRead (analogInput);
Vout =(值* 5.0)/ 1024;
vin = vout /(R2/(R1+R2));
系列。println("输入电压= ");
以(vin);
如果(vin > 12.46) {digitalWrite(一、高);}
否则{digitalwrite(a,low);}
if(vin <= 12.46 && Vin> 12.28){DigitalWrite(B,高);}
其他{digitalWrite (b,低);}
if(vin <= 12.28 && vin> 12.12){digitewrite(c,high);}
否则{digitalwrite(c,low);}
if(vin<=12.12 && vin>11.98) {digitalWrite(d,HIGH);}
否则{digitalwrite(d,low);}
if(vin <= 11.98 && vin> 11.90){digitewrite(e,高);}
其他{digitalWrite (e,低);}
if(vin <= 11.90){digitewrite(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电池电量指示电路可以通过包括一个电池充满电自动切断设施进一步增强。
下图显示了如何在现有设计中实现这一点:
请告诉我,它是否适用于96V电池系统。如果是,请建议需要做的更改。这对我很有帮助。
我不推荐这个电路用于监控96V电池
嗨Swagatam
你建议监控48 V电池吗?
嗨,Alamgir,我不推荐48V充电的上述概念。
你好,先生。我叫Nurlina。
我有一个问题。
10k预设电阻的目的是什么?(对不起,我刚开始学习这个)。
我想把这个电路用在一个容量为20000mAh的3.7v锂离子电池上,为了使电路正常工作,我应该改变编码的哪一部分?
Hello Nullina,Perset是用于校准LED,使它们精确地读取不同的电压电平。
对不起,关于编码我没有太多想法!
谢谢你回答我的第一个问题,但我实际上还有几个要问。
1) 100K电阻器的作用是什么?
2)我可以使用320欧姆电阻代替led如果我没有任何330欧姆?
3)为什么您在校准期间为LED校准到您的编程中的LED期间设置了不同的电压值?
100K用于形成具有10K预设的潜在分频器,用于向特定的Arduino引脚馈送电压参考电平
320欧姆也可以
这篇文章是另一位作者写的,所以我对修改建议不多。你必须制造它并实际测试它,以了解电路的精确工作原理
嗨,Swagatam,谢谢你的电池电量指示器。我想用这个稍微调整一下。我不知道如何写程序,但我需要如果9伏电池,我需要它与5个LED的工作。我还需要LED的电位器可以从100%亮到0%(完全黑暗)。最后一件事,我想知道这是否可以与Arduino Nano一起工作。那就更好了。你能帮我吗?我将永远感激你。继续努力。
谢谢Tyler,但是我的Arduino知识也不够好,所以我无法指导你进行所需的代码修改和相关信息!!
你好先生,
我是丁莎·乌兰。
我有一个问题??
330欧姆电阻在电路中起什么作用??
Swaraj,这是为了保护led不受过电流的影响。
谢谢!
您能否建议我的电池电量指示器电路3.7V 2.6Ah离子电池电池?
-我们做了一个电动自行车充电站项目。
在这个项目中,我们开发了一个电池充电电路。
这是一个原型项目。我们使用锂离子电池(3.7v, 2.6Ah)。我们可以用Arduino Uno来保护电池不过度充电吗?或
我们可以使用Arduino Uno来展示电池收费多少钱?
当电池充满电后,在Arduino Uno的帮助下,电池会自动断开电源。这是否可能通过Arduino Uno。
请建议我们正确的方式..
你可以尝试上面文章中解释的相同的电路,只需要用你的3.7V锂离子电池替换电池,用6v1安培充电电源替换电源输入。请确保为Arduino提供单独的5v电源。
对于自动切割,您可以使用最后更新的设计
谢谢你!
你好先生,
我们可以使用液晶显示器来显示电池的充电百分比,也可以自动控制电池的充电,比如如果电池变成100%,就自动停止充电,当电池变成10%,就开始充电。
Hi Abhi,我不太会Arduino编码,所以对LCD集成不是很了解。对于电池自动切断,各LED级可配置一个继电器驱动阶段所需的操作
先生,这个电路可以测量12V锂电池或锂离子电池的电池寿命
是的,它可用于测量任何12 V电池的电池电量
主席先生,如果您想与Arduino同时读取2个单独的电池的电压吗?
安瓦尔,对不起,我不是很确定!
好的,先生,谢谢你的答案
先生,我打算为LED灯构建电池百分比监视器。这有多可能,我怎么能走下去?
你可以在你的应用程序中使用上面解释的相同电路
先生,我可以在同一个arduino中使用NRF模块代码和此代码
对不起Vysakh,我不知道它。
你好先生!我想通过arduino在电池充电器上添加一个继电器,使电池的上阈值(截止点)= 14.4v,下阈值(充电起点)= 12v。我的问题是如何处理代码添加迟滞功能,以便当电池充满它,我不开始充电,直到它回到12v?
嗨Sheraz,实际上可能不需要代码修改,可以通过外部Opamp电路轻松完成,如果可能,我会尽快更新......
HY先生先生
我有家庭工作要使用Arduino Uno,MOSFET /晶体管和电压传感器进行关于控制器配料/自动充电的项目。
在charger and discharge ....的时候,我还是被arduino程序代码搞糊涂了
希望你能帮助我……
Hi Melchior, the above circuit can be easily converted into an auto cut-off system by integrating a mosfet stage with the appropriately selected outputs from the Arduino.
如果您想让我在上面的电路中执行此修改,请告诉我?
非常感谢你的帮助…
我先尝试过这个程序......
如果还有问题,我会再咨询您……
再来一次
非常感谢你的好意,帮助了我
好的,没问题!
你好先生!亲爱的爵士如何检测到12V电池和充电器的存在,称12V-10AMP SMPS在12V电池使用Arduino同时充电?我的问题是,如果Arduino ADC通道在电池端子之间使用LED显示器连接到电池之间的电压,那么电路是正确的,但如果我们断开充电器的电池,Arduino将如何检测电池终端的缺失充电器端子?我的意思是Arduino如何在电池终端中检测到充电器的存在或不存在?
嗨Sheraz,当您将外部电压连接到电池时,外部电压将吸收并合并电池电压以成为公共电压。
假设你的电池是11V,如果你连接一个12V,那么这个12V会立即下降到11V通过电池端子,然后电池将开始吸收这个电压并充电,直到它的端子电压达到12V。一旦发生这种情况,充电将停止,只要它们连接在一起,两个源将继续保持这个水平。
同样,如果连接14V,则在连接充电器时,最终电压将在14V下沉淀。
因此,区分充电器是否连接的唯一方法是通过电流传感器阶段,因为电池将开始从充电器吸取电流,当它被充电,这可以用来监测是否有充电器输入。
先生,我将使用atmega8实现10安培-12v的SMPS设计,并使用额外的自动截止电路,通过放置4个led分别为25%、50%、75%和100%,我将使用atmega8 adc通道显示这个百分比,就像你在这篇文章中介绍的电路,我认为如果我们使用一些调节器从充电器终端得到5v来给atmega8电路供电,那么我们仍然必须使用电流检测电路来知道电池是否在充电。如果没有电流检测电路,显示器也会显示电池是100%充电的,因为如果电池断开,控制器可能会在充电器终端检测到12v伏特。先生,你是对的,使用电流感应电路可以解决这个问题。
是的,Sheraz,我认为下面的概念可以修改,以实现基于电流的切断。
//www.addme-blog.com/2015/04/battery-current-indicator-circuit.html
你好先生,我可以再次请帮忙,帮助我设计一个电路,让我用遥控器控制我的三相电机,谢谢你和上帝保佑,...
你好,艾伦,我已经在我的网站上有一个相关的帖子,你可以参考和尝试它:
https://www.homemade-circuars.com/3-Phase-incuction-motor-speed/
一旦您成功地构建了如上所述的基本模型,就可以集成远程控制。
您好主席先生,请建议您自己设计的电路,可通过不仅仅是仅使用由于火花而轻松地磨损的启动停止来控制3相电动机,如果我可以让它成为无线感谢,我可以进一步询问。
我们得到54.59作为输入电压,这在监视器上显示出来
对不起,我不能正确理解你的问题,请详细解释
如果有可能,请你告诉我
我将不得不联系程序员进行定制,因此将是一个付费服务。
嗨,在此,电压电平以LED的形式表示。如果可以在数字格式中获得电压级别
嗨,它将需要修改整个代码,目前可能是不可能的......
先生,请给PIC单片机,12V电池容量,带充电控制的液位仪,谢谢
嗨,Pollo,目前我没有这个设计,如果我找到一个我会告诉你…
如果我想在液晶显示器上以百分比形式显示电池电量,而不是使用led,我该怎么办?请建议
Mr.GR很快就会回答你的问题……
嗨,乔,
让我对此进行一些研究,如果可以读取0到100%电压范围。我会很快发布一个设计。
问候
谢谢先生。
实际上我想设计一个用于独立PV系统的控制器电路,以激励12V直流总线。该控制器必须具有MPPT(具有P&O算法)。通常系统在过充电和过度放电时断开连接12V电池。
我想设计一个控制器在电池充电大于95%时断开MPPT,然后在没有MPPT的情况下跟踪电压,直到100%充电。如果充电水平低于95%,则再次连接MPPT。它能用arduino做这个吗??
{我想防止在空载中切断MPPT的问题,并在顺利地修复此断开和重新连接}
Dinuasha,如果你的要求是将充电阈值保持在100%和95%的范围内,那么我认为可以用一个简单的opamp电路来完成,对于这样一个简单的操作,使用Arduino会是过度的。
亲爱的先生,
是否只使用电池端电压作为输入?我可以使用这个独立的光伏系统(12V电池监控)?因为我想断开电池从负载或光伏阵列所需的充电水平。
亲爱的Dinusha,
是的,你可以单独使用它来监控电池,Arduino可以从监控下的电池供电。
你好,
我需要为我的实习项目做电池级电路。输入端为5v,有5个led。例如,如果有1v,只有一个led会亮,然后2v的前两个,你能帮我吗?
你好,Mr, GR会给你更好的建议,我会尽快将问题转发给他....
嗨,gizem.
您是否确定您的设计,因为5V(4.5V等)电池不应被允许跌至1伏,大部分电路通常仅在3V上方工作。
如果您希望我继续使用您的要求,我将为您设计一个电路。
问候
嗨faizan,
由于程序仅为12V Battries编写了锂离子电池电路,因此无法校准电路。
这就是为什么当你连接充电器时,串行监视器上的电压读数不寻常。
如果你正在寻找基于锂离子的项目,这不是正确的一个。
问候
好的,如果我校准锂电池,但是一旦充电电路连接起来,要做什么改变来检测充电下的电池的原始电压?相反,它将电池电压与充电电路电压相加。
焦急地等待回复。
请参阅上面的上面的评论,以获取回复......
先生,我做的电路和上面一样,但串行显示器显示20+读数,没有电池。
并且只使用二次电池。
嗨未知...... .lol
请详细说明您的问题,请以其他人可以理解的方式评论您的问题。
问候
它也增加了电池电压
你好,我已经校准了锂离子电池充电器的电路,我已经连接了充电器,当没有电池时,它显示4.2v,当3.7v电池连接到它,串行监视器显示电压超过4.7v,怎么办?为什么没有显示正确的充电电压,或者我需要更改公式吗?
你好,Mr. GR希望在这里看到你的问题,并适当地回复....请耐心等待。
嗨,美迪安,
该电路不是为锂离子电池设计的,而是为12V SLA电池设计的。
代码是为12V电池编写的,不会监控3.7V锂离子电池。
不要将电池与此电路一起充电。它旨在仅在放电时监控电池。
请仔细阅读这篇文章,这将消除对这个项目的大部分误解。
问候
如果连接到该电路的死电池,但电池也连接到充电电路,我们如何获得电池电量较低的指示?.AS充电器输出高于13V,所以绿色LED在而不是红色LED。什么?
当连接好的电池时,电源电压会立即下降,并稳定到电池放电水平,但对于一个已耗尽的电池,这可能不会发生,这表明电池有问题。
嗨,美泽南
请勿将电池与此电路一起充电,它不会指示正确的电池电量。
问候。
请你帮我使用12伏电池充电器的电路图,自动切断
阿图,您可以尝试以下设计:
https://www.homemade-circules.com/opamp-low-high-battery-charger/
晚上好……先生,我怎么能让led一直开着,而在电池电量低的时候关掉呢
您能为太阳能电池电量充电电路提供电路,充电12V 7AH电池
你可以做以下电路:
https://www.homemade-circulay.com/2012/04/how-to-make-solar-battery-charger.html.
调整10K为电池准确获得14V,并在1放大器时使用15V的输入
我只需要一个导致指示如此小的opamp,如lm393可以使用?。请建议一个电路。
您可以尝试以下概念,只保留一个opamp而不是显示的4
//www.addme-blog.com/2015/04/battery-current-indicator-circuit.html
......。将LED阴极连接到输入电源接地线。
电池正常时LED亮,电池不正常时LED灭…相反的反应是通过opamp输出和正极线连接LED。
这可以使用Arduino与我想要达到结果的少数部分完成。
你好;
我一直在寻找一个可以检测锂离子4.2V可充电电池的电路,我的意味着消耗极低的电流,如10-100mA,但没有得到适当的充电电流。在LED指示。
您好,检测到这一点的唯一方法可以通过电流检测电阻和一个电压放大器电路,该电压放大器电路,该电路将指示电池是否围绕1c电流耗尽...... LM3915 IC看起来是制作该系统的候选者。
嗨Swagatam先生,我需要做最后一年的项目。我需要使用蓝牙和WiFi进行电池指示器。我的问题是我需要做VDR,以避免对我的Arduino + LCD +蓝牙模块进行更多的电压。我希望你可以帮助我
嗨Fatin,您可以使用7805 IC电压调节器来确保Arduino安全5V。