网站首页 > 资源文章 正文
CNC扩展板基本功能和步进驱动
- CNC扩展板基本功能
- A轴可以根据需求设定为独立工作模式或者同步XYZ中的一轴。
- A4988驱动:注意en引脚对应CNC扩展版上的en引脚,否则会烧毁驱动
- A4988驱动电流调节和计算。
- Vref = Imax * 8 * 0.1
- DRV8825驱动:注意en引脚对应CNC扩展版上的en引脚,否则会烧毁驱动
- DRV8825驱动电流调节和计算
- Vref = Imax /2
CNC扩展版和arduino供电问题
- 扩展版需要单独供电:12V-36V
- A4988电压范围:8V-35V,注意A4988驱动最大电压为35V,小于CNC扩展最大电压36V
- DRV8825电压范围:8.2V-45V
- Arduino需要额外供电,DC口(5.5x2.1mm)供电范围:7V-12V,可同时接USB线。
烧录GRBL固件并简单移动测试
- GRBL固件:v0.9和v1.1的引脚定义区别,Z轴限位引脚和主轴控制引脚交换,使得主轴可以使用PWM控制。
- 控制软件:UGS,CNCjs,LaserGRBL,GRBL-Plotter
- 可以使用arduinoIDE打开grblUpload例程烧录固件,也可以使用LaserGRBL烧录。
步进脉冲数(step/mm)计算
- 计算工具:https://swarfer.co.za/cnc/grblcalc.html
- 步进电机步距角
步进电机的旋转是靠脉动信号来驱动的,当步进驱动器接收到一个脉冲信号,步进电机的轴就会转动一个固定的角度,这个转动的角度,就叫“步距角”。最常见的有三种步距角:0.9°,1.8°和7.5°。这三种步距角,也就对应了步进电机每旋转一周(360°),需要的脉冲信号个数为400个、200个以及48个。
- 步进驱动细分设置
步进细分数取决于使用的电机驱动板主芯片,常见的细分有1/2,1/4,1/16,1/32等,如果是1/16细分表示的含义是原来一个脉冲可以控制电机转动一个步距角,现在需要16个脉冲电机才能转动一个步距角,如果电机的步距角是1.8°,那么电机旋转一周就需要200*16=3200个脉冲信号。
- 同步轮
常用的有16齿和20齿,需要注意齿距,比如GT2的同步轮其齿距为2mm,对于20齿的同步轮,旋转一圈即行进的距离为2mm*20=40mm。那么对于1.8步距角,16细分步进驱动,则每1mm所需的脉冲数为3200/40=80个脉冲/毫米。
- 丝杆
丝杆有几个重要参数,包括螺距,导程,头数。螺距表示相邻两个螺纹之间的距离(可将螺纹印到纸上测量),导程表示丝杆旋转一圈,对应T型螺母移动的距离。头数表示丝杆头部螺纹入口的数量。对于单头螺纹,螺距等于导程,而对于多头螺纹,导程=螺距*头数。对于1.8步距角,16细分步进驱动,导程2,螺距2的丝杆,则每1mm所需的脉冲数为3200/2=1600个脉冲。
- 齿轮
挤出机通过齿轮推动耗材运动,因此耗材移动的长度基本等同于齿轮的周长。通常MK8挤出机上使用的齿轮直径是11mm,因此齿轮旋转一周的周长为3.14*11=34.54mm。那么对于1.8步距角,16细分步进驱动,则每1mm所需的脉冲数为3200/34.54=92.64个脉冲。
设置GRBL步进脉冲参数
- $:获取当前grbl设定值
- 计算步进脉冲数:
- XY:360度/1.8度每步=200步*8微步=1600微步/(2毫米*20)=40step/mm
- Z:360度/1.8度每步=200步*4微步=800微步/2毫米=400step/mm
- 设定步进脉冲参数$100=40,$101=40,$102=400
- 设定最大速率:$110,$111,$112,GRBL最大速率30KHz,8位Grbl几乎无法达到30千赫的步进速率。。
- 30000赫兹*60秒=1800000/40=45000
- $110=45000,理论上,实际根据需要设定合适值
- 设定加速度:$120,$121,$122
- $120=3200,可多次测试尝试获得恰当的值
限位开关的使用
- 常开和常闭限位开关
- $21:是否启用硬限位,默认$21=0未启用
- $5:默认为常开限位,如果使用常闭限位(低电平)则$5=1
- 归零操作:启用归零($22)后,首先会在设定方向($23)上以速度($25)寻找限位开关,在找到限位开关后会再以速度($24)移动确定限位开关($26),然后在轴向上移出(pull-off)指定距离($27)。
- $22:是否启用归零
- $23:归零方向
- $24:找到限位开关后再次移动的速度
- $25:寻找限位开关的速度
- $26:归零限位开关消抖延时
- $27:归零后轴向移出(pull-off)的距离
设置GRBL工作区域参数
- 设定步进脉冲参数$130,$131,$132,具体可以手动控制各轴移动用以确定最大位置。
- 当设置好各轴(XY)最大移动距离后,可设定归零后操作
- $N0=G53XmaxYmax,快速移动到指定位置
- $N1=G92X0Y0,将当前位置指定位原点(0,0)
- 最大位置可以用于软限位:$20,
配置激光参数和测试(可使用LED测试)
- V1.1新增参数:$30,$31,$32
- 注意V1.1版本的主轴对应引脚变化,即spindle enable和Limit Z-axis引脚交换,以便主轴能实现pwm控制。
- 当使用$32启用激光模式后,需要处于运动模式(G1F500)才能使用M3开启和M5关闭激光。
- M3 S1000:开启,S指定功率,可使用$30指定最大功率。
- M5:关闭,在关闭前最好使用S0指定功率为0,否则下次使用M3时将直接使用之前指定的功率开启激光。
- 暂停时将关闭激光
COREXY结构GRBL参数调整
- 配置config.h文件中参数
GRBL命令参考
版本 | GRBLv0.9/GRBLv1.1 | V1.1和V0.9相比较,改变了$10的状态报告和增加了新的$30/ $31的主轴转速设置和$32的激光模式设置。 | |||||||||||||||||||||||||||||||||||||||||||||
指令 | 定义 | 描述 | |||||||||||||||||||||||||||||||||||||||||||||
$ | 显示设定值 | 显示当前存储在arduino EEPROM中的GRBL设定值 | |||||||||||||||||||||||||||||||||||||||||||||
$0=10 | 步进脉冲长度(微秒) | 设定发送给步进电机的步进脉冲长度(高电平时间),即步进电机可识别的最短步进脉冲长度,可查看步进电机数据手册确认,默认值为10微秒。 | |||||||||||||||||||||||||||||||||||||||||||||
$1=25 | 步进电机使能闲置时间 | 在GRBL完成一个运动指令后,以毫秒为单位设置步进电机使能状态的闲置时间,如果设置为255则始终保持步进电机为使能状态用以保持当前位置。通常设置25-50毫米的使能延时时间以确保轴完全移动到了目标位置。 | |||||||||||||||||||||||||||||||||||||||||||||
$2=0 | 步进脉冲配置 | 定义发送给步进电机驱动的步进信号。默认情况,步进信号以low开始向high变化表示一个脉冲信号。在经过$0设置的步进脉冲高电平时间后,恢复为低电平。通常无需设置此参数。
例如:如果要反向X轴和Z轴的脉冲信号,则设置$2=5。 | |||||||||||||||||||||||||||||||||||||||||||||
$3=6 | 轴运动方向 | 在不改变接线的情况下改变对应轴步进电机的运动方向,默认情况下,GRBL设定当方向引脚为低电平时沿轴正向移动,高电平时沿轴反向移动。具体数值和$2步进脉冲设置项表相同。 | |||||||||||||||||||||||||||||||||||||||||||||
$4=0 | 设置步进驱动使能引脚 | 控制步进驱动使能引脚的电平信号,默认情况下,步进使能引脚为高电平时禁用电机驱动,低电平时使能电机驱动。当$4=1表示将使能引脚的电平定义为高电平HIGH,即高电平使能,低电平禁用。 | |||||||||||||||||||||||||||||||||||||||||||||
$5=0 | 设置限位引脚 | 默认限位开关使用arduino内部上拉电阻将该引脚设置为高电平HIGH,当触发限位开关时引脚变为低电平LOW。如果设置$5=1则表示当接收到高电平HIGH时表示限位开关被触发,当设置$5=1时,必须外接下拉电阻。GRBLv0.9不支持NC常闭限位。可以在config.h文件中禁用限位引脚内部上拉电阻。 | |||||||||||||||||||||||||||||||||||||||||||||
$6=0 | 设置探针引脚 | 默认使用arduino内部上拉电阻将该引脚设置为高电平HIGH,当触发时引脚变为低电平LOW。如果设置$6=1则表示当接收到高电平HIGH时表示探针被触发,当设置$6=1时,必须外接下拉电阻。 | |||||||||||||||||||||||||||||||||||||||||||||
$10=3 | 状态报告 | 定义发送给用户的实时状态数据。 对于v0.9,当发送“?”指定给GRBL,其会返回运行状态,机器位置和工作位置,且不能关闭。如果需要返回多个状态数据,则将所需类型的值相加发送给GRBL即可。
例如,要取货工作坐标位置(2)和限位引脚(16)的状态报告信息,则需要设置$10=18。 对于v1.1,当发送“?”指令获取状态报告。该数据报告包括当前运行状态、实时位置、实时输入速率、引脚状态、当前覆盖值、缓冲区状态和当前执行的g-code行号(如果通过编译时选项启用)。 为了保持简单和一致,Grbl v1.1只有两个报告选项。这些主要是为用户和开发人员设置的。
使用下表启用和禁用报告选项。只需添加想要启用的列表值,然后通过发送Grbl设置值来保存。例如,带有机器位置和无缓冲区数据报告设置的默认报告为$10=1。如果需要工作位置和缓冲区数据,则设置为$10=2。
| |||||||||||||||||||||||||||||||||||||||||||||
$11=0.020 | 节点偏差(Junction Deviation,毫米) | 可认为是转弯速度。较高的值表示允许在拐弯处快速运动,但可能丢步从而降低准确性。反之则转弯速度低,但能避免丢步从而提高准确性。 | |||||||||||||||||||||||||||||||||||||||||||||
$12=0.002 | 弧度公差(毫米) | GRBL将曲线视为很多小直线的集合,该设置用于定义曲线的平滑度,默认为0.002毫米,通常不需要修改该值,因为大多数的机器设备都小于此精度值。 | |||||||||||||||||||||||||||||||||||||||||||||
$13=0 | 反馈单位 | 设置位置反馈单位,$13=1表示英寸,$13=0表示毫米 | |||||||||||||||||||||||||||||||||||||||||||||
$20=0 | 是否启用软限位 | 需要启用“Homing”,如果启用则将检查GCode指令是否有超出机器最大行程限制。$20=1表示启用,$20=0表示禁用。 | |||||||||||||||||||||||||||||||||||||||||||||
$21=0 | 是否启用硬限位 | 需要安装限位开关,当限位开关触发时,则进入“Alarm”模式,该模式下,机器运动,主轴和冷却系统都被关闭。 | |||||||||||||||||||||||||||||||||||||||||||||
$22=0 | 是否启用归零 | 需要安装限位开关,当启用归零后将锁定所有GCode指令直到归零完成。 | |||||||||||||||||||||||||||||||||||||||||||||
$23=1 | 归零方向 | 允许设定归零方向,默认先Z轴正向移动归零,然后XY正向移动归零。如果限位开关在负方向,则需要设置归零方向,具体和$2步进脉冲设置项表相同。 | |||||||||||||||||||||||||||||||||||||||||||||
$24=50.000 | 归零进给速率(mm/min) | 归零操作首先会以较高的速率寻转限位开关,在确定限位开关后,在以此设定的较低速率确定原点精确位置。在此使用的进给速率越低归零位置越准确。 | |||||||||||||||||||||||||||||||||||||||||||||
$25=635.000 | 归零搜寻速率(mm/min) | 在归零时寻找限位开关的速度。将此值设置为不撞坏限位开关的最大值。在归零操作中,先以seek定义的速度寻找限位开关,再以feed定义的速度精确定位原点。 | |||||||||||||||||||||||||||||||||||||||||||||
$26=250 | 归零限位开关消抖时间Homing Debounce(msec) | 用于限位开关软件消抖的延时时间(毫秒),通常值为5-25毫秒。 | |||||||||||||||||||||||||||||||||||||||||||||
$27=1.000 | 归零后离开限位开关的距离Homing Pull-off(mm) | 定义在定位原点后,远离限位开关的距离以便不触发硬限位。 | |||||||||||||||||||||||||||||||||||||||||||||
$100=314.961 | X轴步进速度(steps/mm) | 定义给定距离所需的步进数。Steps/mm = (Steps per Revolution)*(Microsteps) / (mm per Revolution) 1.Steps per Revolution = 200,表示步进电机旋转一圈所需的步数,对于1.8度步进电机,旋转一周所需步数为360/1.8=200步。 2.Microsteps - 1,2,4,8,16,32,由步进驱动器细分数确定,细分数越高精度越高,但力矩越小。对于DRV8825如果使用3个跳线帽,则细分数为32,即旋转一圈需要200*32=6400个脉冲。对于A4988如果使用3个跳线帽,则细分数为16,即旋转一圈需要200*16=3200个脉冲 3.mm per Revolution,对于GT2同步轮,即旋转一圈行进20个齿,齿间距为2mm,即一圈行进40mm。因此每1mm需要6400/40=160个脉冲每毫米。对于GT2单线螺纹丝杆,螺距等于导程,螺距2,导程2,即旋转一圈行进2mm,因此每1mm需要6400/2=3200个脉冲 | |||||||||||||||||||||||||||||||||||||||||||||
$101=314.961 | Y轴步进速度(steps/mm) | 同x轴 | |||||||||||||||||||||||||||||||||||||||||||||
$102=314.961 | Z轴步进速度(steps/mm) | 同x轴 | |||||||||||||||||||||||||||||||||||||||||||||
$110=635.000 | X轴最大速率(mm/min) | 定义给定轴的最大速度。可以通过试验逐步增加速度测试最大速度,发送测试Gcode指令使轴移动足够距离以便达到其最大速度值,当步进电机出现异常时即为最大速度值,将$110设置为最大速度的80%-90%。 | |||||||||||||||||||||||||||||||||||||||||||||
$111=635.000 | Y轴最大速率(mm/min) | 同X轴 | |||||||||||||||||||||||||||||||||||||||||||||
$112=635.000 | Z轴最大速率(mm/min) | 同X轴 | |||||||||||||||||||||||||||||||||||||||||||||
$120=50.000 | X轴最大加速度(mm/sec^2) | 定义给定轴的最大加速度。同样可以通过试验获得最大加速度,设定为最大加速度的80%-90%即可。 | |||||||||||||||||||||||||||||||||||||||||||||
$121=50.000 | Y轴最大加速度(mm/sec^2) | 同X轴 | |||||||||||||||||||||||||||||||||||||||||||||
$122=50.000 | Z轴最大加速度(mm/sec^2) | 同X轴 | |||||||||||||||||||||||||||||||||||||||||||||
$130=225.000 | X轴最大行程(mm) | 当使用软限位时用于定义轴的最大行程,同样用于归零操作。 | |||||||||||||||||||||||||||||||||||||||||||||
$131=225.000 | Y轴最大行程(mm) | 同X轴 | |||||||||||||||||||||||||||||||||||||||||||||
$132=225.000 | Z轴最大行程(mm) | 同X轴 | |||||||||||||||||||||||||||||||||||||||||||||
GRBL命令 | |||||||||||||||||||||||||||||||||||||||||||||||
$# | 显示Gcode参数 | 列出工作坐标偏移(G54-G59),预定义位置(G28 & G30),坐标 偏移量(G92),工具长度偏移量(TLO)和探测周期(PRB)。 | |||||||||||||||||||||||||||||||||||||||||||||
$G | 显示解析器状态 | 显示GRBL解析器中的活动gCode模式。 示例- [G0 G54 G17 G21 G90 G94 M0 M5 M9 T0 S0.0 F500.0] | |||||||||||||||||||||||||||||||||||||||||||||
$! | 显示构建信息 | 显示GRBL版本和源码构建日期 | |||||||||||||||||||||||||||||||||||||||||||||
$N | 显示启动块 | 显示每次GRBL上电或复位时运行的启动块。 | |||||||||||||||||||||||||||||||||||||||||||||
$N0=line $N1=line | 设置启动块 | 设置启动块。将有效的gCode命令替换为“line”部分,这些命令将在每次GRBL上电或重置时执行。 | |||||||||||||||||||||||||||||||||||||||||||||
$x=value | 设置GRBL配置参数 | 设置GRBL参数。将“X”替换为上面列表中的数字,将“value”替换为相应的设置。 | |||||||||||||||||||||||||||||||||||||||||||||
$C | Gcode检查模式 | 处理所有传入的gCode命令,但不移动轴、主轴或冷却系统,用于检查gCode程序。 | |||||||||||||||||||||||||||||||||||||||||||||
$X | 解除锁定警告 | 解除警告锁定以允许轴移动 | |||||||||||||||||||||||||||||||||||||||||||||
$H | 执行归零(Homing)操作 | 执行归零(Homing)操作 | |||||||||||||||||||||||||||||||||||||||||||||
GRBL实时命令 | |||||||||||||||||||||||||||||||||||||||||||||||
~ | 循环启动 | 启动缓冲的gCode命令。用于在“进给保持”后恢复切割。 | |||||||||||||||||||||||||||||||||||||||||||||
! | 进给保持 | 通过控制减速停止主动循环,防止失步造成的位置丢失。 | |||||||||||||||||||||||||||||||||||||||||||||
? | 当前状态 | 返回GRBL当前状态,当前机器坐标位置和工作坐标位置 | |||||||||||||||||||||||||||||||||||||||||||||
Ctrl+x | 重置GRBL | 软重启命令,保持机器坐标位置且不关闭arduino | |||||||||||||||||||||||||||||||||||||||||||||
其他参数 | V1.1新增参数 | ||||||||||||||||||||||||||||||||||||||||||||||
$30 | spindle主轴最高转速RPM | 设置在5V电压时PWM引脚输出的最大主轴速度。例如$30=10000表示5V电压最大转速为10000rpm,如果试图设置更高的主轴速度,因为GRBL最大输出5V,因此不能够更快。默认情况下,GRBL以255等分最大和最小RMP转速,对应于电压5V到0.02V的PWM输出。当PWM引脚为0V时表示禁用主轴,5V时为最大转速$30所设置的10000RPM。Config.h中可调整其他配置参数。 | |||||||||||||||||||||||||||||||||||||||||||||
$31 | spindle主轴最低转速RPM | 设置在最小0.02V时PWM引脚输出的主轴速度(0V表示禁用)。可以设置较低的RMP值,但PWM输出不会低于0.02V,如果为0V则表示禁用主轴。 | |||||||||||||||||||||||||||||||||||||||||||||
$32 | 激光模式 | 启用后,当用主轴速度(激光功率)编程时,Grbl将通过连续的G1,G2或G3运动命令连续移动S。主轴PWM引脚将在每次运动时立即更新,而不会停止。使用此模式之前,请阅读GRBL激光文档和激光设备文档。激光非常危险,会永久损坏视力并可能引起火灾。Grbl对固件可能引起的任何问题(由其GPL许可定义)不承担任何责任。 禁用后,Grbl会像往常一样运行,对于每个S主轴速度命令停止运动。这是铣床的默认操作,允许暂停以使主轴改变速度。 |
猜你喜欢
- 2025-04-06 皮肤干燥瘙痒来袭 5个妙招来缓解(皮肤干燥发痒疾如医治)
- 2025-04-06 计算机的信息编码 2进制 10进制 8位
- 2025-04-06 20241017连板天梯(code=连板数量 20cm=2 板)
- 2025-04-06 Visual Studio Code 0.8.0 已经发布
- 2025-04-06 机械革命 Code 01 程序员本开启预售,首发价 4999 元起
- 2025-04-06 冬季湿疹发作怎么办?一招帮你解决……
- 2025-04-06 微软 Visual Studio Code最新版发布
- 2025-04-06 宝宝是攒肚还是便秘?不用着急,看这张表就明白了
- 2025-04-06 冬季寒冷干燥,老年人和孩子是湿疹重灾区
- 2025-04-06 学会几个小动作 让你远离颈椎病(学会几个小动作 让你远离颈椎病的人)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)