使用 Analog In 测量 Arduino 的电源电压

电器工程 Arduino 力量 电池 ADC
2022-01-19 10:16:20

我正在使用 5v 电池(3.7v 到升压模块)为 Arduino 供电,我需要测量电压。假设电池提供大电流,通过模拟输入测量电压是否安全?就像这样:

在此处输入图像描述

我问的原因是我对 Arduino 的 ADC 架构和限制了解不多。所以通常情况下,为了安全起见,我会这样做:

在此处输入图像描述

第一张图中的连接对于 ADC 是否安全?提前致谢!

注意:此处提出了类似的问题:(Monitor DC Power Usage),但它没有回答电池上的高电流负载问题。

2个回答

检查数据表以了解 I/O 引脚上的输入电流它取决于 Arduino 上控制器的确切类型。它可能被称为输入漏电流 I/O 引脚,将接近1μA

这是 Uno / Duemilanove / ... 上使用的典型 ATmega 数据表,您可以在第 304 页找到参数。请查看特定控制器的数据表以获取准确的详细信息。

如果您使用 3.7V 电池和升压转换器为控制器提供 5V 电压,则可以将电池直接连接到控制器模拟输入。但是,当升压转换器的输出电压低于电池电压(无论出于何种原因)时,您的整个 Arduino 将通过模拟输入引脚供电,这就是您想要的。所有输入引脚都具有过压保护功能,可以实现这种行为,但二极管的额定电流不适合连续电流。总之:最好在电池和输入引脚之间包含一个串联电阻。

但是现在您的测量依赖于 5V 电源的精度。根据您拥有的确切控制器,有各种内部参考电压可用,它们比电源电压准确得多。如果您添加一个额外的接地电阻 (R2),您可以使用这样的参考来准确测量输入电压。这称为(电阻)分压器。在给定的比率下,当电池电压为 3.7V 时,输入引脚上的电压为 1V:

Vmeasurement=R2×VBATTR1+R2

示意图

模拟此电路- 使用CircuitLab创建的原理图

另一种选择是使用 Arduino 的内部 1.1V 带隙电压参考来确定 VCC 的值,而无需使用以下两个链接中详述的任何其他外部部件:

http://jeelabs.org/2012/05/04/measuring-vcc-via-the-bandgap/

http://arduino.cc/forum/index.php?topic=88935.0

唯一的问题是您需要根据内部 1.1V 带隙确定校准值,因为它可以偏离多达 10%。

但这不需要额外的部件,并且可以让您的 atmega 确定其电源的电压。