利用 Arduino Nano R3 自制全功能 CNC 雕刻机
项目概述
本项目将指导你利用废弃光驱(CD-ROM)的滑轨和步进电机,结合 Arduino Nano R3 与 A4988 步进电机驱动板,构建一台可运行 G 代码的三轴 CNC 雕刻机。项目成本低廉,适合电子爱好者入门数控加工,同时深入理解步进电机控制、G 代码解析及机械结构设计。
所需材料
- Arduino Nano R3 × 1
- A4988 步进电机驱动板(SparkFun 或同款)× 3
- 废弃光驱(CD-ROM)× 3(拆取滑轨、步进电机、激光头组件)
- 跳线若干
- OpenBuilds 铝合金间隔柱 × 1套(用于固定滑轨)
- DC 电源插座(公头)× 1
- 12V/2A 以上开关电源 × 1(驱动步进电机)
- 螺丝、螺母、绝缘胶带、热熔胶等辅助材料
所需软件
- XLoader(用于烧录 GRBL 固件)
- Universal G-Code Sender(UGS,用于发送 G 代码控制机器)
- Inkscape(矢量绘图,配合插件生成 G 代码)
- MakerCAM 或 LaserWeb(在线 CAM 工具,生成加工路径)
制作步骤
1. 机械结构组装
将三个光驱的滑轨互相垂直安装,分别对应 X、Y、Z 三轴:
- X 轴:底座滑轨,承载 Y 轴组件
- Y 轴:横向滑轨,承载 Z 轴组件
- Z 轴:垂直滑轨,安装雕刻刀/激光头
使用铝合金间隔柱和螺丝固定,确保各轴运动平滑、垂直度良好。参考下图组装示意:

2. 电路连接
按下图连接三块 A4988 驱动板、步进电机与 Arduino Nano:
- 每个驱动板的 VDD 接 5V,GND 共地
- 步进电机四相线接驱动板 1A、1B、2A、2B
- 驱动板 STEP、DIR 引脚分别接 Arduino D2~D7(X: D2/D5, Y: D3/D6, Z: D4/D7)
- 驱动板 ENABLE 引脚共接 D8(低电平使能)
- 电机电源(VMOT)接 12V 电源,务必在 VMOT 与 GND 间并联 100μF 电解电容防尖峰

_5J9ZdGylMF.jpeg?auto=compress%2Cformat&w=680&h=510&fit=max)
3. 烧录 GRBL 固件
下载预编译的 GRBL HEX 文件:GRBL v1.1 for Arduino Nano
使用 XLoader 烧录:
- 选择设备:Arduino Nano (ATmega328P)
- 波特率:115200
- 选择下载的 .hex 文件
- 点击 Upload 烧录

4. 配置 GRBL 参数
打开 Universal G-Code Sender,连接 Arduino(波特率 115200)。进入 Settings → Firmware Settings → GRBL,根据实际机械参数设置每毫米步数($100, $101, $102):
- X 轴:约 80 步/mm(视光驱丝杠导程而定)
- Y 轴:约 80 步/mm
- Z 轴:约 160 步/mm(导程较小)
其他关键参数:$110/$111/$112 最大速率,$120/$121/$122 加速度。首次使用建议保守设置,后续微调。

5. 生成并发送 G 代码
- 在 Inkscape 中绘制或导入矢量图形
- 使用 Gcodetools 插件或 MakerCAM 生成 G 代码
- 在 UGS 中打开 .ngc 文件,点击 Send 开始加工
机器即可开始自动雕刻/绘图。首次运行建议空跑验证行程无干涉。
6. 进阶测试
挑战复杂图案可访问项目主页获取测试文件:Neural Networks 26 Facebook 页面
原理图

注意事项与避坑指南
- 电流调节:A4988 驱动板需调节电位器设定电流限制(VREF = 额定电流 × 8 × Rsense),防止电机过热或失步。
- 供电分离:电机电源(12V)与 Arduino 逻辑电源(5V)必须共地但分路供电,避免干扰复位。
- 限位开关:建议为三轴加装机械/光电限位开关,接入 Arduino D9/D10/D11,配置 GRBL 硬限位($21=1)保护机械。
- 散热:长时间运行需在驱动板加装散热片并加风扇强制风冷。
- 丝杠导程校准:实测电机转一圈滑块移动距离,计算精确步数/mm,消除累积误差。
扩展建议
- 升级为 Arduino Uno + CNC Shield v3,接线更规范
- 更换 42 步进电机 + T8 丝杠,提升刚性与精度
- 加装主轴电机(775/550 电机 + ER11 夹头)实现真正铣削
- 使用 LaserGRBL 固件改装为激光雕刻机
制造工艺