这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » Arduino下实验使用INA219模块

共1条 1/1 1 跳转至

Arduino下实验使用INA219模块

专家
2025-08-21 14:23:59     打赏

前面简单介绍过INA219芯片的一些知识,本次直接使用从网上购得的INA219模块做实验。

图片13.png

其工作原理图:

图片14.png

采样电阻使用的是0.1欧姆的电阻。使用时要注意,采样电路中一定要加上限流电阻,否则会烧坏采样电阻的。

老规矩,拿到手的模块一定要测试一下,依旧使用ESP8266

测试方案使用以下方案:

1、采样电路在开路状态下,相当于采样电流0A

2、加入LED电路,测量mA级的测量数据。

3、搭建1A级电路,确认测量结果。

 

其实第一个测量方案主要是为了验证买到手的模块有没问题。

Arduino程序如下:


/**
 * 测试INA219
 * 接线方式
 * INA219            ESP8266
 * ---------------------------
 * VCC               3.3V
 * GND               GND
 * SCL               D1(GPIO5)
 * SDA               D2(GPIO4) 
 * --------------------------------测试方式1:Vin悬空,不接入采样电路
 * Vin+              悬空
 * Vin-              悬空
 * --------------------------------测试方式2:采样电路使用LED,mA级别
 * Vin+              
 * Vin-              
 
 * --------------------------------测试方式1:采样电路1A级别
 * Vin+              
 * Vin-              
 * ---------------------------
 */
#include <Wire.h>
#include <Adafruit_INA219.h>
Adafruit_INA219 ina219;
void setup(void) {
  Serial.begin(115200);
  while (!Serial) {
      delay(1);
  }
   
  // 初始化INA219.
  // 缺省参数:32V, 2A,可以通过setCalibration函数改变
  if (! ina219.begin()) {
    Serial.println("没有找到INA219!");
    while (1) { 
      delay(10);
    }
  }
  // 改变参数的例子:
  // To use a slightly lower 32V, 1A range (higher precision on amps):
  //ina219.setCalibration_32V_1A();
  // Or to use a lower 16V, 400mA range (higher precision on volts and amps):
  //ina219.setCalibration_16V_400mA();
  Serial.println("找到INA219,开始测量......");
}
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");
  Serial.println("");
  delay(2000);
}

测量结果如下,结果有波动,与预想的有一点点出入,能接受。

图片15.png








关键词: 大懒猫的试用笔记     INA219电流模块    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]