电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册
搜索: 您现在的位置: 电子开发网 >> 基础入门 >> Arduino开发学习 >> 正文

Arduino如何监测电池电压

作者:佚名    文章来源:本站原创    点击数:    更新时间:2019-05-31

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

锂电池

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

Arduino监测电池电压

使用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常灭。以此实现简单的电池电量监测,达到避免电池的过放电的目的。

Tags:Arduino,监测电池电压  
责任编辑:admin
  • 上一个文章: 没有了
  • 下一个文章:
  • 请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
    1分 2分 3分 4分 5分

    还可以输入 200 个字
    [ 查看全部 ] 网友评论
    关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
    返回顶部
    刷新页面
    下到页底
    晶体管查询