用Arduino测量电流

Measuring Current with the Arduino

对于涉及传感器,电动机,LED和其他组件的项目,测量电子电路中的电流是一个普遍的要求。尽管Arduino无法直接测量电流,但您可以使用电流传感器或分流电阻等外部组件间接测量它。本教程将指导您通过Arduino测量电流的过程。


你需要什么

  1. Arduino董事会 (例如,UNO,Mega,Nano)
  2. 当前传感器 (例如,ACS712,INA219)或 分流电阻
  3. 面包板和跳线电线
  4. 加载设备(例如LED,电机或您要测量电流的任何组件)
  5. 电源(5V或12V,具体取决于您的负载)
  6. 安装了带有Arduino IDE的计算机

方法1:使用当前传感器

如ACS712或INA219这样的电流传感器通过提供与电流成比例的模拟或数字输出来简化电流测量。

1。使用ACS712电流传感器

ACS712传感器测量AC和DC电流,并输出与流过的电流成正比的模拟信号。

接线图
ACS712针 联系
VCC Arduino 5V
gnd Arduino Gnd
出去 Arduino Analog Pin(例如A0)
IP+ 正载连接
ip- 负负载连接
示例代码
#define sensorPin A0
const float sensitivity = 0.185; // Sensitivity for ACS712-05B (mV per A)
const int zeroPoint = 512; // Zero current output in ADC counts

void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(sensorPin);
  float voltage = (sensorValue / 1023.0) * 5.0; // Convert to voltage
  float current = (voltage - (zeroPoint / 1023.0) * 5.0) / sensitivity; // Calculate current

  Serial.print("Current: ");
  Serial.print(current, 3);
  Serial.println(" A");

  delay(1000);
}

2。使用INA219电流传感器

INA219是一个高精度电流传感器,通过I2C与Arduino通信,提供当前和电压测量值。

接线图
ina219销 联系
VCC Arduino 5V
gnd Arduino Gnd
SDA Arduino SDA(例如,UNO上的A4)
SCL Arduino SCL(例如,在UNO上的A5)
Vin+ 正载连接
v 负负载连接
示例代码

安装 Adafruit Ina219库 通过Arduino Library Manager。

#include <Wire.h>
#include <Adafruit_INA219.h>

Adafruit_INA219 ina219;

void setup() {
  Serial.begin(9600);
  if (!ina219.begin()) {
    Serial.println("Failed to find INA219 chip");
    while (1);
  }
}

void loop() {
  float current_mA = ina219.getCurrent_mA();

  Serial.print("Current: ");
  Serial.print(current_mA);
  Serial.println(" mA");

  delay(1000);
}

方法2:使用分流电阻

分流电阻是与负载串联放置的低阻力电阻。通过测量整个分流器电阻器的电压下降,您可以使用欧姆定律计算电流:

i = v / r

接线图

成分 联系
分流电阻 与负载串联
Arduino模拟引脚 穿过分流电阻器
加载 连接到电源
示例代码
#define shuntPin A0
const float shuntResistance = 0.1; // Resistance in ohms

void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(shuntPin);
  float voltage = (sensorValue / 1023.0) * 5.0; // Convert to voltage
  float current = voltage / shuntResistance; // Calculate current

  Serial.print("Current: ");
  Serial.print(current, 3);
  Serial.println(" A");

  delay(1000);
}

准确测量的最佳实践

  1. 选择正确的传感器: 选择适合您预期当前范围的电流传感器或分流电阻。
  2. 校准您的设置: 调整特定传感器或分流电阻器的代码,以确保准确的读数。
  3. 最小化噪音: 使用短而厚的电线,避免嘈杂的环境来减少测量错误。
  4. 监视功率限制: 确保传感器或分流电阻可以处理最大电流而不会过热。

当前测量的应用

  1. 监视物联网设备的电池消耗
  2. 测量电动机的电流抽签
  3. 测试LED和其他组件
  4. 嵌入式系统中的电源管理

故障排除

  • 错误的读数: 双检查传感器接线和校准值。
  • 无输出: 确保连接负载并电流流动。
  • 波动值: 在传感器的电源中添加一个电容器以稳定读数。

结论

当使用正确的工具(如电流传感器或分流电阻器)时,用Arduino测量电流很简单。通过遵循本指南,您可以准确监视电路中的电流,从而实现更好的电源管理和系统诊断。尝试不同的传感器,以找到最适合您的项目!

发表评论

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.