基于 51 单片机配合霍尔传感器实现计数 + 转速测量

简介: 基于 51 单片机(AT89C52 / STC89C52 / STC12C5A60S2 等) 配合 霍尔传感器(A3144 / 44E / OH137 等) 实现 计数 + 转速测量,这是最经典、最稳定的入门级测速方案,广泛用于 电机测速、风扇转速、小车轮速 等场景。

基于 51 单片机(AT89C52 / STC89C52 / STC12C5A60S2 等) 配合 霍尔传感器(A3144 / 44E / OH137 等) 实现 计数 + 转速测量,这是最经典、最稳定的入门级测速方案,广泛用于 电机测速、风扇转速、小车轮速 等场景。


一、系统工作原理

金属齿轮 / 磁铁 → 经过霍尔传感器 → 输出脉冲 → 51 单片机外部中断计数 → 计算转速


二、硬件设计

1、 霍尔传感器选型(必须选对)

型号 类型 输出
A3144 / 44E 开关型霍尔 高/低电平(最常用 )
OH137 开关型 同 A3144
SS495 线性霍尔 模拟量(不适合本方案)

本方案只用开关型霍尔


2、典型接线(5V 系统)

霍尔传感器 51 单片机 说明
VCC 5V
GND GND
OUT P3.2 / INT0 接外部中断

OUT 口建议加上拉电阻(10kΩ)


3、测速安装方式

  • 电机轴贴 1 颗小磁铁
  • 或齿轮每转 1 个齿触发一次
  • 每触发一次 = 1 个脉冲

三、测速原理与公式

1、计数方式

  • 使用 外部中断 0(INT0)
  • 每来一个脉冲,计数变量 +1

2、 转速计算公式

1 秒测速法(简单直观)

转速(RPM)= 脉冲数 × 60

多磁铁 / 多齿修正公式

RPM = (脉冲数 / 每圈脉冲数) × 60

四、完整示例代码(Keil C)

main.c(可直接烧录)

#include <reg52.h>

typedef unsigned char uchar;
typedef unsigned int  uint;

sbit LED = P1^0;      // 指示灯
uint pulse_cnt = 0;   // 脉冲计数
uint speed_rpm = 0;   // 转速

/* 定时器0:1秒定时 */
void Timer0_Init(void)
{
   
    TMOD &= 0xF0;
    TMOD |= 0x01;     // 模式1
    TH0 = 0x3C;       // 50ms
    TL0 = 0xB0;
    ET0 = 1;
    EA  = 1;
    TR0 = 1;
}

/* 外部中断0:霍尔脉冲 */
void Int0_Init(void)
{
   
    IT0 = 1;   // 下降沿触发
    EX0 = 1;
    EA  = 1;
}

/* 外部中断服务函数 */
void Int0_ISR(void) interrupt 0
{
   
    pulse_cnt++;
    LED = ~LED;   // 每来一个脉冲翻转一次
}

/* 定时器中断:1秒计算一次转速 */
void Timer0_ISR(void) interrupt 1
{
   
    static uchar cnt = 0;
    TH0 = 0x3C;
    TL0 = 0xB0;

    if (++cnt >= 20)   // 20×50ms = 1s
    {
   
        cnt = 0;
        speed_rpm = pulse_cnt * 60; // 1个脉冲/转
        pulse_cnt = 0;
    }
}

void main(void)
{
   
    Timer0_Init();
    Int0_Init();

    while (1)
    {
   
        // speed_rpm 即为当前转速
    }
}

五、串口输出转速

void UART_Init(void)
{
   
    SCON = 0x50;
    TMOD |= 0x20;
    TH1 = 0xFD;   // 9600bps
    TL1 = 0xFD;
    TR1 = 1;
    EA  = 1;
}

void UART_SendByte(uchar dat)
{
   
    SBUF = dat;
    while(!TI);
    TI = 0;
}

void Send_Speed(void)
{
   
    UART_SendByte(speed_rpm / 100 + '0');
    UART_SendByte(speed_rpm % 100 / 10 + '0');
    UART_SendByte(speed_rpm % 10 + '0');
    UART_SendByte('\r');
    UART_SendByte('\n');
}

六、提高精度的 3 个关键点

1、消抖(非常重要)

霍尔信号在边缘可能产生抖动:

void Int0_ISR(void) interrupt 0
{
   
    static uint last_time = 0;
    uint now = TH0;

    if (now - last_time > 5)  // 5ms 消抖
    {
   
        pulse_cnt++;
    }
    last_time = now;
}

2、多磁铁测速

磁铁数 公式
1 RPM = 脉冲 × 60
2 RPM = 脉冲 × 30
N RPM = (脉冲 / N) × 60

3、低速用“周期法”,高速用“频率法”

转速 方法
< 30 RPM 测周期(定时器捕获)
> 30 RPM 测频率(本方案 )

参考代码 基于51单片机控制霍尔传感器实现计数测速(附仿真) www.youwenfan.com/contentali/182295.html

七、常见问题排查

问题 原因
计数不准 未消抖 / 磁铁太近
转速跳动 定时器误差
无反应 霍尔接反 / 磁铁极性不对
一直触发 磁场干扰 / 上拉缺失

八、可扩展方向

LCD1602 / OLED 显示转速
多路霍尔(双电机测速)
PID 电机恒速控制
超低速周期法测速
改成 STC12 / STC15(1T 更快)

相关文章
|
5天前
|
传感器 算法 安全
基于STM32的测障测角小车设计与Proteus仿真
基于STM32的测障测角小车设计与Proteus仿真
Altium Designer如何设定/修改PCB板边框外形
Altium Designer如何设定/修改PCB板边框外形
4510 0
|
5天前
|
存储 物联网 BI
RFID车辆无感识别通行效率秒过
RFID车辆无感识别基于射频技术,通过车载电子标签与读写器毫秒级通信,实现3–10米远距离、非接触、免停车自动核验,通行仅需1–2秒,识别率≥99.9%,支持智慧停车、园区门禁、高速ETC等多场景,真正“秒过”无忧。(238字)
|
5天前
|
存储 人工智能 弹性计算
阿里云产品与AI产品组合购活动更新:最新套餐配置与组合购价格参考
阿里云产品组合购活动更新,涵盖AI产品与云产品两大板块,覆盖90%+上云场景。AI产品组合购包含Open Claw经典套餐(78元起)、AI Agent搭建全套餐(112元起)、PAI ArtLab生图套餐(112.98元起)等,支持从个人助理到企业级Agent的快速部署。云产品组合购包含经典"99"计划、0代码建站套餐(域名低至1元)、安全加速全家桶、视频直播全链路服务等,适合个人开发者及企业用户按需选购。
|
5天前
|
人工智能 运维 数据可视化
非结构化数据处理,为什么是Dataphin?
Dataphin V6.1重磅推出非结构化数据处理能力,支持文档、音视频、图片等多模态数据的一站式资产化治理:提供7类50+开箱即用算子、可视化DAG编排、文件+元数据混合管理、细粒度权限与动态脱敏,实现与结构化数据统一治理、血缘追踪和版本管控。
193 2
|
5天前
|
数据采集 监控 网络协议
STM32 + MODBUS RTU + RS485 实现方案
STM32 + MODBUS RTU + RS485 实现方案
|
5天前
|
SQL 人工智能 数据可视化
JimuReport 积木报表 v2.3.4 版本发布,免费的可视化 AI 报表
JimuReport AI专题研究 JimuReport积木报表 v2.3.4 版本发布说明与积木 Skills 快速使用指南 项目介绍 免费的 AI 可视化报表。一句话描述需求,AI 自动生成报表与数据大屏;同时提供类 Excel 拖拽设计器,兼容 30 余种数据源,轻松应对各类复杂报表场景
235 0
|
5天前
|
域名解析 数据采集 运维
Vsping在线Ping:全域网络探测技术与链路稳定性检测解析
Vsping在线Ping是一款轻量级云端网络诊断工具,依托全域分布式节点,支持多地域、多运营商同步Ping探测,无需安装、一键操作。可精准定位延迟、丢包、区域性访问异常等故障,适用于个人自查、远程办公、网站运维及服务器优化,全面提升网络排查效率与稳定性。(239字)
276 0
|
5天前
|
供应链 算法 数据安全/隐私保护
1688店铺流量提升全攻略:零基础合规实操,长效稳定起量
本文深度解析2026年1688平台免费流量逻辑,聚焦搜索、场景、活动、新灯塔四大核心维度,提供零付费、合规、可落地的新手运营方案,助工厂与中小商家突破“零曝光、零询盘”困局,实现自然流量稳步增长。
|
5天前
|
人工智能 API 网络安全
如何在阿里云上部署Hermes Agent和Claude Code 配置 Token Plan 教程
在阿里云上部署 **Hermes Agent + Claude Code**,核心是先准备云服务器与百炼Token Plan,再分别完成安装、模型配置与协同对接,全程可在同一台轻量应用服务器完成,稳定且成本可控。
253 0