想知道电机转多快、轮子每分钟转多少圈,最常用的办法之一是用霍尔传感器。A3144是一颗很经典的开关型霍尔元件:有磁场靠近就输出一个低/高电平,靠近又离开就得到一个脉冲,数这串脉冲就能算出转速。这篇文章把接线讲明白。

A3144是开关型:磁场一到就翻转输出
A3144有三只脚,属于开关型(数字输出)霍尔传感器:有表示磁场的磁极靠近时输出一个状态,磁极离开就翻回另一个状态。所以它不像测距那样输出连续值,而是像开关一样输出高/低电平,正好用来数“一转几次”。
因为是开关型,它没法测磁场大小的绝对值,只做“有没有磁极靠近”的判断,但这在测转速、做限位、做无接触开关上正好够用。
接线:三只脚,信号脚读数就行
A3144一般标着VCC、GND和OUT(输出)三只脚,有的模块还带了LED和蜂鸣器方便观察。VCC接5V(或3.3V看模块),GND接地,OUT接到Arduino的一个数字脚做计数。有些模块输出是开漏或带内置上拉,直接接数字脚读脉冲即可;如果是裸芯片,OUT和VCC之间可能要靠上拉电阻,用模块版则省心很多。
关键在机械安装:把一颗小的圆形永磁铁固定到电机转轴或轮毂上,让A3144对准磁铁的旋转轨迹放好,两者间距要合适——太远感应不到,太近会摩擦或误触发,一般留几毫米空隙。每次磁铁转过来,OUT就翻转一次,电机会“每转一个脉冲”。

软件上数脉冲算转速:中断计数最稳
统计脉冲最稳的方法是用Arduino的外部中断(比如Uno的2号或3号脚)触发计数,虽然转动时脉冲很快,中断也能每次都记上。再在每固定时间(比如每秒)读一次计数,算出一秒内多少脉冲,再除以“每圈有几个磁极/脉冲”,就得到每秒转速,乘60就是每分钟转速(RPM)。
粘一颗磁铁就是“每圈1个脉冲”;如果对称粘4颗磁铁,精度更高、每圈4个脉冲,换算时除以4即可。这样做的实用价值一是测速、二是反馈——给小车或机器人判断“现在转速多少、有没有打滑、要不要调节输出”。
测不到、抖动,三个高频坑
“转起来读数不动”最常见原因:磁铁和传感器的间距太大感应不到,或磁极方向不对(霍尔对磁场极性敏感,翻个面试试);还有人把OUT接到了模拟脚或不支持中断的脚上,计数跟不上;再就是共地问题——传感器地和单片机地没接好。
读数偏大/误触,多半是间距太小、或装了多个磁铁但换算没除对;转太快丢脉冲,就要用中断并留意脉冲采样频率。磁性传感器离强磁场(比如大电机本身)太近也可能误触发,注意安装位置。
A3144是用最简单的方式给旋转件“把转速变成脉冲”的经典件。三只脚接好、转轴上粘磁铁、用中断数脉冲,再按每圈脉冲数换算,电机的转速和方向感(配合两路可判向)就能被你的Arduino知道了。







用外部中断计数比较稳,普通轮询容易丢脉冲
每圈几个磁铁换算时要除对,我粘了4颗差点算错
测速反馈给小车判断打滑,这比想象中有用
转轴上粘磁铁、传感器对好间隙,脉冲就数出来了