4、电流传感器详解:霍尔效应电流传感器、分流电阻式电流传感器、选型与接线实战
说到电流采集,这活儿我干了好多年了。很多新手一上来就问我:「老师,测电流到底用啥传感器?」
其实答案不复杂。物联网能耗采集里,最常用的就两种:霍尔效应电流传感器和分流电阻式电流传感器。各有各的脾气,选错了,数据飘得你怀疑人生。
今天咱们就把这两兄弟扒个底朝天。顺便聊聊我踩过的坑。
4.1 霍尔效应电流传感器
先讲霍尔。这玩意儿原理听着玄乎,说白了就是:电流流过导线,会产生磁场。霍尔元件感应到磁场,输出一个电压。
嗯,就这么简单。你电流大,磁场强,电压就高。线性关系。
4.1.1 工作原理
霍尔效应是物理学家霍尔在1879年发现的。但真正用到电流检测上,是近几十年的事。
核心结构是这样的:
- 一个环形磁芯(或者开口的)
- 霍尔元件嵌在磁芯气隙里
- 被测导线从磁芯中间穿过
电流流过导线,磁芯里产生磁场。霍尔元件感受到磁场,输出一个毫伏级的电压。经过放大,变成0-5V或者0-3.3V的模拟信号。
关键点:霍尔传感器是非接触式的。导线和传感器之间没有电气连接。这意味着什么?隔离!你测220V交流电,单片机那边完全不用担心被高压打穿。
4.1.2 优点与缺点
我个人的习惯是,先看缺点,再看优点。因为缺点往往是决定你能不能用的关键。
| 优点 | 缺点 |
|---|---|
| 电气隔离,安全可靠 | 精度一般,典型值1%-3% |
| 可测直流和交流 | 温漂较大,温度变化影响精度 |
| 无插入损耗 | 成本比分流电阻高 |
| 带宽高,响应快 | 小电流测量精度差(<1A时尤其明显) |
你想想看,如果你要测一个5A的电机电流,霍尔传感器很合适。但如果你要测一个10mA的待机电流,霍尔传感器基本就废了。为什么?因为小电流产生的磁场太弱,信噪比太差。
4.1.3 常见型号
市面上常见的霍尔电流传感器芯片,我列几个:
- ACS712:老牌经典,5A/20A/30A量程,5V供电。便宜,但精度一般。
- ACS758:比712强不少,温漂小,适合50A-200A大电流。
- TMCS1100:TI的,精度高,温漂极低,适合精密测量。
我的经验:ACS712我用了好几年,后来发现一个问题——它的输出在零电流时不是严格的2.5V,而是有±50mV的偏差。这意味着你每次上电都要做一次零点校准。后来我换成TMCS1100,这个问题就好多了。
4.2 分流电阻式电流传感器
说完霍尔,咱们聊聊分流电阻。这玩意儿更直接:在电路里串一个小电阻,测它两端的电压。
欧姆定律嘛,U = I × R。电压知道了,电阻已知,电流就算出来了。
4.2.1 工作原理
分流电阻,也叫采样电阻、检流电阻。一般是毫欧级的,比如10mΩ、50mΩ、100mΩ。
电流流过电阻,产生压降。这个压降很小,通常只有几十毫伏。所以需要用一个差分放大器或者电流检测放大器来放大,再送给ADC。
关键点:分流电阻是接触式的。电阻直接串在电流回路里。所以有插入损耗——电阻会发热,会消耗功率。
4.2.2 优点与缺点
说白了,分流电阻和霍尔传感器是互补的。一个强的,就是另一个弱的。
| 优点 | 缺点 |
|---|---|
| 精度高,可达0.1%-1% | 没有电气隔离 |
| 成本低,几毛钱到几块钱 | 有插入损耗,大电流时发热严重 |
| 小电流测量精度好 | 只能测直流(交流需要特殊处理) |
| 温漂可以做到很低 | 需要差分放大器,电路稍复杂 |
我记得有一次做电池管理系统,要测1mA-100A的动态范围。霍尔传感器根本搞不定小电流。最后用了分流电阻+高精度ADC的方案。小电流时用高增益,大电流时自动切换增益。嗯,这活儿干得漂亮。
4.2.3 常见型号
分流电阻本身没有太多技术含量,关键是选对阻值和功率。但电流检测放大器,我推荐几个:
- INA219:I2C接口,内置ADC,直接读出电流值。适合低电压系统。
- INA282:模拟输出,带宽高,适合高速采样。
- MAX4080:单向检测,简单可靠。
注意:分流电阻的功率一定要留余量。比如你测10A电流,用10mΩ电阻,功率是I²R = 10² × 0.01 = 1W。你至少选2W的电阻,否则电阻会烫得你怀疑人生。我曾经就因为这个烧过板子,教训深刻。
4.3 选型指南
好,两种传感器都讲完了。那到底怎么选?我给大家一个决策流程:
- 先看是否需要隔离? 是 → 霍尔传感器。否 → 看下一步。
- 再看电流大小? 小于1A → 分流电阻。大于50A → 霍尔传感器。中间范围 → 看精度要求。
- 精度要求高? 是 → 分流电阻。否 → 霍尔传感器。
- 成本敏感? 是 → 分流电阻。否 → 霍尔传感器。
你想想看,这个流程走下来,基本不会选错。
我的建议:如果你做的是通用型能耗采集器,我建议你两个都预留。霍尔传感器测大电流,分流电阻测小电流。两个互补,覆盖全量程。我在一个智能电表项目里就是这么干的,效果很好。
4.4 接线实战
理论讲完了,咱们来点实际的。接线这事儿,看着简单,但细节决定成败。
4.4.1 霍尔传感器接线
以ACS712为例,典型接线:
ACS712引脚说明:
1脚 (IP+):电流输入正
2脚 (IP-):电流输入负
3脚 (VCC):5V供电
4脚 (VOUT):模拟电压输出
5脚 (FILTER):外接滤波电容(推荐10nF)
6脚 (GND):地
接线步骤:
1. VCC接5V,GND接GND
2. VOUT接单片机的ADC引脚
3. IP+和IP-串联到被测电流回路中
4. FILTER对GND接10nF电容
注意:ACS712的IP+和IP-是有方向的。电流从IP+流入,从IP-流出,输出才是正向的。接反了,输出就是负电压。虽然不会烧,但数据就反了。
4.4.2 分流电阻接线
以INA219为例,典型接线:
INA219引脚说明:
1脚 (VIN-):分流电阻负端
2脚 (VIN+):分流电阻正端
3脚 (VCC):3.3V或5V供电
4脚 (GND):地
5脚 (SCL):I2C时钟
6脚 (SDA):I2C数据
接线步骤:
1. 分流电阻串联到被测电流回路
2. VIN+接分流电阻的高压端
3. VIN-接分流电阻的低压端
4. VCC接3.3V,GND接GND
5. SCL和SDA接单片机的I2C引脚
我的经验:分流电阻的PCB走线非常关键。电流走线要宽,要短。检测信号的走线要远离大电流回路。我曾经在一个项目里,因为走线不合理,测出来的电流值一直偏大。查了两天才发现,是地线回路引入了额外的压降。后来用了开尔文接法(四线制),问题就解决了。
4.4.3 开尔文接法(四线制)
说到开尔文接法,我多说两句。这是高精度电流测量的关键。
普通的两线制,电流走线和检测走线是同一根线。导线本身有电阻,会产生额外的压降,导致测量误差。
开尔文接法把电流走线和检测走线分开。电流走线负责通大电流,检测走线只负责采样电压,几乎不走电流。这样检测到的电压就是纯正的分流电阻压降。
总结:精度要求高的时候,一定要用开尔文接法。别偷懒,多走两根线,数据质量天差地别。
4.5 避坑指南
最后,我把自己这些年踩过的坑总结一下。你遇到了,直接抄答案就行。
- 我曾经用霍尔传感器测1A以下的电流,数据跳得跟心电图似的。后来才知道,霍尔传感器在小电流下信噪比太差。解决方案:换分流电阻。
- 我曾经用分流电阻测20A电流,电阻选小了,功率不够。结果电阻冒烟了。解决方案:功率留3倍余量。
- 我曾经把ACS712的IP+和IP-接反了,软件里忘了做符号处理。结果电流显示一直是负的。解决方案:要么改接线,要么软件里取绝对值。
- 我曾经用INA219时,忘了加滤波电容。结果数据有50Hz的工频干扰。解决方案:在VIN+和VIN-之间加一个100nF的电容。
嗯,差不多就这些了。电流传感器这块,说难不难,说简单也不简单。关键是理解原理,选对型号,接对线。你把这三点做好了,电流采集这块就稳了。
下一章,咱们聊聊电压传感器。电压采集比电流简单一些,但坑也不少。到时候见。