我使用5v电池(升压模块为3.7v)为Arduino供电,我需要测量电压。假设电池提供大电流,通过模拟输入测量电压安全吗?像这样:
我问的原因是,我对Arduino的ADC体系结构和局限性了解不多。因此通常,出于安全考虑,我会这样做:
第一张图中的连接对ADC安全吗?提前致谢!
注意:此处也提出了类似的问题:(Monitor DC Power Usage),但是它不能回答电池上高电流负载的问题。
我使用5v电池(升压模块为3.7v)为Arduino供电,我需要测量电压。假设电池提供大电流,通过模拟输入测量电压安全吗?像这样:
我问的原因是,我对Arduino的ADC体系结构和局限性了解不多。因此通常,出于安全考虑,我会这样做:
第一张图中的连接对ADC安全吗?提前致谢!
注意:此处也提出了类似的问题:(Monitor DC Power Usage),但是它不能回答电池上高电流负载的问题。
Answers:
检查数据表中I / O引脚上的输入电流。这取决于Arduino上控制器的确切类型。它可能被称为输入漏电流I / O引脚,接近1μA。
这是在Uno / Duemilanove / ...上使用的典型ATmega数据表,您可以在第304页上找到该参数。有关特定控制器的数据表,以获取准确的详细信息。
如果使用3.7V电池和升压转换器为控制器提供5V电压,则可以将电池直接连接到控制器模拟输入。但是,当升压转换器的输出电压降至电池电压以下(无论出于何种原因)时,整个Arduino将通过模拟输入引脚供电,这是您不想要的。所有输入引脚均具有防止过电压的保护功能,该功能可实现此功能,但二极管的额定电流不连续。结论:最好在电池和输入引脚之间包括一个串联电阻。
但是现在,您的测量依赖于5V电源的精度。根据所使用的控制器的确切程度,可以使用各种内部参考电压,这些参考电压要比电源电压精确得多。如果您在地(R2)上增加了一个电阻,则可以使用这样的基准来准确测量输入电压。这称为(电阻)分压器。在给定的比率下,当电池电压为3.7V时,输入引脚上的伏特加将为1V:
模拟此电路 –使用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可以确定其电源电压。