几种直流电流采样方法
目录
1、低端电流采样
2、高端电流采样
3、集成数字功率计
4、霍尔效应电流传感器
在嵌入式系统设计中,电流测量是监控系统性能、优化能耗和确保安全运行的关键环节。无论是电池管理、电机控制还是工业电源系统,精确的电流采样都能提供重要数据支持。
本文深入探讨四种常见的直流电流采样方法:低端电流采样、高端电流采样、集成数字功率计和霍尔效应电流传感器。每种方法都有其独特的工作原理、电路设计、优缺点和适用场景。
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/Avoid 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)提供最高精度,适合高精度需求。
- 电流范围:霍尔效应传感器适合高电流应用,低端和高端采样适合中小电流。
- 功耗:集成数字功率计和霍尔效应传感器功耗较低,适合电池供电系统。
- 复杂性:低端采样最简单,集成数字功率计需要通信协议配置。