基于Arduino的INA219
时间: 2025-01-03 13:25:01 浏览: 88
Arduino INA219 使用教程
介绍
INA219是一款高精度双向电流检测芯片,适用于监测直流电源系统的电压、电流以及功率。该器件能够提供精确的数据反馈,在电池管理系统、太阳能充电控制器以及其他电力监控应用中非常有用。
安装所需库
为了简化编程流程并提高效率,建议使用Adafruit开发的专用库——Adafruit_INA219
[^3]。可以通过Arduino IDE中的库管理器轻松安装此库。
接线方法
对于硬件连接部分,需按照如下方式将INA219模块与Arduino相连:
Arduino | INA219 Module |
---|---|
GND | GND |
VCC | VIN (3.3V or 5V) |
SDA | SDA |
SCL | SCL |
请注意,某些版本的Arduino板可能标记SDA/SCL引脚为其他名称;例如Uno/Nano上它们位于模拟输入端子旁边,并分别被标注为"A4"和"A5"[^3]。
示例代码
下面给出一段简单的测试程序用于验证设备工作正常与否:
#include <Wire.h>
#include "Adafruit_INA219.h"
// 创建一个新的INA219实例
Adafruit_INA219 ina219;
void setup(void) {
Serial.begin(9600);
// 初始化I2C总线
Wire.begin();
// 开始配置并校准INA219传感器
if (!ina219.begin()) {
Serial.println("Failed to find INA219 chip");
while (1) { delay(10); }
}
ina219.setCalibration_32V_2A(); // 设置量程至最大32伏特, 最大2安培
}
void loop(void) {
float shuntvoltage = 0;
float busvoltage = 0;
float current_mA = 0;
float loadvoltage = 0;
float power_mW = 0;
shuntvoltage = ina219.getShuntVoltage_mV();
busvoltage = ina219.getBusVoltage_V();
current_mA = ina219.getCurrent_mA();
power_mW = ina219.getPower_mW();
loadvoltage = busvoltage + (shuntvoltage / 1000);
Serial.print("Bus Voltage: "); Serial.print(busvoltage); Serial.println(" V");
Serial.print("Shunt Voltage: "); Serial.print(shuntvoltage); Serial.println(" mV");
Serial.print("Load Voltage: "); Serial.print(loadvoltage); Serial.println(" V");
Serial.print("Current: "); Serial.print(current_mA); Serial.println(" mA");
Serial.print("Power: "); Serial.print(power_mW); Serial.println(" mW");
delay(1000);
}
这段代码实现了基本的功能展示,包括获取母线电压、分流电阻上的压降、负载消耗的电流量级及其产生的功耗等重要参数,并通过串行监视器打印出来供观察分析之用[^3]。
相关推荐


















