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


9

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

在此处输入图片说明

我问的原因是,我对Arduino的ADC体系结构和局限性了解不多。因此通常,出于安全考虑,我会这样做:

在此处输入图片说明

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

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


1
您从哪里获得5V电池?

实际上,它是一个3.7v电池,可用于升压稳压器电路。我确实对测量3.7v电池本身很感兴趣,但是为了举例,仅假设其5v可以显示Arduino在工作。
艾哈迈德·法里德

嗯,但这可能会改变事情。可能不是这样:只要不是所有电流都流过IO引脚,arduino就不会在意电池消耗多少电流。但是我不确定,我不知道arduino。

确实如此。如果我将其直接连接到电池,我担心电流输入到模拟输入引脚。
艾哈迈德·法里德

Answers:


6

检查数据表中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创建的原理图


1
因此,从本质上讲,可以将其直接连接到电池,但是如果5v变化,则不建议这样做。即使5v稳定且恒定?
艾哈迈德·法里德

2
如果5V保持恒定,那应该是安全的,但是总会出问题,所以:安全胜过遗憾。一两个电阻比新的微控制器便宜得多。工程不仅是要使事情正常运行,还在于要使事情保持按需运行。
jippie 2013年

我可能会问的另一个问题:与电池并联的单个电阻(1K)是否足以防止高电流输入?(请参阅我的第二个数字)
艾哈迈德·法里德

不,它只需要消耗电池即可。
jippie 2013年

4

另一个选择是使用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可以确定其电源电压。


3
这是另一篇文章,讨论了如何执行此操作。它使用的代码略有不同:Provideyourown.com/2012/…– ThomasW 2013
6

@ThomasW太好了!关于使用1.1v带隙的另一篇很棒的文章。
Wing Tang Wong
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.