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

1. 开发板封装
下图显示了GRBL使用的Arduino引脚的功能
GRBL Pin Layout:

参考https://github.com/gnea/grbl/wiki/Connecting-Grbl
Arduino CNC Shield V3.0除了拥有GRBL所有功能引脚外,还设计了一些额外引脚,实现更多功能。其原理图如下图所示:


额外引脚:
- 限位开关销已经折叠起来,这样每个轴都有一个“顶部/+”和“底部/-”。这使得为每个轴安装两个限位开关更容易。(用于常开开关)
- EStop–这些引脚可以连接到紧急停止开关。这与Arduino板上的复位按钮相同。(我们建议安装一个额外的紧急按钮,切断所有机械的电源。一个真正的紧急按钮)
- 主轴和冷却液控制有自己的引脚。
- 外部GRBL命令引脚已经中断,允许您添加暂停/保持,恢复和中止按钮。
- 串行引脚(D0-1)和I2C引脚(A4-5)有自己的断开引脚,用于将来的扩展。I2C以后可以通过软件来控制诸如主轴转速或热控制之类的事情。
- 版本3.00的电路板增加了一个跳线来配置第四个轴(克隆另一个轴或从引脚D12-13运行)、通信头(RX+TX,I2C)和步进控制头(运行4个步进器所需的所有引脚)
2. 硬件安装
根据实际情况连接各组件,例如电机、限位开关、激光器、电机驱动器等。
在进行硬件安装过程需要注意一下几点:
1)电源的正负极切勿接反了,否则会烧坏你的设备,甚至发生火灾
2)电机驱动器的方向切记不要插反,否则会烧毁主板和驱动器,具体安装方向请参照驱动器数据手册并结合Arduino CNC Shield V3.0确定,本文以A4988作为电机驱动,其与Arduino CNC Shield V3.0连接方向如图所示

A4988支持全细分、1/2细分、1/4细分、1/8细分、1/16细分。每种细分方式通过Arduino CNC Shield V3.0的三个排针M0、M1、M2来设置,跳线帽盖到排针上代表高电平,不盖代表低电平。为了提高雕刻的精确度,采用16细分,需要用三个跳线帽将M0、M1、M2都盖上。如图

| M0 | M1 | M2 | 细分数 |
|---|---|---|---|
| Low | Low | Low | 1 |
| High | Low | Low | 2 |
| Low | High | Low | 4 |
| High | High | Low | 8 |
| High | High | High | 16 |
细分数与电机转速的关系,以下图为例:

3) Arduino CNC Shield V3.0的输入电压是DC 12V-36V,不要输入高于36V的电压。虽然输入电压允许最高36V,不意味着什么情况下都可以用36V,因为有些电机驱动器的供电电压(VMOT)低于36V,例如A4988,它的供电电压是8-35V,如果此时使用36V供电的话就会烧坏驱动器。所以在选择电源的时候要查看对应电器驱动器的数据手册。下面列举几种常用的驱动器供电电压参数。
A4988
因为A4988内置了译码器,我们可以可以通过控制器的2个引脚来控制步进电机,一个控制旋转方向,另一个控制步数。A4988提供了五种不同的微步控制:全步(full-step),半步(haft-step),四分一步(quarter-step),八分之一步(eight-step)和十六分之一步(sixteenth-step)。此外,它还配备了一个调节电流输出、过热保护和过流保护的电位计。A4988的逻辑电压范围是:3~5.5V,如果配备较好的散热条件每相最大电流可达2A,在没有配备散热器的情况下,每相连续电流最好控制在1A范围内。

A4988驱动模块右上侧的两个引脚(VMOT、GND)是外部供电引脚,目的是能给电机提供足够的动力输出,供电范围:8-35V,此处使用一个47uf的电解电容来保护驱动板免受瞬时电压的冲击;
右下侧的VDD和GND我们需要将它连接到Arduino控制板的5V电源和GND引脚上;
1A和1B引脚连接到步进电机的一相,2A和2B引脚连接到步进电机的另一相;
左下角的STEP和DIR连接至Arduino控制板的P3和P4引脚,这两个针脚主要用于控制电机的运动。DIR(Direction)引脚控制转动方向,STEP针脚用于控制电机旋转的步数控制。
下一个是SLEEP针脚,低电平使能使模块处于休眠模式,当电机不工作时,它可以最大程度地降低功耗,默认为高电平。
RESET针脚,如果这个针脚的输入是低电平,那么所有的微步设置都将被忽略掉。因此上图将SLEEP和RESET针脚连接起来,目的是将RESET针脚设置为高电平,以便模块可控。
MS1, MS2 和 MS3针脚用于微步设置,如下图所示。
ENABLE针脚用于打开和关闭场效应管的输出,低电平打开,高电平关闭。

参考https://www.basemu.com/a4988_pinout_and_how_to_use.html
DRV8824/DRV8825

TMC2100

软件安装
下载地址 https://lasergrbl.com/download/
安装LaserGRBL软件,打开Tools>> Flash Grbl Firmware;

选择好固件版本,和串口号,点击OK进行烧录固件;

烧录完成后,点击Grbl>> Grbl配置;

注意这三个参数

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

参考:
https://osoyoo.com/zh/2017/04/07/arduino-uno-cnc-shield-v3-0-a4988/
https://kookye.com/2017/04/09/arduino-uno-arduino-cnc-shield-v3-0a4988-installation-guide/
https://www.geek-workshop.com/thread-39359-1-1.html
Arduino UNO开发板、Arduino CNC Shield V3.0扩展板、A4988驱动板、grbl固件使用教程的更多相关文章
- 如何使用Arduino UNO开发板编程ATtiny85
最近在Youtube上看了一个GreatScott制作的有关如何使用Attiny85的精彩教程,之后我购买了一片Attiny85 IC.但是,我花了很长时间尝试在它上面运行一个简单的LED闪烁的代码. ...
- 使用Atmel Studio编程Arduino Uno开发板
使用Atmel Studio 7编程Arduino Uno开发板非常简单.Arduino Uno开发板是使用AVR微控制器的嵌入式应用开发的著名平台之一. 大多数人通常会使用Arduino自己的软件工 ...
- 详解Arduino Uno开发板的引脚分配图及定义(重要且基础)
首先开发板实物图如下: 在本篇文章中,我们将详细介绍Arduino开发板的硬件电路部分,具体来说,就是介绍Arduino Uno开发板的引脚分配图及定义.Arduino Uno微控制器采用的是Atme ...
- 01.arduino uno开发板入门
01.所需工具 -Ariduino uno开发板一块 -对应的usb数据线 -杜邦线若干 -一些用以测试的电子元器件 02.安装arduino IDE 打开官网链接https://www.arduin ...
- Arduino UNO仿真开发环境设置和仿真运行
一. Proteus仿真平台简介 Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司).它不仅具有其它EDA工具软件 ...
- 基于Proteus仿真的Arduino学习(1)——Arduino Uno最小系统及LED的简单使用
一.前言: A.Arduino简介 Arduino是由一个欧洲开发团队于2005年冬季开发.其成员包括Massimo Banzi.David Cuartielles.Tom Igoe.Gianluc ...
- 2.6 基于ARDUINO UNO+MC20的路径显示功能
需要准备的硬件 MC20开发板 1个 https://item.taobao.com/item.htm?id=562661881042 GSM/GPRS天线 1根 https://item.taoba ...
- ESP8266开发之旅 基础篇③ ESP8266与Arduino的开发说明
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- Arduino Uno微控制器采用的是Atmel的ATmega328
参考:https://www.yiboard.com/thread-831-1-1.html 在本篇文章中,我们将详细介绍Arduino开发板的硬件电路部分,具体来说,就是介绍Arduino Uno开 ...
随机推荐
- 《PHP程序员面试笔试宝典》——如何回答非技术性问题?
如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 评价一个人的能力,除了专业能力,还有一些非专业能力,如智力.沟通能力和反应能力等,所以在IT企业招聘过程的笔试.面试环节 ...
- Linux性能优化概述
一.Linux性能概述 性能优化是个系统工程,总是牵一发而动全身,它涉及了从程序设计.编程语言,再到系统.存储.网络等各种底层基础设施的方方面面.每一个组件都有可能出问题,而且很有可能多个组件同时出问 ...
- 轻量级DI框架Guice使用详解
背景 在日常写一些小工具或者小项目的时候,有依赖管理和依赖注入的需求,但是Spring(Boot)体系作为DI框架过于重量级,于是需要调研一款微型的DI框架.Guice是Google出品的一款轻量级的 ...
- HTTP攻击与防护-函数注入攻击
实验目的 1.了解eval注入的概念 2.了解eval注入攻击的方式 3.掌握防范攻击的方法 实验原理 1.了解eval注入的概念 2.了解eval注入攻击的方式 3.掌握防范攻击的方法 实验内容 1 ...
- ASP.NET Core 6框架揭秘实例演示[12]:诊断跟踪的进阶用法
一个好的程序员能够在系统出现问题之后马上定位错误的根源并找到正确的解决方案,一个更好的程序员能够根据当前的运行状态预知未来可能发生的问题,并将问题扼杀在摇篮中.诊断跟踪能够帮助我们有效地纠错和排错&l ...
- proto编译组件使用
proto编译组件使用 前提:所有组件已经安装好,包括: protoc protoc-gen-go protoc-gen-grpc-gateway protoc-gen-swagger 怎么装再开一篇 ...
- 【C# Task】 ValueTask/Task<TResult>
概要 1.如果异步方法的使用者使用 Task.WhenAll 或 Task.WhenAny,则在异步方法中使用 ValueTask<T> 作为返回类型可能会产生高昂的成本.这是因为您需要使 ...
- pandas补充(其二)与matplotlib补充
今日内容概要 pandas补充知识(2) matplotlib补充知识 今日内容详细 pandas补充 数据汇总 # 数据透视表 pd.pivot_table(data,values-None,ind ...
- 解决Js中的resize事件执行两次的方法
问题: 页面自适应的时候需要用到js的resize事件,但在执行过程中发现只要触发resize事件就会执行2次 原生js: window.onresize = function(){ console. ...
- webstorm安装vue插件及安装过程出现的问题
想要编辑器识别vue文件需要安装vue插件 1. 安装方法: File--> setting --> plugin ,点击plugin,在内容部分的左侧输入框输入vue,会出现1个关于 ...