Contact me: hankecnc@gmail.com

Z 限位开关不工作 #1128

推推 grbl 3年前 (2023-01-23) 141次浏览

关闭
JoshuaFM 开启了这一期 2016 年 11 月 12 日 · 14条评论
关闭

Z 限位开关不工作#1128

JoshuaFM 开启了这一期 2016 年 11 月 12 日 · 14条评论

注释

Z 限位开关不工作 #1128

好的,所以我已经将我的 x、y 和 z 限位开关连接到 arduino cnc 屏蔽,发生的事情是当我从 x 或 y 按下开关时它检测到它并停止,但是当我按下 Z 时,没有任何反应。

我检查了接线,一切正常,我在引脚上使用了万用表,X 和 Y 有 5 伏,而 Z 有 0 伏。我知道它们有 5v,因为它们有一个内部上拉电阻,但我的 Z 发生了什么事?为什么它不起作用?

Z 限位开关不工作 #1128

来自维基:
https ://github.com/grbl/grbl/wiki/Connecting-Grbl

对于启用可变主轴 PWM 的 Grbl v0.9:(注意:Z 限制和
主轴启用引脚被交换,因为我们必须访问
D11 上的硬件 PWM 才能使可变主轴 PWM 输出工作。)我们仍在更新此
通过权衡未来的选择来确定目前的引脚配置。我们
只想更改一次引脚。敬请关注!

在 2016 年 11 月 12 日星期六上午 10:34,JoshuaFM notifications@github.com写道:

好的,所以我已经将我的 x、y 和 z 限位开关连接到 arduino cnc 屏蔽,
发生的事情是当我从 x 或 y 按下开关时它检测到它并
停止,但是当我按下 Z 时,没有任何反应。

我检查了接线,一切正常,我在
引脚上使用了万用表,X 和 Y 的电压为 5 伏,而 Z 的电压为 0 伏。我知道它们有
5v,因为它们有一个内部上拉电阻,但
我的 Z 发生了什么事?为什么它不起作用?


您收到此消息是因为您订阅了此线程。
直接回复此电子邮件,在 GitHub
#1128上查看它,或将线程静音
https://github.com/notifications/unsubscribe-auth/AHuHwjO4FXW6rZmzXcrtkak5u4v8cIKeks5q9YgSgaJpZM4KwX-v

Z 限位开关不工作 #1128
欧夏尔 评论了 2017 年 1 月 29 日  

你好约书亚FM!

我遇到了同样的问题(z 轴限位开关不工作)。
除了你的问题,当限位开关关闭时,我的整个 arduino(UNO-clone)崩溃了。
我的假设是,这种影响是由限位销短路引起的。
我浏览了源代码并找到了以下内容:
引脚 12 的功能(z 轴限制的输入或可变主轴的输出)取决于包含文件“config.h”中定义的VARIABLE_SPINDLE
CPU 映射文件“cpu_map_atmega328p.h”和“cpu_map_atmega2560.h”中缺少此包含文件。
因此,根据 arduino 编译器编译源代码的顺序,部分代码可能会在没有正确设置的情况下编译。
我在“cpu_map_atmega328p.h”中添加了包含文件“config.h”,如下所示:
`
…….
#ifndef cpu_map_h
#define cpu_map_h

#include “config.h”

#ifdef CPU_MAP_ATMEGA328P // (Arduino Uno) 由 Grbl 正式支持。

// 定义串口引脚和中断向量。
#define SERIAL_RX USART_RX_vect
#define SERIAL_UDRE USART_UDRE_vect
……
`
在重新编译并下载到 arduino 后,一切都按预期工作:
z 限位开关的功能正常,引脚 11 上的可变主轴也工作。

也许您也可以在您的项目中尝试这样做。

总而言之,整个 grbl 项目很棒!!感谢作者和所有贡献者!

Z 限位开关不工作 #1128
SteBuTOS 评论了 2017 年 3 月 3 日  

大家好,

这看起来确实是我的问题的解决方案,但源代码修改(#include “config.h”)没有帮助。

我为所有 3 轴(最小和最大)安装了限位开关。所有 NO 连接。

我将 $21 和 $22 设置为 1,将 $5 设置为 0;
发出 $H 时,z 轴开始移动,但当 z 限位开关被触发时,它不会被识别。相反,z-继续移动,撞到机械末端。

到目前为止我为故障排除所做的工作:

  • 使用万用表确保接线工作-> ok
  • 挂在 DSO 上以检查噪音/干扰 -> 干净的信号 -> 确定
  • 设置状态报告标志以启用限位开关指示($10=19)并测试 6 个开关中的每一个:状态报告会正确指示每个开关,具体取决于它是否触发。

现在我很无能,很绝望。
任何帮助表示赞赏!

顺便说一句:我编译时启用了 config.h #define VARIBLE_SPINDLE,因此将 z-limit 开关连接到 PIN 12 并将主轴启用信号连接到 PIN 11(测试了变量“主轴速度”并且正常)

我正在使用顶部带有 grbl 防护罩的 arduino uno。

Z 限位开关不工作 #1128

还有一件奇怪的事情:我试图在 config.h 中更改归位轴的顺序
#define HOMING_CYCLE_1 (1<<Z_AXIS)
#define HOMING_CYCLE_0 ((1<<X_AXIS)|(1<<Y_AXIS))
…所以它首先尝试寻找 x 和 y,但是:在 arduino IDE 中编译的所有内容都没有问题,也没有任何错误或警告上传:完全没有效果

似乎 config.h 中的条目在归位时不起作用,但会在其他区域考虑(例如状态报告)

Z 限位开关不工作 #1128

你如何上传到 Arduino?如果使用 Arduino IDE,库文件夹中是否只有一个 grbl 固件实例?如果您有多个实例,则在上传/编译中使用哪个文件是命中或未命中。

Z 限位开关不工作 #1128

首先我用arduino编译上传。
但后来我也直接用 ArduinoBuilder (grbl 9f) 上传了预编译的十六进制文件:相同的行为
奇怪的是,状态报告正确识别所有开关的开关状态。因此我会说这不可能是硬件问题。

Z 限位开关不工作 #1128

@SteBuTOS首先,您可能应该移至https://github.com/gnea/grbl/上的 grbl 1.1,因为不再建议将 grbl 0.9 用于新安装或请求支持。

其次,如果您更改了 HOMING_CYCLE 定义顺序并重新编译/上传了更改,并且它对归位没有任何影响 – 那么您就没有修改 grbl 的正确副本。确保您拥有并正在编辑的唯一副本位于 Arduino 库文件夹下并称为 grbl。即使您已重命名它们,也不能有其他副本。

第三,您可能知道这一点,但最好始终先归位 Z,以便 XY 归位可以避开障碍物。

Z 限位开关不工作 #1128

@eociar你的评论重新添加#include config.h到 cpu 映射包括没有多大意义。cpu 映射包含文件仅供 grbl.h 使用,它已经包含了 config.h。
因此,除非您使用非标准程序进行编译,否则可能发生这种情况的唯一方法是如果您有一个旧版本没有按此顺序执行包含,但这似乎不太可能,因为该区域的代码并没有真正在很长一段时间内改变了。

Z 限位开关不工作 #1128

大家好
我有一个问题,grbl 不识别 Z 轴的限位开关,我通过重新阅读 grbl 的各个版本的特性找到了答案。在 0.9x 版本中,D9 (X) D10 (Y) D12 (Z) 引脚分配给限位开关,而 cnc shield 使用 D9 (X) D10 (Y) D11 (Z) 引脚。由 0.8c 版本的 grbl 完美解释,我在 Arduino UNO 上重新加载了 0.8c 固件,现在一切正常。

Z 限位开关不工作 #1128

您可以轻松地将 cnc 屏蔽适应新版本的 grbl,弯曲需要更换的 cnc 屏蔽引脚,您可以将 2 根电线焊接在 arduino 底部并连接到弯曲引脚

Z 限位开关不工作 #1128

非常好的想法和解决方案,非常感谢。

Z 限位开关不工作 #1128

在 grbl 1.1 中,如果您不需要为可变主轴输出电压打开硬件 PWM 输出,只需注释掉 config.h 中的 VARIABLE_SPINDLE 行即可使其正常工作。

Z 限位开关不工作 #1128

想对 arjun1299 表示感谢——注释掉 VARIABLE_SPINDLE 为我解决了这个问题——在 config.h 本身中有关于它的所有内容的详细解释。您需要删除以前的 Arduino 库,重新编译并重新上传。我的 Z 限位开关现在可以使用了 – 谢谢!!

Z 限位开关不工作 #1128

上述步骤回答了这个问题,但是对于不确定具体步骤的人来说:

首先测试什么是有效的,什么是无效的。使用通用 Gcode 发送器连接到 arduino,(波特率可能必须为 115200)

在此处更改 $10= <<numbers
将更改您获得的报告类型。
发送 $$ 会告诉你你的arduino有什么设置

对我来说,输入 $10=17
然后发送: ?
给我一个以
Lim:000结尾的结果
1=limit switch triggered
命令这 3 个零指的是:X > Y > Z

按住 endstops 并发送?允许您检查状态。

然后在 Github 上我下载了 grbl 1.1 文件。提取它(例如 winrar)并使用记事本 ++ 打开文件:
grbl-master\grbl\config.h

按 CTRL + F 搜索:VARIABLE_SPINDLE
对我来说这是第 247 行 – 然后我在前面加上两个斜杠,这样它显示为:
//#define VARIABLE_SPINDLE // 默认启用。评论禁用。

然后我保存了文件。

使用arduino官方电脑程序:
Sketch>include library>add .ZIP library

导航到文件时,您需要在 grbl-master 文件夹中选择 grbl 文件夹。

然后确保您已连接到您的 arduino:工具>端口>您的 com 端口号
也确保在工具>板下,您选择了正确的 arduino 板,例如“uno”

然后,sketch>include library>grbl(在底部)
然后 sketch>verify/compile

然后按右边的箭头图标上传它。

关闭 arduino 程序。
在通用 gcode 发送器上连接到您的开发板。您可能需要玩弄 $10= 上的数字,
但现在对我来说,输入 $10=17
然后 ?
当我按下 z 限位开关时,限位字段上的第一个数字显示为 1。
林:100

如果你看到那个,它应该工作。如果你想要一组常闭和常开的限位开关,你也可以根据需要反转限位开关。通过将 $5= 设置为 1 来反转

我花了很多时间阅读有用的文章,尽管这篇文章给出了正确的答案,但知道如何注释掉和编译什么是一件很麻烦的事。我从未发布过,只阅读过帮助文章.. 所以希望在大约 5 年的时间里这会对某人有所帮助。

祝你有美好的一天,希望这能为你节省几个小时的故障排除时间 o7

喜欢 (0)