前言
步进电机是一种非常常见的电机,在非常多的机电控制领域都可以看到。它特殊的接口可以非常方便的就做到电机按步走。这篇文章用来记录一些相关的内容。
步进电机
步进电机是一种将电脉冲信号转换为固定角度位移的执行元件。简单来说,每给它一个脉冲信号,它就转动一个固定的角度,这个角度被称为步距角。它本质上是一种开环控制电机,不需要反馈就能实现精确的位置控制。
两相四线和四相五线是步进电机中最常见的两种接线类型,但它们本质上都是两相步进电机。两者的核心区别在于内部绕组的连接方式和出线方式,这也直接决定了驱动方式的不同:
| 特性 | 两相四线电机 | 四相五线电机 |
|---|---|---|
| 出线数量 | 4 根 | 5 根 (或 6 根) |
| 内部结构 | 两组完全独立的线圈绕组 | 两组线圈绕组,中间抽头连在一起引出 |
| 常见代表 | 42步进、57步进电机 | 28BYJ-48 步进电机 |
| 驱动类型 | 双极性驱动(电流需换向) | 单极性驱动(电流固定流向) |
| 驱动电路 | H 桥,结构较复杂 | 达林顿阵列(如 ULN2003),结构简单 |
| 整步励磁方式 | 可选单相励磁或双相励磁 | 通常只有单相励磁 |
| 整步拍数 | 4 拍 | 4 拍 |
| 半步拍数 | 8 拍 | 8 拍 |
| 基本步距角(典型) | 1.8° | 5.625°(28BYJ-48 减速前) |
| 控制灵活性 | 可微步细分,控制精细 | 一般不细分,控制较粗糙 |
| 典型控制器 | A4988、TB6600 等 | ULN2003 + 单片机 GPIO |
两相四线电机(双极性驱动)
两相四线电机只能用双极性驱动,通过 H 桥使电流在绕组中双向流动。常见走步方式有整步和半步两种。
下面是比较常见的42步进电机和驱动板:

两相四线常见的有全步和半步方式,全步有分为单相励磁和双相励磁。
单相全步驱动(每次仅一相通电,4步),单相励磁下每次只给一相绕组通电,扭矩较小但简单。步距角为基本步距角(如 1.8°):
| Step Sequence | 1A | 2A | 1B | 2B |
|---|---|---|---|---|
| 1 | + | - | ||
| 2 | + | - | ||
| 3 | - | + | ||
| 4 | - | + |
双相全步驱动(每次两相通电,4步),双相励磁下每次给两相同时通电,转子停在两线圈中间,扭矩更大,步距角不变:
| Step Sequence | 1A | 2A | 1B | 2B |
|---|---|---|---|---|
| 1 | + | - | + | - |
| 2 | - | + | + | - |
| 3 | - | + | - | + |
| 4 | + | - | - | + |
半步驱动(单双相交替,8步,步距角减半),半步驱动下将单相与双相励磁交替组合,步距角减半(如 0.9°),运转更平滑,但扭矩交替变化:
| Step Sequence | 1A | 2A | 1B | 2B |
|---|---|---|---|---|
| 1 | + | - | ||
| 2 | + | - | + | - |
| 3 | + | - | ||
| 4 | - | + | + | - |
| 5 | - | + | ||
| 6 | - | + | - | + |
| 7 | - | + | ||
| 8 | + | - | - | + |
现代驱动器普遍支持微步(细分),通过精确控制两相电流的正弦波比例,可将一个整步细分为 16、32 甚至 256 微步。


下面是一个介绍A4988驱动步进电机的文章:
《A4988驱动NEMA步进电机(42步进电机)》
http://www.taichi-maker.com/homepage/reference-index/motor-reference-index/arduino-a4988-nema-stepper-motor/
-
四相五线电机(单极性驱动)
四相五线电机通常用单极性驱动,公共端(COM)接电源正极,驱动电路只需依次将各抽头接地(低电平),电流方向固定不变。
下面是一个常见的四相五线电机和对应的驱动板子(用的达林顿管,其实就是四个晶体管):



四相五线电机控制也分为全步驱动和半步驱动。
全步驱动每次只给一个抽头通电,为单相励磁。以 28BYJ-48 为例,减速前步距角通常为 5.625°(转子一圈 64 步)。
| Step Sequence | Phase 1 | Phase 2 | Phase 3 | Phase 4 |
|---|---|---|---|---|
| 1 | 1 | 1 | 0 | 0 |
| 2 | 0 | 1 | 1 | 0 |
| 3 | 0 | 0 | 1 | 1 |
| 4 | 1 | 0 | 0 | 1 |
半步驱动在相邻抽头间插入两拍同时导通的状态,步距角减半(约 2.8125°),运转更平滑。
| Step Sequence | Phase 1 | Phase 2 | Phase 3 | Phase 4 |
|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 0 |
| 2 | 1 | 1 | 0 | 0 |
| 3 | 0 | 1 | 0 | 0 |
| 4 | 0 | 1 | 1 | 0 |
| 5 | 0 | 0 | 1 | 0 |
| 6 | 0 | 0 | 1 | 1 |
| 7 | 0 | 0 | 0 | 1 |
| 8 | 1 | 0 | 0 | 1 |
若将四相五线电机的公共端悬空,只用四个抽头,它可当作两相四线电机,使用双极性驱动器按上表的方式驱动,性能会更好。
下面是一个比较好的介绍28BYJ-48电机控制原理与代码的文章:
《How to Control 28BYJ-48 Stepper Motor with ULN2003 Driver and Arduino》
https://playwithcircuit.com/28byj48-stepper-motor-arduino-tutorial/
上述两个步进电机内容也可以参考下面内容:
《Stepper Motors with Arduino – Getting Started with Stepper Motors》
https://dronebotworkshop.com/stepper-motors-with-arduino/
舵机
舵机其实也是一种步进电机,只不过早期的时候在国内航模圈经常使用这种小型化的步进电机来控制方向舵,所以这类电机经常被叫做 舵机 ,这个说法也就慢慢的流传开来了。其中比较出名的就是下面这种SG90,也被叫做9g电机,就是下面这种:

下面这中也挺常见:

常见的舵机一般只需要一个PWM信号(通常频率为50Hz,即一个周期20ms)就可以控制。根据可控制角度的不同通常分为180°和360°两种。
180°的舵机通常根据给到的PWM的脉宽不同可以控制不同的角度;360°的舵机通常通常根据给到的PWM的脉宽不同控制转动方向和转动速度。
| 特性 | 180° 舵机 (角度伺服) | 360° 舵机 (连续旋转/速度伺服) |
|---|---|---|
| 控制的目标 | 绝对角度 | 旋转速度和方向 |
| 反馈闭环 | 内部电位器反馈主轴角度 | 无角度闭环,只能控制速度 |
| 能否控制角度 | 能 | 不能 |
| 典型应用 | 机器人关节、摄像头云台、航模转向 | 移动机器人的轮子、自制小风扇 |
| 0.5ms 脉冲 (占空比2.5%) | 转到 0° (最左) | 全速正转 |
| 1.0ms 脉冲 (占空比5%) | 转到 45° | 半速正转 |
| 1.5ms 脉冲 (占空比7.5%) | 转到 90° (正中) | 停止 |
| 2.0ms 脉冲 (占空比10%) | 转到 135° | 半速反转 |
| 2.5ms 脉冲 (占空比12.5%) | 转到 180° (最右) | 全速反转 |
除了上述两类舵机,另外也有通过串口或其他通讯接口直接通讯控制的舵机。
1644

被折叠的 条评论
为什么被折叠?



