ACS712电流传感器怎么接线?Arduino测电机电流做堵转和过流保护的方法

2026-10-19 20:34:43 33阅读

想让Arduino知道自己带的电机、灯泡或设备到底吃了多大电流,ACS712电流传感器是最常用的一块。它是一颗基于霍尔效应的线性电流传感器,把流过的电流按比例转成电压输出,Arduino读一个模拟脚就能算出来。做电机堵转监测、过流保护、功率统计很好用。这篇讲它怎么接、三种量程怎么选、代码怎么写。

ACS712的量程和三根引脚

ACS712按芯片后缀分三档:5A版灵敏度是185mV/A、20A版是100mV/A、30A版是66mV/A,量程分别到±5A、±20A、±30A。选型就一句话:按你电路的正常工作电流留出余量挑,太大精度差、太小容易超量程烧。模块引出三根脚:VCC接5V、GND接地、OUT是电压输出,接Arduino的A0模拟脚。

图上这个电路把关键点标出来了——ACS712必须和被测负载串联在电流回路里,电流从模块的螺丝端子(1/2脚)流进、3/4脚流出,旁边还有两个测量电源电压的表笔。注意它是“串”不是“并”,接错成并联会把传感器短路。

这张原理图说明了它怎么工作:被测电流流经芯片里一小段铜排,产生一个磁场,被片内的霍尔元件感应后转成一个与电流成比例的电压输出。没电流时OUT输出正好是供电的一半(5V供电时约2.5V),电流越大输出电压相对中点偏得越多,这样正反向电流都能测。

Arduino读电流的代码思路

核心逻辑:先用analogRead(A0)读回原始数值,转成毫伏(乘5再乘1000再除以1024),再减去中点偏置(供电一半约2500mV),最后除以灵敏度就得到安培数,公式就是Amps = (Voltage − offset) / mV_per_Amp。因为模拟量有噪声,建议多采几次取平均,读数会更稳。

做堵转和过流保护的思路

测到电流之后,判断就简单了:给电机设定一个正常工作的电流范围,一旦读到的电流持续超过上限(比如电机堵转时电流猛涨),Arduino就立刻切断电机电源或触发报警,这就是最实在的过流/堵转保护。给某个家电或充电器做功耗统计,把电流和多路电压一起采,还能算出功率和电能。用之前先用一块已知电流的负载标定一下中点偏置,读数会更准。


作者:写launch的皮皮
链接:https://www.aiddithome.com/p/c637eaf9cf7db.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
默默点赞的路人
1楼 · 2026-10-19 20:34:45

采多次取平均读数才稳,模拟噪声大别单点直读

好说好说
2楼 · 2026-10-19 20:34:44

选量程按正常电流留余量,5A/20A/30A对应灵敏度不一样记得换

学生党玩机
3楼 · 2026-10-19 20:34:44

没电流时OUT正好2.5V,测的时候先把这点标定准

周五下班搞一搞
4楼 · 2026-10-19 20:34:43

电流传感器是串在回路里的,接成并联会短路烧掉