让 CNC Shield V3 在 Arduino Uno 上跑起来,顺序是:先插好细分跳线帽,再把每块 A4988 的 EN 脚对准插座上的 EN 角插好,在接任何电机之前用万用表设好限流,给蓝色接线端子接 12–24V 直流电,烧录 GRBL 1.1,然后通过串口点动电机。照这个顺序做,第一次电机测试会顺顺利利;跳过方向检查或限流设置,通常的代价就是烧掉一块驱动。
CNC Shield V3 套件里有什么?怎么叠装到 Uno 上?
CNC Shield V3 套件是分开的零件:红色的扩展板本体(Protoneer 3.00 设计)、一块蓝色的 Uno R3 兼容板、四块已经焊好排针的 A4988 驱动、四片背胶散热片、一条 USB 线和一条备用排针。整个组装过程完全不用焊接——全部插接就行。套件里没有的是电源和电机,下文都会讲到。
先在 Uno 金属 USB 接口的顶部贴一条电工胶布:扩展板底面的焊点就压在它上面或离它很近,可能会和它短路。扩展板的长公针只有一个方向能对上 Uno 那几排不规则的排母——蓝色电源端子要在 Uno 的 DC 插座上方。均匀地往下压,直到完全插到底,而且没有任何一根针悬在排母外面。从这里开始,顺序很重要:跳线帽要在驱动之前插,因为它们就藏在驱动底下。

材料清单:CNC Shield V3 入门组装
可选:备用驱动
| Item | Price | Qty | |
|---|---|---|---|
A4988 STEPPER MOTOR DRIVER 35V 2A MICROSTEPPING MODULE FOR CNC 3D PRINTER ARDUINOA4988MD | RM9.90 |
A4988 驱动插反,或在通电时拔下电机,都可能当场烧掉——手边备一块,这种失误两分钟就能搞定。套件不含步进电机:我们的姐妹店 Smith3D 有已配好 1 米线的 NEMA 17。
A4988 驱动该朝哪个方向插?细分跳线帽又是做什么的?
A4988 的插座是对称的,所以驱动两个方向都插得进去——但只有一个方向能活下来。每块驱动的引脚名都印在板边:把驱动的 EN 角对准扩展板插座上的 EN 标记;这时银色微调电位器会在 STEP/DIR 那一端。再交叉确认一次:驱动的 B2、A2、A1、B1 引脚应该朝向该轴的 4 针电机排针,两者是直接连通的。插反的话,扩展板的 12V 电机电源脚会碰上驱动的 DIR 输入——这是一个最高只能承受 5.5V 的逻辑引脚——一通电芯片就报废。四块都检查完,再把带鳍片的散热片贴到黑色芯片上。
插驱动之前,先设好细分。每个插座底下有三个跳线位(MS1、MS2、MS3),插上跳线帽就会把驱动的模式引脚拉高。典型的 NEMA 17 每圈 200 个整步;细分就是让驱动给两组线圈输出介于中间的电流档位,让转轴停在整步之间——1/16 细分时每圈有 3,200 个位置,这也是细分后的电机比原始那种 1.8° 一格一格“咔哒”走的更顺、更安静的原因。每个要用的轴,底下三个跳线帽全插上:1/16 是 GRBL 常用的起点,因为这份顺滑不会牺牲可用速度——GRBL 每秒 30,000 个步进脉冲,在每圈 3,200 个脉冲时仍能跑到约 560 RPM。
| 插上的跳线帽 | 细分模式 | 每圈位置数 |
|---|---|---|
| 不插 | 整步 | 200 |
| MS1 | 半步 | 400 |
| MS2 | 1/4 步 | 800 |
| MS1 + MS2 | 1/8 步 | 1,600 |
| MS1 + MS2 + MS3 | 1/16 步 | 3,200 |
怎么用万用表设置 A4988 的限流?
A4988 是一款斩波驱动:它把整整 12V 加到电机线圈上,通过一颗小小的采样电阻盯着电流往上爬,电流一碰到设定的上限就立刻关断开关——然后再来一遍,每秒几千次。所以 12V 或 24V 的电源可以安全驱动线圈额定只有 2–3V 左右的电机:驱动调节的是电流,而这个上限由微调电位器上的电压 Vref 决定。设太高会烤坏电机、让驱动过热;设太低,电机带负载时会停转或丢步。微调电位器出厂时停在随机位置,所以这一步不能省。
电流上限 = Vref ÷ (8 × R),R 是采样电阻的阻值——这是 Pololu 为 A4988 驱动板给出的关系式。我们的 A4988 板在芯片旁边有两颗标着 R100(0.1Ω)的采样电阻,所以 Vref = 0.8 × 你想要的线圈电流。计算之前先看清自己板上的电阻:有些仿制板用的是 R050(0.05Ω),系数就变成 0.4——照搬 R100 教程里的 Vref,电流会翻倍。
举个例子:典型的 42×40mm NEMA 17,也就是 Smith3D 出售的这一类,每组线圈额定约 1.5A——以你电机机身上的标签为准。用满额定电流需要 Vref = 0.8 × 1.5 = 1.2V;先保守地从 0.8A 开始:Vref = 0.64V。真正的限制在于发热:驱动的损耗随电流的平方增长,而 Pololu 标称它的 A4988 驱动板在没有散热片或风扇时每组线圈约 1A。限流以后随时可以调高;烤坏的驱动可救不回来。
测量时不要接电机,只插 USB——微调电位器分的是 5V 逻辑电源,接上 12V 毫无帮助,只会多一个风险:表笔一滑,就把 12V 短接到逻辑引脚上。把万用表拨到直流 2V 档,黑表笔按在任一 GND 点上,例如电源端子的 − 螺丝,红表笔碰微调电位器的金属螺丝——螺丝本身就是 Vref 测量点。用任意一把小螺丝刀一点一点转到目标值,每块驱动都重复一遍。下面这段视频来自 Pololu——原版 A4988 驱动板就是他们设计的——示范了表笔怎么放、电位器怎么转。视频约九分钟(英文),拍的是他们的 DRV8825 板,电流公式不一样——手法看视频,数字照上文,因为连 Pololu 自家的 A4988 驱动板用的也是 0.068Ω 采样电阻,而不是我们板上的 R100:

CNC Shield V3 怎么供电?为什么用 12–24V,而不是 36V?
CNC Shield V3 的蓝色螺丝端子上印着 12–36V,两颗螺丝下方分别标着 − 和 +,它只给电机供电——Uno 仍然靠 USB 供电。所以千万别把适配器插进 Uno 自己的 DC 圆头插座,虽然插得进去:那样只会给 Uno 供电,电机那一路完全没电。
36V 这个数字是给 DRV8825 准备的——这是一款耐压 45V 的驱动,同样插得进这些插座;用 A4988 的话,请把实际上限当作 24V:A4988 的电机电压绝对最大值是 35V,而开关电机线圈产生的电压尖峰会叠加在电源电压之上。36V 再叠上一个尖峰,正是驱动“莫名其妙”烧掉的原因。电压加高,换来的只有速度:每一步电流更快升到上限,所以在较高的步进速率下扭矩也撑得住——第一次测试,12V 绰绰有余。
不用剪线的干净做法:12V 2A 适配器末端是 5.5×2.1mm 圆头插头,直接插进带线 DC 母座,再把母座的红、黑线头拧进端子——红接 +,黑接 −。先在工作台上验一下:万用表拨到直流 20V 档,红表笔接红线,量母座两根裸线头之间应该约 12V——显示屏出现负号,就说明线接反了。量这一下,适配器标错和极性接反都能抓出来,而这块扩展板没有防反接保护,哪一个错都不会放过你。
老实说,12V 2A 只够一台电机在 0.6–0.8A 的限流下运行——斩波驱动的工作方式类似降压转换器,所以电源端的电流远低于线圈电流。要让三四台电机全力运行,就需要接市电的铁壳开关电源,它的 230V 接线端子是裸露的:这不适合新手升级,也不在本文范围内。圆头尺寸和电源规格另有教程:直流电源怎么选。
怎么把 GRBL 1.1 烧录到 Arduino Uno?
GRBL 是把 Uno 变成 G-code 运动控制器的固件。自己动手烧录:不同 GRBL 版本的引脚功能有变化,所以清楚知道板子跑的是哪个版本很重要。从官方 gnea GitHub releases 下载 GRBL 1.1 的 ZIP 并解压。
在 Arduino IDE 2 里,把下载包里面的 grbl 文件夹复制到 sketchbook 的 libraries 文件夹(通常是 Documents/Arduino/libraries),然后重启 IDE——这是 GRBL 官方 wiki 教的做法。IDE 2 的 Add .ZIP Library 菜单只接受 ZIP 文件,而 GRBL 的 ZIP 把库多包了一层文件夹。在 IDE 1.8 里,Sketch → Include Library → Add .ZIP Library 可以直接选那个内层文件夹。不管用哪个版本,选了整个下载包而不是里面的 grbl 文件夹,都是最经典的坑。
打开 File → Examples → grbl → grblUpload,选 Arduino Uno 和你的端口,上传。端口列表里没有?套件里的 Uno 用的是 CH340 USB 芯片,可能需要装驱动;我们的 Arduino Nano 入门教程讲了怎么装,因为 Nano 用的是同一颗芯片。这个固件会占掉 Uno 约 92% 的 flash 和大部分 RAM,所以 IDE 跳出 Low memory available 警告是正常的——GRBL 是故意把规划缓冲区(planner buffer)设得刚好用满 Uno 的 RAM。
打开串口监视器(Serial Monitor),波特率设为 115200,行尾选 New Line,因为一行命令没有结束符,GRBL 就不会执行它。看到欢迎信息 Grbl 1.1h ['$' for help],就证明版本没错。
接下来是引脚映射的坑。这块扩展板的丝印是在 GRBL 0.8 时代画的;从 GRBL 0.9 起,有两个功能对调了引脚,好让主轴调速 PWM 用上硬件 PWM 引脚 D11。在 GRBL 1.1 上,丝印正好有两处标错:
| 丝印标注 | Uno 引脚 | GRBL 1.1 实际功能 |
|---|---|---|
| EN / GND | D8 | 启用/关闭全部驱动(与丝印一致) |
| X.STEP / X.DIR | D2 / D5 | X 轴步进与方向(Y:D3/D6,Z:D4/D7) |
| X+ X− / Y+ Y− | D9 / D10 | X、Y 轴限位开关(与丝印一致) |
| Z+ Z− | D11 | 主轴调速 PWM——不是 Z 轴限位 |
| SpnEn | D12 | Z 轴限位开关——不是主轴使能 |
| SpnDir | D13 | 主轴方向(与丝印一致) |
| Abort / Hold / Resume | A0 / A1 / A2 | 复位、进给暂停、循环启动(与丝印一致) |
| CoolEn | A3 | 冷却液开/关(与丝印一致) |
CNC Shield V3 只是比固件早出生——GRBL 自己的引脚映射文件里写明了这次对调。这些都不妨碍眼下的第一次测试:GRBL 1.1 默认关闭回原点(homing)和硬限位,所以暂时不需要接任何开关。
步进电机怎么接线?第一次测试怎么做?
CNC Shield V3 套件里没有电机,合适的搭档是 NEMA 17 双极步进电机——四根线、两组线圈——插在每个驱动旁边的 4 针公排针上。我们的姐妹店 Smith3D 有两款已配好 1 米线的型号:42×40mm NEMA 17,以及机身更长的 42×48mm NEMA 17。我们 ULN2003 套件里的小型 28BYJ-48 在这里不能用——它是 5 线单极电机,那根共用的红线把两组线圈的中心抽头接到同一个电源上,而 A4988 需要两组独立的线圈,才能让电流反向流过。两者的区别,以及什么时候舵机比两者都合适,请看步进电机 vs 舵机。
插上之前,先用万用表 200Ω 档找出线圈配对:同一组线圈的两根线之间只有几欧姆,不同线圈的线之间则是开路。每一对线要插在相邻的针脚上——前两针一对、后两针一对,因为排针的每一半各对应驱动的一个 H 桥;要是一组线圈被拆到两半,电机只会原地嗡嗡响。
| 步骤 | 第一次测试,按顺序来 |
|---|---|
| 1 | 全部断电。插好 X 轴驱动(EN 角对准),底下插好跳线帽,贴上散热片 |
| 2 | 把电机线插到 X 轴驱动旁边的 4 针排针上 |
| 3 | 先插 USB,再打开 12V 电源 |
| 4 | 打开串口监视器,波特率 115200,行尾 New Line——出现 Grbl 1.1h 欢迎信息 |
| 5 | 发送下面的命令;转轴先朝一个方向转,再转回来 |
| 6 | 方向反了?发送 $3=1 在软件里反转 X 轴,或者完全断电后把 4 针插头调转 180° 再上电 |
$$ ; 列出 GRBL 设置——$100=250.000 就是 X 轴每毫米步数
G91 ; 相对坐标模式
G0 X10 ; “X 移动 +10mm”——X 轴电机转动
G0 X-10 ; 再朝反方向转回来
按默认值算,数字很具体:GRBL 认为每毫米 250 步,所以 G0 X10 会发出 2,500 步——在 1/16 细分每圈 3,200 步的情况下,略多于四分之三圈。真正的机器上,你要根据同步带或丝杆来校准 $100(每毫米步数 = 3,200 ÷ 每圈移动的毫米数);工作台测试的话,两个方向都转得顺就算过关。从第一天就要养成两个习惯:12V 通电时绝对不要拔插电机——打断线圈里的电流会逼出一个电压尖峰,可能直接烧掉驱动;还有,手指和松散的线都要远离转轴,因为命令一到,步进电机就是全力启动。
每接受一行命令,GRBL 都会回复 ok。动完之后转轴变松是正常的:GRBL 默认的 $1=25 会在运动停止 25ms 后关闭驱动。如果电机原地嗡嗡响却不转,就是有一组线圈被拆到了排针两半;如果会转但一顿一顿的,回头重新检查 Vref。

我们常见的错误
驱动插反了 180°。插座照样插得进,板子看起来也整整齐齐——直到通电,电机电源碰上逻辑引脚。每块驱动检查 EN 角只要五秒钟;可选清单里那块备用 A4988,也正是为这种情况准备的。
因为电机“已经会动”,就跳过 Vref。出厂随机的微调电位器有时刚好落在能用的电流上——有时却落在会让驱动过热的电流上,驱动于是短暂关断,一次又一次。电机转一下、顿一下、停一下又再转,这是过热保护在反复关断,不是板子坏了。
通电时拔下电机去换轴。只要驱动处于启用状态,步进电机线圈里就一直有电流,即使静止不动也一样。电流还在流的时候断开电路,会逼得线圈电压猛然飙升,而驱动必须吸收这个尖峰,可能当场烧掉。每一次都要先断电。
常见问题
CNC Shield V3 套件包含步进电机吗?
不包含——套件里是扩展板、Uno、四块 A4988 驱动、散热片和 USB 线。它驱动的是 NEMA 17 双极步进电机,我们的姐妹店 Smith3D 有配好线的型号。新手 Arduino 套件里那种 5 线的 28BYJ-48 是单极电机,原样无法用 A4988 驱动。
A4988 限流的 Vref 该设多少?
我们的板子用的是 0.1Ω(R100)采样电阻,Vref = 0.8 × 你想要的线圈电流。先从电机额定电流的一半左右开始,最高不超过约 1A——这是 A4988 不加额外散热时能承受的水平;典型的 1.5A NEMA 17 设 0.8A 上限,就是 0.64V。用 R050 电阻的板子则是 0.4 × 电流,所以先看清采样电阻再设。
CNC Shield V3 能像丝印写的那样用 36V 吗?
用 A4988 驱动就不行。36V 这个数字以 DRV8825 驱动为前提——这是一款耐压 45V、同样插得进这些插座的芯片(扩展板的设计者 Protoneer 也注明只有 DRV8825 能用 36V);而 A4988 的电机电压绝对最大值是 35V——还没算开关尖峰,36V 电源就已经超标。请保持在 12–24V;一两台电机、业余级的电流,12V 就绰绰有余。
为什么 Z 轴限位开关和主轴引脚不在 CNC Shield V3 丝印标的位置?
丝印比 GRBL 0.9 还早,而 GRBL 0.9 对调了两个引脚,好让主轴 PWM 用上硬件 PWM 引脚 D11。在 GRBL 1.1 上,印着 Z+/Z− 的引脚输出的是主轴 PWM,印着 SpnEn 的引脚才是 Z 轴限位输入。X、Y 轴限位就在丝印标的位置。
套件里的 Arduino Uno 预装了 GRBL 吗?
把 Uno 当成空白板,自己烧录 GRBL 1.1——五分钟就能搞定,最后还有凭证:串口监视器的欢迎信息会显示确切版本,而引脚功能取决于版本。任何 Uno R3 兼容板都能按上面的步骤,通过 Arduino IDE 烧录 GRBL 1.1。
最后更新:2026 年 11 月。有问题?WhatsApp 联系我们。



CNC SHIELD V3 KIT WITH 4X A4988 DRIVERS & UNO R3 BOARD 4-AXIS STEPPER MOTOR CONTROLLER
Power Supply Adapter DC Universal AC to DC Converter PSU 5V2A 5V3A 9V2A 12V2A - P.S. ADAPTOR (12V2A)
5.5x2.1mm DC Power Male Connector Plug Jack Adapter for Arduino DIY Electronics Projects - 5.5x2.1 DC CONNECTOR (F)
XL830L Digital Multimeter with backlight Portable Multimeter Electronics Project
A4988 STEPPER MOTOR DRIVER 35V 2A MICROSTEPPING MODULE FOR CNC 3D PRINTER ARDUINO