极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 50740|回复: 4

Arduino CNC Shield v3 初探

[复制链接]
发表于 2020-2-5 22:43:02 | 显示全部楼层 |阅读模式
本帖最后由 幻生幻灭 于 2020-2-5 22:43 编辑

特殊时期,呆着家里收拾,发现了陈年的Arduino CNC Shield v3。
16年买的中国山寨板,一直放灰到今日


在论坛里也没搜到有关帖子,于是整理至此
这不是一篇具体的应用,只是对于自己初次尝试CNC盾板的一个记录

模块简介
Arduino CNC Shield v3


CNC Shield V3.0可用作雕刻机,3D打印机等的驱动扩展板,板上一共有4路步进电机驱动模块的插槽,可驱动4路不进电机,而每一路步进电机都只需要2个IO口,也就是说,6个IO口就可以很好的管理3个步进电机,使用起来非常的方便,告别传统步进电机操作繁琐。将Arduino CNC Shield V3.0插到Arduino UNO上,并且安装GRBL固件就可以快速DIY一台CNC雕刻机出来。

材料清单

1、Arduino或兼容主控(例如:芒果,带USB下载线)
2、Arduino CNC Shield v3盾板
3、Reprap Stepper Driver 步进电机驱动器 A4988(国产,散热片可选,网上有绿板和红板基本一样,都是1A的)
4、步进电机(工作电流小于1A,受限于A4988)
5、12V开关电源(大于2A,实验用2A带动2个1A步进电机没问题,实际项目需根据硬件配置增大电流容量)
6、DC转接头(便于连接电源和CNC盾板)

实验步骤
1、先将Arduino CNC Shield v3盾板插入Arduino主控,并连接DC转换头(注意电源正负标识)


2、插上1个A4988电机驱动,和1个步进电机。注意接口插头方向!
这里右侧4P排针实际从上到下的顺序是2B、2A、1A、1B,与盾板标注的不符(标注为其他型号)
步进电机的线序要和端子的对上!然后盾板接上12V电源


3、先按照卖家的样例程序测试一下,

  1. #define EN        8       //步进电机使能端,低电平有效
  2. #define X_DIR     5       //X轴 步进电机方向控制
  3. #define Y_DIR     6       //y轴 步进电机方向控制
  4. #define Z_DIR     7       //z轴 步进电机方向控制
  5. #define X_STP     2       //x轴 步进控制
  6. #define Y_STP     3       //y轴 步进控制
  7. #define Z_STP     4       //z轴 步进控制
  8. /*
  9. //函数:step    功能:控制步进电机方向,步数。
  10. //参数:dir 方向控制, dirPin对应步进电机的DIR引脚,stepperPin 对应步进电机的step引脚, steps 步进的步数
  11. //无返回值
  12. */

  13. void step(boolean dir, byte dirPin, byte stepperPin, int steps)
  14. {
  15.   digitalWrite(dirPin, dir);
  16.   delay(50);
  17.   for (int i = 0; i < steps; i++) {
  18.     digitalWrite(stepperPin, HIGH);
  19.     delayMicroseconds(800);  
  20.     digitalWrite(stepperPin, LOW);
  21.     delayMicroseconds(800);  
  22.   }
  23. }

  24. void setup(){//将步进电机用到的IO管脚设置成输出
  25.   pinMode(X_DIR, OUTPUT);
  26.   pinMode(X_STP, OUTPUT);
  27.   pinMode(Y_DIR, OUTPUT);
  28.   pinMode(Y_STP, OUTPUT);
  29.   pinMode(Z_DIR, OUTPUT);
  30.   pinMode(Z_STP, OUTPUT);
  31.   pinMode(EN, OUTPUT);
  32.   digitalWrite(EN, LOW);
  33. }

  34. void loop(){
  35.   step(false, X_DIR, X_STP, 200); //X轴电机 反转1圈,200步为一圈
  36.   step(false, Y_DIR, Y_STP, 200); //y轴电机 反转1圈,200步为一圈
  37.   step(false, Z_DIR, Z_STP, 200); //z轴电机 反转1圈,200步为一圈
  38.   delay(1000);
  39.   step(true, X_DIR, X_STP, 200); //X轴电机 正转1圈,200步为一圈
  40.   step(true, Y_DIR, Y_STP, 200); //y轴电机 正转1圈,200步为一圈
  41.   step(true, Z_DIR, Z_STP, 200); //z轴电机 正转1圈,200步为一圈
  42.   delay(1000);
  43. }
复制代码


编译和下载成功,但是步进电机纹丝没动。。。。。


好坑。。。经过一系列的排查后,发现USB插座和盾板的焊点短路了。。。
还好没烧板子,用红色胶布做了个隔离,步进电机就转起来了。
然后红色旗子会转来转去,大家脑补一下吧。


我尝试拔掉USB供电,发现不行。因为盾板是独立供电,没有给Arduino供电。盾板的VIN插针是悬空的!
所以最好用两路独立电源分别给主控和盾板供电,也是为了降低干扰。
顺便看了下Arduino自带的步进电机库,发现不支持这个驱动模块,只支持L293一类的驱动


4、然后下载GRBL库,并放入Arduino库文件夹下
..\\arduino-1.0.3\libraries\grblmain


5、打开GRBL样例程序


6、选择UNO和串口,并下载


7、下载GrblController
https://osoyoo.com/driver/GrblController361Setup.exe

8、安装并打开软件GrblController
在Port Name选择之前下载Arduino的端口号,确认波特率选择为9600,点击”Open”连接。
如果与Arduino UNO连接成功,”Open”会变成“Close/Reset”,背景为红色。然后就可以通过面板上的箭头控制步进电机了

关于界面操作请参考下面链接里的51hei那个,已经很详细了。
唯一需要注意的是下面这三个黄色标记的机械参数

它们的含义是步进电机带动滑块运动1mm控制器需要给出的脉冲个数。
公式如下   参数=((360/步进电机步距角)X驱动器选择细分数)/丝杆的螺距,例如下面这个步距角就是1.8度


这里顺便说下CNC盾板的针脚配置

MS0 , MS1 , MS2 跳线说明:(默认低电平,悬空或接地线,使用全步进模式)
表中分别是全步进,1/2步进,1/4步进,1/8步进,1/16步进模式。
例如本步进电机走一步是1.8度,一圈就是200步。如果使用1/16步进,则需要走3200步才等于一圈。
追求精度就细分,追求速度就全步进!
我做了个实验,当用跳帽设置成不同的细分后,在GrblController中点动轴,所移动的距离也是成比例缩放的。
例如下图X轴采用了1/8细分,在软件中点击轴移动的距离会是不用跳帽的Y轴的1/8


我还没做过实际的应用,也就下面一个实验视频。今天记录就到这里。



参考:
https://blog.protoneer.co.nz/ard ... -00-assembly-guide/
https://osoyoo.com/zh/2017/04/07 ... -shield-v3-0-a4988/
http://www.51hei.com/bbs/dpj-47861-1.html
https://blog.csdn.net/liucheng_34/article/details/48048275
https://blog.csdn.net/ling3ye/article/details/47001251

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2020-2-5 22:44:36 | 显示全部楼层
自己沙发,留着更新
回复 支持 反对

使用道具 举报

发表于 2020-2-16 19:48:02 | 显示全部楼层
驱动步进电机这个确实是好
回复 支持 反对

使用道具 举报

发表于 2020-5-7 13:43:04 | 显示全部楼层
好教程啊,写的详细
回复 支持 反对

使用道具 举报

发表于 2020-5-10 21:27:33 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 23:55 , Processed in 0.041790 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表