ACS712电流传感器怎么接线?Arduino测直流电流和换算

2026-10-21 13:21:17 55阅读

想知道电路里到底走了多大电流、马达是不是堵转、电池还有多少电,ACS712是一款很好用的电流传感器模块。它用霍尔原理,非侵入地串接在负载回路里测电流,输出对应的模拟电压,Arduino直接读A0就行。这篇文章把接线和换算讲清楚。

ACS712是什么,认准量程版本

ACS712是Allegro的霍尔效应电流传感器,把被测量的电流流过内部走线产生磁场,再通过霍尔芯片转成电压。市面常见按量程分几个版本:5A、20A、30A,灵敏度不同,选型时要按你的负载电流挑,别拿30A的板子去测毫安级小电流。

模块引出几个脚:VCC(5V)、GND、OUT(模拟输出),以及串在负载里的IP+和IP-两个端子。直流电从IP+进、IP-出(或反过来),电流方向影响输出电压是偏上还是偏下。板子照片见下。

接线表:负载串接,OUT接A0

ACS712连Arduino Uno:VCC接5V、GND接GND、OUT接A0。负载要断开一路,把电源的正极接到IP+,再从IP-接到负载的输入端,也就是把模块“串”进电流回路里,模块才能感知流过的大电流。

接的时候务必先断电再动线,量程内大电流、接反方向都会让读数异常。满载接线固定好位置,别让大电流走线在板子附近乱甩,免得串扰。

读数换算:先找零点再乘灵敏度

ACS712输出是以2.5V(Vcc半量程)为零点的线性信号。没电流时OUT约2.5V,对应analogRead大约512;每通过电流,输出电压按灵敏度变化——5A版约185mV/A,20A版约100mV/A,30A版约66mV/A。换算电流=(当前电压-2.5V)/灵敏度。

实际用串口读A0,先把值转成电压,减掉基线2.5V,再除以灵敏度,就是安培数。做程序时建议多次采样取平均,能大幅压掉底噪,读数更稳。

读不准或偏漂?几个排查点

第一,零点会随温度略有漂移,最好在程序启动时先空载采样一次当作基线。第二,测的是叠加在直流上的交流分量时,采样要取多点到峰值,否则平均下来会把波动抹平。

第三,选错量程版本会导致读数比例不对,先核对模块上的丝印(5A/20A/30A),再套对应的灵敏度系数。

把换算做好,就能做马达电流监测、电池电量估算、负载断路报警这些实用项目。ACS712是理解霍尔电流传感和模拟量换算很好的一课,串对线、找好零点,电流就到手。


作者:电机传感器师
链接:https://www.aiddithome.com/p/15ce94e174dc15.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
5条评论
Lumen微光
1楼 · 2026-10-21 13:21:19

测电池电流和马达负载很实用,串对线零点找好就行

默默点赞的路人
2楼 · 2026-10-21 13:21:18

5A版约185mV/A,选对量程版本灵敏度才不会错

装过才知道
3楼 · 2026-10-21 13:21:18

程序里多次采样取平均,底噪能压下去读更稳

好说好说
4楼 · 2026-10-21 13:21:17

负载要串进IP+到IP-之间,模块才能感知到电流

学生党玩机
5楼 · 2026-10-21 13:21:17

没电流时OUT约2.5V约512,拿这个当零点再换算