开源改变世界

限制问题 #858

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

关闭
ameisso 打开了这个问题 2020 年 4 月 27 日 · 3条评论
关闭

限制问题#858

ameisso 打开了这个问题 2020 年 4 月 27 日 · 3条评论

注释

限制问题 #858

大家好

我尝试在我的绘图仪上添加限位开关。

我使用只有两个轴的laserAxe控制器

在这个板上,限制连接到引脚 9、10 和 12
,所以我像这样更改了更改的 cpu_map.h:

#define LIMIT_DDR DDRB
#define LIMIT_PIN PINB
#define LIMIT_PORT PORTB
#define X_LIMIT_BIT 9   // Uno Digital Pin 9
#define Y_LIMIT_BIT 10   // Uno Digital Pin 10
#ifdef VARIABLE_SPINDLE // Z Limit pin and spindle enabled swapped to access hardware PWM on Pin 11.
#define Z_LIMIT_BIT 12   // Uno Digital Pin 12
#else
#define Z_LIMIT_BIT 12 // Uno Digital Pin 11
#endif
#define LIMIT_MASK ((0 << X_LIMIT_BIT) | (0 << Y_LIMIT_BIT) | (0 << Z_LIMIT_BIT)) // All limit bits
#define LIMIT_INT PCIE0                                                           // Pin change interrupt enable pin
#define LIMIT_INT_vect PCINT0_vect
#define LIMIT_PCMSK PCMSK0 // Pin change interrupt register

我还更改了 config.h,因此它不会尝试移动 Z:
#define HOMING_CYCLE_0 ((1 << Y_AXIS) | (1 << X_AXIS))

当我用cncjs启动卡时,我得到了一个警报。所以我点击 $H 并且轴向正确的方向移动。
当我关闭两个限位开关时,没有任何反应,轴继续移动并且永不停止。

请注意,目前,我的开关是 10 厘米长的电线,我用 GND 将它们短路以关闭它们。所以我不认为这可能与噪音有关

这是我的 $$ 输出:

> Grbl 1.1h ['$' for help]
> client> $$
> [MSG:'$H'|'$X' to unlock]
> $0=10 (Step pulse time, microseconds)
> $1=25 (Step idle delay, milliseconds)
> $2=0 (Step pulse invert, mask)
> $3=3 (Step direction invert, mask)
> $4=0 (Invert step enable pin, boolean)
> $5=0 (Invert limit pins, boolean)
> $6=0 (Invert probe pin, boolean)
> $10=16 (Status report options, mask)
> $11=0.010 (Junction deviation, millimeters)
> $12=0.002 (Arc tolerance, millimeters)
> $13=0 (Report in inches, boolean)
> $20=0 (Soft limits enable, boolean)
> $21=1 (Hard limits enable, boolean)
> $22=1 (Homing cycle enable, boolean)
> $23=3 (Homing direction invert, mask)
> $24=10.000 (Homing locate feed rate, mm/min)
> $25=500.000 (Homing search seek rate, mm/min)
> $26=5 (Homing switch debounce delay, milliseconds)
> $27=1.000 (Homing switch pull-off distance, millimeters)
> $30=1000 (Maximum spindle speed, RPM)
> $31=0 (Minimum spindle speed, RPM)
> $32=1 (Laser-mode enable, boolean)
> $100=100.000 (X-axis travel resolution, step/mm)
> $101=100.000 (Y-axis travel resolution, step/mm)
> $102=100.000 (Z-axis travel resolution, step/mm)
> $110=10000.000 (X-axis maximum rate, mm/min)
> $111=10000.000 (Y-axis maximum rate, mm/min)
> $112=10000.000 (Z-axis maximum rate, mm/min)
> $120=1000.000 (X-axis acceleration, mm/sec^2)
> $121=1000.000 (Y-axis acceleration, mm/sec^2)
> $122=1000.000 (Z-axis acceleration, mm/sec^2)
> $130=1000.000 (X-axis maximum travel, millimeters)
> $131=1000.000 (Y-axis maximum travel, millimeters)
> $132=200.000 (Z-axis maximum travel, millimeters)

我将非常感谢任何见解!

最好

限制问题 #858

听起来有些东西没有正确连接。Grbl 使用中断来确定限位开关是否已触发。连接好所有东西后,将电压表 (DMM) 连接到限位开关引脚……如果一个限位开关位置的电压为 ~5 伏,另一个为 ~0 伏,那么 Grbl 将看到状态发生变化。如果在触发限位开关时没有看到电压摆动,则说明连接不正确。

限制问题 #858
#define LIMIT_DDR DDRB
#define LIMIT_PIN PINB
#define LIMIT_PORT PORTB
#define X_LIMIT_BIT 1   // Uno Digital Pin 9
#define Y_LIMIT_BIT 2   // Uno Digital Pin 10
#ifdef VARIABLE_SPINDLE // Z Limit pin and spindle enabled swapped to access hardware PWM on Pin 11.
#define Z_LIMIT_BIT 3   // Uno Digital Pin 12
#else
#define Z_LIMIT_BIT 3 // Uno Digital Pin 11
#endif
#define LIMIT_MASK ((0 << X_LIMIT_BIT) | (0 << Y_LIMIT_BIT) | (0 << Z_LIMIT_BIT)) // All limit bits
#define LIMIT_INT PCIE0                                                           // Pin change interrupt enable pin
#define LIMIT_INT_vect PCINT0_vect
#define LIMIT_PCMSK PCMSK0 // Pin change interrupt register

也许试试这个?由于您使用“PINB”,因此您使用的数字不能是 9,10…..

限制问题 #858
作者

你好,

感谢您的反馈。
在电路板上,我在 9,10 上提供了用于限位开关的连接器,
在这里读到这些在端口 B 上的位置?我错过了什么。

顺便说一句,我换了一个更方便的控制板,所以现在一切都很好。

谢谢

喜欢 (0)