4378|0

2015

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

Arduino如何监测电池电压 [复制链接]

本帖最后由 Aguilera 于 2019-12-15 18:20 编辑

在一些使用Arduino制作的项目中,我们会时常用到锂电池组,为了防止锂电池过放电导致电池损坏,监测电压是很有必要的。

锂电池

关于锂电池的知识可查阅:锂电池的相关知识 这篇文章。

Arduino监测电池电压

使用Arduino监测电池电压的方式有很多,比如声音提醒、灯光提醒、欠电停止等等。本文介绍相对简单的一种方式,灯光提醒。使用灯光监测电池电压的思路是,通过一个Arduino的模拟输入脚实时采集电池电压,当采集的电压低于某一阈值时,灯光点亮,提示电池电压低。

Arduino与电池的电路连接

上图中,我们设定Arduino采集电池电压的脚为A4,电路中使用两个电阻,组成分压电路,因为Arduino 只能测量0-5V的电压 。 A4的输入电压值采用以下公式计算:

 Vout =(Vin×R2)/(R1 + R2) ,对应上图R2为1K,R1为2K,计算A4值为4V。

然后通过analogRead()函数采集 A4 的值,我们知道Arduino控制器有多个10位数模转换通道。这意味着Arduino可以将0-5V的电压输入信号映射到数值0-1023。换句话说,我们可以将5V信号等分成1024份,0伏特的输入信号对应着数值0,而5伏特的输入信号对应着1023。因此,当A4模拟输入引脚的输入电压为4V时,该引脚的数值为819。(计算:4V / 5V = 0.8, 1024 X 0.8=819.2,实际读取值应该在818~819之间)

要实现电压监测,光使用 analogRead()函数读取A4值还不够,我们需要将这个读取值转换为实际电压值,因此可以使用以下公式进行转换:

电池电压值 V = A4读取值 * (5.00 / 1023.00) * 乘数

这个乘数值可以使用上面提供的方法在理论上计算,或者如果有一组已知的电压值,您可以实际计算它。条件允许的情况下,最好采用遵循了后一种选择,因为它更准确。在本例中这个乘数的值是2.9。

Arduino监测电池电压代码

 
#define ledB 10
int sensorValue = analogRead(A3);
float voltage = sensorValue * (5.00 / 1023.00) * 2.9; 
Serial.println(voltage);
if (voltage < 11) {
digitalWrite(ledB, HIGH);
}
else {
digitalWrite(ledB, LOW);
}

通过以上代码,当监测到的电池电压低于11V时,LED被点亮,否则LED常灭。以此实现简单的电池电量监测,达到避免电池的过放电的目的。

 
点赞(1) 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表