第1章 工作原理
1.1 左手定则和右手定则

1.2 左手定则在直流有刷电机中的应用
电机的转动基于左手定则 。正如下图左侧所示,判断通电导体在磁场中受力方向遵循左手定则:

- 伸开左手,让磁感线穿过手心(从N极指向S极)。
- 四指指向电流的方向。
- 大拇指所指的方向就是导体受力的方向(即运动方向 FF )。

实际电机通常不只有一组线圈,而是有多组线圈分布在转子上,配合多片换向器。这样可以保证在任何时刻都有线圈处于最佳受力角度,消除单线圈电机在死点(平衡位置)无法启动或扭矩波动大的问题,使电机运转更加平稳有力。
第2章 直流有刷电机的组成部分

第3章 H桥电路控制转向
H桥(H-Bridge)电机驱动电路通过控制不同开关管的导通组合,可以改变流过电机的电流方向,从而控制电机转向或实现制动。

Q1 是左上管(连接 VCC),Q2 是左下管(连接 GND)。它们同时导通意味着:VCC 直接通过 Q1 和 Q2 短路到 GND! 这条路径不经过电机,形成直通短路(Shoot-through)。
同样,如果 Q3 和 Q4 同时导通,也会造成右侧支路的直通短路(VCC → Q3 → Q4 → GND),后果相同。
3.1 H桥电路的设计原则
为了避免这种灾难性短路,实际 H 桥驱动电路中必须加入以下保护机制:
-
死区时间(Dead Time):
- 在切换上下管时(Q1和Q2,Q3和Q4),先关闭其中一个,等待一小段时间(微秒级),再开启另一个。
- 防止因开关延迟导致的短暂重叠导通。
-
互锁逻辑(Interlock Logic):
- 硬件或软件层面确保同一侧的上下管不能同时为高电平。
- 例如:Q1 和 Q2 的控制信号互为反相 + 死区。
-
栅极驱动器集成保护:
- 现代专用 H 桥驱动芯片(如 L298N, TB6612, DRV8833 等)内部已内置防直通逻辑。
3.2 H桥电路的设计原理图
| ENABLE | IN1 | IN2 | Q1 | Q2 | Q3 | Q4 | 电机状态 |
|---|---|---|---|---|---|---|---|
| 1 | 0 | 0 | 1 | 0 | 1 | 0 | 上管制动 / 停转 |
| 1 | 0 | 1 | 1 | 0 | 0 | 1 | 正转 |
| 1 | 1 | 0 | 0 | 1 | 1 | 0 | 反转 |
| 1 | 1 | 1 | 0 | 1 | 0 | 1 | 下管制动 / 停转 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 停转 |
| 0 | 0 | 1 | 0 | 0 | 0 | 0 | 停转 |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 停转 |
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 停转 |

3.3 H桥电路电路设计原理图

第4章 STM32控制直流有刷电机
|--------------|----------------------|-------------|
| 外设 | 作用 | 控制内容 |
| 普通定时器(Timer) | 1. 延时函数 2.输出普通的PWM波 | 占空比、频率调节 |
| 高级定时器(Timer) | 输出带死区控制的PWM波 | 占空比、频率调节 |
| GPIO | 控制逻辑信号 | 方向、使能、限位 |
| ADC | 采样模拟信号 | 电流、电压 |
| USART/CAN | 通讯外设接口 | 参数调试、上位机通讯 |
| 普通定时器(Timer) | 工作在"编码器接口模式"时的功能 | 获取电机的转数或者位置 |
4.1 编码器工作原理
编码器是一种将角位移或者角速度转换成一串电数字脉冲的旋转式传感器。分为光电编码器和霍尔编码器。
通过在电机的传动轴上加装一个码盘,电机带动码盘转动, 而发射机与接收器成一对:
- 当光线穿过码盘孔的时候,接收器收到高电平
- 当光线被码盘阻断的时候,接收器收到低电平
定义从低电平变为高电平的那一瞬间(时刻)叫作上升沿 ;从高电平变为低电平的那一瞬间(时刻)叫作下降沿 。由此,通过计算单位时间内的上升沿次数、下降沿次数 并用其除以码盘的孔数 就可以计算出电机转速。为提高精度,通常同时获得上升沿、下降沿次数并求取平均值后进行计算。

常用的霍尔编码器也称AB相编码器,它通过电路信号的变化来获取电机的转速,为了得到电机转动的方向,此类编码器通过两个相近的发射器、接收器(A相、B相)同时接收信号值:

4.2 电机转速/角度获取
对所得编码器数据(信号数)做如下处理:
- 由于同时监听上升沿和下降沿,需要将信号数除以2
- 由于编码器存在AB相,即有两个收发器,需要将信号数除以2
- 所得平均信号数应除以编码器码盘上的孔数
- 电机存在减速比,需要除以电机减速比
- 上述数据处理后,所得为电机的旋转圈数
博主手上的电机减速比为30,编码器孔数为13,故而计算公式如下:
圈数 = 信号数 / 2 / 2 / 13 / 30
转速 = 圈数 * 测量频率

4.3 外设组合的应用
