这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 电源与模拟 » 几种直流电流采样方法

共3条 1/1 1 跳转至

几种直流电流采样方法

菜鸟
2025-06-06 13:51:21     打赏

本文深入探讨四种常见的直流电流采样方法:低端电流采样、高端电流采样、集成数字功率计和霍尔效应电流传感器。每种方法都有其独特的工作原理、电路设计、优缺点和适用场景。


1 、低端电流采样

低端电流采样通过在负载与地之间串联一个分流电阻(通常为毫欧级)来测量电流。流经分流电阻的电流会产生一个微小的电压降,根据欧姆定律(V = I × R),通过测量该电压降即可计算电流。由于电压降通常较小(几十毫伏),需要使用运算放大器放大信号后送入模数转换器(ADC)进行测量。

负载连接在电源正极(V+)与分流电阻之间,分流电阻另一端接地。分流电阻两端的电压通过运算放大器(配置为非反相放大器,增益例如21)放大后,输出到微控制器的ADC引脚。可选地,可在放大器后添加一个电压跟随器以提高信号稳定性,防止ADC输入阻抗影响测量。



使用25mΩ分流电阻和OPA2365放大器(增益21),1A电流产生25mV电压降,放大后为0.525V,适合ADC测量。 

#define ADC_PIN A0
#define RS 0.025  // 分流电阻,单位:欧姆
#define G 21.0    // 放大器增益
#define V_REF 5.0 // ADC参考电压
void setup() {
  Serial.begin(9600);
}
void loop() {
  int adc_value = analogRead(ADC_PIN);
  float v_adc = (adc_value / 1023.0) * V_REF;
  float current = v_adc / (RS * G);
  Serial.print("Current: ");
  Serial.print(current, 3);
  Serial.println(" A");
  delay(1000);
}

上述代码读取ADC值,转换为电压(V_adc = ADC_value / 1023 × 5V),然后根据公式I = V_adc / (R_s × G)计算电流。假设分流电阻为25mΩ,增益为21,1A电流对应ADC值约为107,计算结果接近1A。 

2、高端电流采样

高端电流采样将分流电阻置于电源与负载之间,测量流经电阻的电流产生的电压降。由于分流电阻位于高电压侧,需要使用能够处理高共模电压的专用电流检测放大器(如AD8418)来放大信号。

分流电阻连接在电源与负载之间。AD8418的IN+引脚连接到分流电阻的电源侧,IN-引脚连接到负载侧,输出引脚直接连接到ADC。



使用25mΩ分流电阻和AD8418放大器,1A电流产生25mV电压降,放大后为0.5V。

#define ADC_PIN A0
#define RS 0.025  // 分流电阻,单位:欧姆
#define G 20.0    // 放大器增益
#define V_REF 5.0 // ADC参考电压
void setup() {
  Serial.begin(9600);
}
void loop() {
  int adc_value = analogRead(ADC_PIN);
  float v_out = (adc_value / 1023.0) * V_REF;
  float current = v_out / (G * RS);
  Serial.print("Current: ");
  Serial.print(current, 3);
  Serial.println(" A");
  delay(1000);
}

代码与低端采样类似,但增益为20。1A电流对应ADC值约为102,计算结果接近1A。

3、集成数字功率计

集成数字功率计使用专用芯片(如INA229)直接测量电流、电压和功率。这些芯片内置高精度ADC(例如20位),通过SPI或I2C接口与微控制器通信,提供数字化的测量结果。

分流电阻串联在负载电路中,INA229的VIN+和VIN-引脚连接到分流电阻两端,VBUS引脚测量负载电压。INA229通过SPI接口与微控制器通信。



使用10mΩ分流电阻和INA229,1A电流产生10mV电压降,INA229直接输出数字化的电流值。

#include <SPI.h>
#include <INA229.h>
INA229 ina229;
void setup() {
  Serial.begin(9600);
  SPI.begin();
  ina229.begin(); // 初始化INA229
}
void loop() {
  float current = ina229.readCurrent();
  Serial.print("Current: ");
  Serial.print(current, 3);
  Serial.println(" A");
  delay(1000);
}

假设存在INA229的Arduino库,代码通过SPI接口读取电流值。实际应用中需根据数据手册配置寄存器。

4、霍尔效应电流传感器

霍尔效应电流传感器(如ACS758LCB-050B)利用霍尔效应测量电流产生的磁场,提供非接触式测量。传感器输出与电流成比例的电压,通常为中心点电压(Vcc/2)加上电流引起的偏移。

电流导体穿过传感器,传感器输出引脚(VIOUT)连接到ADC。传感器由3.3V或5V供电,输出电压范围与供电电压一致。



使用ACS758LCB-050B(±50A,灵敏度40mV/A),0A时输出2.5V(Vcc=5V),1A时输出2.54V。

#define ADC_PIN A0
#define V_REF 5.0 // ADC参考电压,与传感器Vcc相同
#define SENSITIVITY 0.04 // 灵敏度,单位:V/A
void setup() {
  Serial.begin(9600);
}
void loop() {
  int adc_value = analogRead(ADC_PIN);
  float v_out = (adc_value / 1023.0) * V_REF;
  float current = (v_out - V_REF / 2.0) / SENSITIVITY;
  Serial.print("Current: ");
  Serial.print(current, 3);
  Serial.println(" A");
  delay(1000);
}

代码读取ADC值,转换为输出电压(V_out),然后根据公式I = (V_out - Vcc/2) / 灵敏度计算电流。需确保V_REF与传感器供电电压一致。

选择电流采样方法时,需综合考虑以下因素:

成本:低端采样成本最低,适合预算有限的项目。安全性:高端采样和霍尔效应传感器提供更高的安全性,适合汽车和工业应用。精度:集成数字功率计(如INA229)提供最高精度,适合高精度需求。电流范围:霍尔效应传感器适合高电流应用,低端和高端采样适合中小电流。功耗:集成数字功率计和霍尔效应传感器功耗较低,适合电池供电系统。复杂性:低端采样最简单,集成数字功率计需要通信协议配置。




关键词: 直流电流采样    

专家
2025-06-07 14:57:01     打赏
2楼

感谢分享


专家
2025-06-07 14:57:56     打赏
3楼

感谢分享


共3条 1/1 1 跳转至

回复

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