注释
|
@markbotics: 问题是 Grbl 使用一个限制引脚来检测是否触发了硬限制。如果你在行程的两端都有两个开关,Grbl 无法判断要移动的方向。如果每个轴有一个限位开关(默认假设),即使它被触发它也会回家。我通常建议原始设备制造商使用一个限位开关进行归位,然后使用软限位将机器保持在机器体积内。 |
|
谢谢你的快速回答。 我认为每个轴的两个硬限位开关不相关,我不应该提到它。GRBL不知道有两个并联的限位开关。 除非我做错了什么,否则当归位开始时,如果触发它就不会归位(我假设你的意思是当信号处于活动状态时 = 低 = 限位开关被按下)。我发现如果我在按下限位开关时运行 $h,它会报错并停止。 我假设它从“搜索”开始并立即检测到限位开关,然后应该尝试返回“进给”方向(与搜索相反),直到不再按下限位开关(默认极性信号变高)。我注意到它为每个轴做了三次。 目前我只能在有人举起机器时运行归位序列,这样它的垂直限位开关就没有被按下。 |
|
你好,我上次的留言错了。Grbl 确实归位正确,即使机器在一个限位开关处于活动状态的情况下启动(没有开关关闭,因此连接到 GND)。 问题是我需要在输入端上拉电阻。Uno 内部上拉一定是不够的。我需要的不是 10K、4.7K,而是 1K 电阻,上拉至 +5V 以获得干净的性能。 |
|
我构建了一个自定义板来运行 grbl,我也使用 10k 电阻来拉高输入以获得干净的信号。 |
|
我承认,在安装上拉电阻之前,我并没有对 26 美元(Homing debounce,ms)进行太多试验。对于存储示波器,尖峰信号可能是虚假的,适当的去抖动(检查信号变化是否一致,或者理想情况下是几个,时间间隔几毫秒)会在没有电阻器的情况下修复它。然而,从干净的电信号开始可能是最好的。你的提及@electrokean如果我们从低通滤波器的角度来看,添加电容可能是一个不需要这么小 (1K) 电阻的替代解决方案。 |


您可能知道,$h 命令用于归位。设置一些参数(例如“寻找”、“进给”速度和方向反转掩码),机器首先在 Z 方向移动,然后在 X 和 Y 方向移动,直到达到安装在机器所需运动末端的限位开关,它在开关的边界处来回穿梭 3 次,然后以另一个参数量向后移动远离开关。
我们的问题是我们的一个轴通常在通电后处于行程的末端。这是因为这是一个垂直轴,在关闭电源后它会向下移动(轻轻滑动)到底部。因此,除非有人移动它(不需要的额外用户交互),否则必须在开始时按下垂直轴限位开关来启动归位序列。
除非我们做错了什么,否则 GRBL 0.9c 不喜欢这种情况并进入需要重置的错误模式。
我可以假设一个原因是它不知道应该朝哪个方向移动。然而,由于“寻找”运动(向限位开关移动)的反转掩码位,它应该知道在相反的“进给”方向上退回,直到开关未被按下。
对我们来说,限位开关处于活动状态(机器处于终点),默认激活低电压。我们的限位开关常开并连接到逻辑 GND,输入有一个上拉电阻。
谢谢你,如果你知道该怎么做。希望我们不需要修改源代码和重新编程。