嵌入式学习笔记之舵机、步进电机与ULN2802芯片
最近想做一个小展示台项目,就是那种能慢慢旋转展示模型或者产品的小电动平台,计划和FPC开发板的蝴蝶一起制作,看别人的成品转得又稳又慢而且可调速,我就也想自己做一个。但是我对步进电机和舵机并不了解,舵机只是之前看别人嵌入式的项目看到的一个元件,所以就用此文记录。
一、舵机(Servo)到底是什么?
舵机其实可以看成是一个“带脑子的电机”, 外部你只看到三根线:
- 红线 —— 电源正极(通常 5V)
- 棕/黑线 —— 地线
- 黄/橙线 —— 信号线(接单片机 PWM 输出)
它长下面那样:

但是舵机它不仅仅是一个转子和线圈那么简单,里面还藏着一整套控制系统。
它由以下元件组成:
一个小直流电机;
一组减速齿轮;
一个电位器(用来检测角度);
一块小控制电路板。
我们的MCU 通过 PWM 信号告诉舵机“你要转到什么角度”,比如:1.5ms 脉宽代表中间位置,1ms 是最左,2ms 是最右。舵机内部的控制电路会不断比较当前角度和目标角度自动调整,让电机转过去然后停下。
总结就是:
舵机不需要你控制转动顺序,它自己知道怎么动、动多少,所以舵机特别适合做机械臂、舵面控制、云台这类需要**“定位”**的东西。
二、步进电机(Stepper Motor)是怎么一回事?
步进电机就完全不同了,它没有控制电路,也没有角度反馈,就是一个“纯粹的电磁铁 + 线圈”结构。你要它动,它不会自己想办法,你必须按一定顺序给它的线圈通电,它才一步步地走。
比如常见的五线四相步进电机(也叫单极性步进电机),内部有 4 组线圈:A、B、C、D,这 4 组线圈的另一端共用一根线(COM),所以总共有 5 根导线。

如果你按顺序给这 4 个线圈通电:
1 | A → B → C → D → A → B → C → D ... |
电机就会一小步一小步地转动,每步的角度叫 步距角(比如 1.8°、7.5°),连续通电就会形成稳定旋转,所以步进电机非常适合需要精确控制转动角度或速度的场合,但它本身没有反馈机制,所以如果控制信号乱了, 它就可能“丢步”或卡死。
所以若要舵机和步进电机做个比较,可以简单的把舵机当作集成好的一体机,通电给PWM方波信号就行,而步进电机更像原始电机,需要控制不同的线圈进行转动,但是由于我们MCU引脚的驱动电路有限,所以我们要引入驱动芯片—ULB2802
三、ULN2802芯片
ULN2802 是一颗很常见的 达林顿晶体管阵列 芯片,它名字虽然拗口,但作用很简单:
它帮单片机去“带大电流”的东西,比如电机、继电器、灯。
因为我们单片机的 IO 口输出电流非常小(通常只有几毫安),而电机启动电流往往是几百毫安甚至更高, 这时候不能直接接MCU引脚,否则 MCU 直接烧。

上面那段话想必大部分人都难以理解,其实可以简单理解为ULN2802 就是个中间层的“功率放大开关”:
- 电子元件输入端接 MCU(3.3V 或 5V 电源)
- 电子元件输出端接ULN2802的输出端(比如上图的10号引脚1C);
- 当1号引脚1B输入为高电平时,10号引脚1C对应输出就“接地”,形成电势差,电机通电开始转动;
- 当输入为低电平时,输出断开,电机停止。
- E接GND
所以,如果要使用ULN2802,电路图大概要这样接:

- 5V电源接100nf的电容用于滤波
- IN1-4引脚分别接MCU的引脚,用于驱动电机
- 1-4C是对应的输出引脚
- E接地
- ZX-XH2.54-5PZZ 是个排针,一般电机我们都是要外接的
上图还有一个重要的COM引脚,可以看到我们接了5V的输入,但它不是给ULN2802供电的,我们下章讲
四、关于 COM 脚和“钳位”保护
如果你自己去翻ULN2802的文档,可以看到对COM口的定义是如下的:

可以看到文档对COM的描述是钳位二极管公共端,是不是大部分人刚看到都不知道啥意思,其实很简单:这个脚不是电源供电用的,而是用来连接保护二极管的公共端,当你驱动感性负载(比如电机、继电器)时, 在断电那一瞬间会产生一个反向高压电流(叫反电动势),可能会击穿芯片。
而ULN2802 内部已经把每路输出都接了一个保护二极管,只要你把 COM 接到电机电源正极(比如 +5V),这些二极管就能把反向电压“钳住”,安全地引回电源,保护芯片,这就是所谓的“钳位保护”。
再看这张图是不是就能理解为什么要接5V了,至此,我们算是可以了解步进电机的基本使用了吧
毕竟下面这张原理图已经把走线都设计好了,ULN2802在此当驱动器使用,用小信号控制大负载,不放大电压,让你能安全地控制电机、继电器、灯光这类高电流设备。

最后补充一句,看完这篇博客,你是不是也应该想好我们用什么了,那当然是步进电机了,因为我们做展示台的情况下会使用到转速,而步进电机可以很方便的控制我们的转速。
- 标题: 嵌入式学习笔记之舵机、步进电机与ULN2802芯片
- 作者: XuanRan
- 创建于 : 2025-11-12 16:30:00
- 链接: https://blog.xuanran.cc/2025/11/12/嵌入式学习笔记之舵机、步进电机与ULN2802芯片/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。