news 2026/8/6 15:44:50

[具身智能-793]:MCU 控制电机的运动的手段和方法?MCU 检测电机编码器反馈的手段与方法。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[具身智能-793]:MCU 控制电机的运动的手段和方法?MCU 检测电机编码器反馈的手段与方法。

MCU 控制电机运动手段 + 编码器反馈检测手段

面向 STM32 等单片机,机器人小车场景:直流减速电机、步进电机、舵机;

区分输出控制(MCU→电机)输入采集(编码器→MCU)两大部分。

一、MCU 控制电机运动的手段和方法

1. 直流有刷减速电机(GB37‑520 这类小车电机)

目标:控制转速、正反转、启停;MCU 不能直接驱动电机大电流,必须外接驱动芯片(L298N、DRV8833、TB6612)。

1)方向控制:普通 GPIO 输出高低电平

  • IN1、IN2 两个逻辑脚给到电机驱动芯片,组合高低电平决定正转 / 反转 / 刹车 / 滑行。 例:IN1=1,IN2=0 →正转;IN1=0,IN2=1→反转;IN1=IN2 同电平→刹车。

2)速度控制:PWM 脉冲宽度调制(定时器输出 PWM)

  • PWM 占空比越大,等效平均电压越高,电机转速越快
  • 频率常用:10kHz‑20kHz(避开人耳听觉,减少电机啸叫)
  • MCU 片上定时器生成PWM 输出到驱动芯片的 PWMA/PWMB 引脚。

MCU 输出逻辑信号,电机驱动芯片做功率放大。MCU 本身不流过电机大电流。

2. 步进电机

目标:控制转动角度、步数、转速1)脉冲 + 方向模式(最常用)

  • STEP 脉冲:每来 1 个脉冲,电机走 1 步;定时器输出脉冲。
  • DIR 方向:GPIO 高低电平控制旋转方向。
  • 外接步进驱动:A4988、DRV8825,支持细分。 2)相位直接输出模式(全桥驱动,少用)MCU 直接输出 A、B、A‑、B‑四相时序,CPU 负担重,不推荐。

细分:驱动器内部处理,MCU 只需要发脉冲,不需要管细分。

3. 舵机(SG90 MG996R)

1)标准模拟舵机:PWM 角度控制(50Hz 周期)周期 20ms,高电平 0.5ms~2.5ms 对应0‑180°角度。 定时器输出硬件 PWM;不是占空比,是高电平绝对时间决定角度

2)总线/数字舵机(串口舵机)UART 串口发送指令数据包,设定角度、转速;一条总线挂载多个舵机。

4. BLDC 无刷电机

  • FOC 矢量控制:MCU 定时器输出三相互补 PWM,配合电流采样,复杂;无人机、移动底盘使用。


二、MCU 检测电机编码器反馈的手段与方法

编码器作用:

测量电机实际转速、转过的脉冲数、位置

增量编码器(A/B 相正交编码器)、霍尔编码器、绝对值编码器

小车直流电机绝大多数是AB 相正交增量霍尔编码器

增量正交编码器 A/B 相(最常见,机器人小车)

输出 A 相、B 相两路方波。

  • 正转:A 相位超前 B 相 90°;反转:B 相位超前 A 相 90°。
  • 脉冲数:电机转一圈输出 N 个脉冲。
方案 1:定时器硬件正交解码(Encoder Mode,强烈推荐⭐)

STM32 高级 / 通用定时器自带编码器接口模式

  • 将 A、B 直接接入定时器 CH1、CH2 通道。
  • 硬件内部自动计数、自动判断正反转,不需要 CPU 干预
  • CNT 寄存器自动累加 / 递减脉冲。CPU 只需要定时读取 CNT 计数值。

优点:不占用 CPU,不会丢脉冲,高速旋转也可靠。

缺点:必须占用定时器的两个通道,不是所有定时器支持编码器模式

方案 2:外部中断 EXTI(软件解码,不推荐高速)

A、B 接到 GPIO,配置下降沿 / 上升沿外部中断。中断回调函数中读取 A、B 电平,判断方向,软件计数。

缺点: 电机转速很高时,中断频繁爆发,挤占 CPU;电机高速容易丢脉冲;电机抖动会频繁误触发。

仅低速场景临时用,底盘电机不要用此方案。

读取转速、位置逻辑

  1. 读取定时器 CNT 计数值,获得脉冲总数;
  2. 固定时间间隔采样两次计数值,差值得到脉冲变化量;
  3. 根据电机线数、减速比换算:角度、位移、转速 (rpm)。

注意:CNT 寄存器会溢出,需要做溢出补偿处理。

绝对值编码器

上电直接读出绝对角度位置不需要记累计脉冲。

  • SPI 接口 / I2C / SSI 串口,MCU 使用 SPI/I2C 外设读取角度。 机器人底盘较少,机械臂关节常用。

霍尔通道编码器(只有 A 相,无 B 相)

只能计数脉冲,不能识别旋转方向,机器人基本不用。

编码器接线注意点

  1. 编码器 VCC/GND 必须供电,与 MCU 共地;
  2. 编码器输出电平 3.3V/5V 匹配 MCU IO;5V 编码器输出接到 3.3V MCU 需要分压,防止烧毁 IO。

三、工程闭环控制完整链路(机器人小车)

plaintext

MCU定时器PWM输出 →电机驱动芯片 →直流电机旋转 ↓ 电机同轴霍尔编码器输出A/B相 ↓ 接入STM32定时器编码器硬件接口,硬件自动计数 ↓ MCU定时读取脉冲计数值,换算真实转速 ↓ PID算法对比【目标转速】和【实际转速】,更新PWM占空比输出

四、资源选型小结

  1. 电机控制输出:主要消耗:GPIO、定时器 PWM;大功率电机依赖外部驱动芯片。
  2. 编码器输入反馈:优先使用定时器硬件 Encoder 正交解码,尽量避免外部中断软件解码。

一台双轮差分小车:2 路电机 PWM 输出 + 2 路定时器编码器接口。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/6 15:43:21

08 千人千面:Agent用户记忆与上下文管理

这是"AI Agent落地:业务系统智能化改造"系列的第八篇。前七篇讲了Agent怎么建、怎么编排、怎么做RAG。这篇讲一个容易被忽略的问题:Agent怎么”记住”用户。 不是”存对话历史”,而是”知道你是谁、记住你的偏好、给你最合适的回答…

作者头像 李华
网站建设 2026/8/6 15:42:22

深度解析ESP-SR:构建高效离线语音识别的实战指南

深度解析ESP-SR:构建高效离线语音识别的实战指南 【免费下载链接】esp-sr Speech recognition 项目地址: https://gitcode.com/gh_mirrors/es/esp-sr ESP-SR作为乐鑫为ESP32系列微控制器设计的开源智能语音识别框架,为物联网开发者提供了完整的离…

作者头像 李华
网站建设 2026/8/6 15:42:00

数据隐私的定义是什么?数据隐私对企业数据治理有什么用?

上周三晚上十一点,我还在工位上对一份报表数据。业务方催得急,需要把 CRM 里的客户消费记录和客服系统的工单数据并到一张表里,出个周报。两个系统的导出格式不一样,字段名对不上,光是调格式、剔重、补缺就折腾了两个多…

作者头像 李华
网站建设 2026/8/6 15:40:07

文科生用Python+Pygame开发历史策略游戏:从零到打包的实战指南

1. 项目缘起:一个历史系学生的“不务正业” 去年秋天,当身边的同学都在为文献综述和田野调查发愁时,我,一个历史系的大三学生,却一头扎进了Python和Pygame的世界,开始鼓捣一个名为《秦影长歌:始…

作者头像 李华
网站建设 2026/8/6 15:37:39

3步实现Windows作为AirPlay 2接收器:开源协议的完整逆向工程

3步实现Windows作为AirPlay 2接收器:开源协议的完整逆向工程 【免费下载链接】airplay2-win Airplay2 for windows 项目地址: https://gitcode.com/gh_mirrors/ai/airplay2-win 将iPhone、iPad或Mac屏幕无线投射到Windows电脑,曾经是苹果生态用户…

作者头像 李华