开源改变世界!!

限位开关有哪些引脚 #268

推推 grbl 2年前 (2023-01-29) 120次浏览
关闭
jaysettle 打开了这个问题 2019 年 10 月 26 日 · 17条评论
关闭

限位开关有哪些引脚#268

jaysettle 打开了这个问题 2019 年 10 月 26 日 · 17条评论

注释

限位开关有哪些引脚 #268

很抱歉将此作为问题发布,我正在寻找所有错误的地方,但是限位开关的引出线在哪里?你建议用什么电路来帮助消除噪音?看起来这里有一些电阻器。
限位开关有哪些引脚 #268

它们还具有 R/C 滤波器,以消除因错误触发开关而产生的高频噪声。

还有整个引出线映射在哪里?

我查看了以下内容:
https ://github.com/bdring/Grbl_Esp32/wiki/Setting-Up-the-IO-Pins
https://github.com/bdring/Grbl_Esp32/blob/master/Grbl_Esp32/grbl_limits.cpp
https://github.com/bdring/Grbl_Esp32/blob/master/Grbl_Esp32/grbl_limits.h
https://github.com/bdring/Grbl_Esp32
https://github.com/bdring/Grbl_Esp32/wiki/Controlling-Grbl_ESP32
http ://www.buildlog.net/blog/wp-content/uploads/2018/10/outline_esp32_cnc_test_v3p1.pdf

限位开关有哪些引脚 #268
赞助作者
杰伊塞特尔 评论了 2019 年 10 月 26 日  

好的,我想我在 pdf 中找到了它们。有没有更简单的途径让人们找到管脚映射?感谢您在这里的工作!
http://www.buildlog.net/blog/wp-content/uploads/2019/05/schm_esp32_cnc_test_v3p5.pdf

限位开关有哪些引脚 #268

所以你似乎使用了 RC 滤波器。你会推荐什么价值观?开关上的 NO 或 NC?
限位开关有哪些引脚 #268

另外我每个轴都有两个平行开关,在这里看到这条线:
限位开关有哪些引脚 #268

我还需要做些什么才能让它正常工作吗?

  1. 正确的引脚 2、4 和 15
  2. rc滤波器
  3. 启用“#define LIMITS_TWO_SWITCHES_ON_AXES”
限位开关有哪些引脚 #268

只需在 CPU 映射中查找或更改它们:
https ://github.com/bdring/Grbl_Esp32/blob/master/Grbl_Esp32/cpu_map.h#L92

限位开关有哪些引脚 #268
所有者

cpu map是这个

#ifdef CPU_MAP_ESP32
	// This is the CPU Map for the ESP32 Development Controller
	// https://github.com/bdring/Grbl_ESP32_Development_Controller
	// https://www.tindie.com/products/33366583/grbl_esp32-cnc-development-board-v35/
        ...

我建议使用 V4 版本。

还有可以帮助消除噪音的限位开关去抖动。

限位开关有哪些引脚 #268
赞助作者

为什么是 V4?我有 V3 工作,有什么区别?谢谢。

限位开关有哪些引脚 #268
所有者

一些 i/o 在 V4 上被洗牌了。主要原因是io2。大多数开发板在 io2 上都有一个 LED,如果您将它用作输入,可能会出现问题。出于某种原因,我从来没有遇到过这个问题,但很多人都报告过。它必须接近阈值。

io2 用于 V3 及更早版本的 x 限位开关。在 V4 上它是主轴 PWM。它作为 PWM 输出效果很好,因为您可以看到亮度变化。其他一些东西也乱七八糟。

我所知道的关于 ESP32 gpio 的一切都在这个 wiki 页面上。每当我学到新东西时,我都会添加它。

限位开关有哪些引脚 #268
浪费时间4000 评论了 2019 年 11 月 5 日  

当 esp32 开发套件在 EN 引脚上进行复位时,为什么复位与 P34 相关联。
我想将 P34 用作限位销,但是当您使用上拉电阻并触发限位开关时,它会重置设备。
我已经注释掉(//#define CONTROL_RESET_PIN GPIO_NUM_34)仍然重置单元
谢谢

限位开关有哪些引脚 #268
所有者

这是一种不同类型的重置。Grbl 重置是一种“软”重置 grbl 的方法。

  • 如果 Grbl 使用的是硬限位开关或软限位开关,则需要进行软复位以清除错误
  • 如果您正在运行作业并暂停进给,则可以重新启动该作业或执行 Grbl 重置以结束它。

通常,软重置会清除 Grbl 的缓冲区,但您不会松动位置,也不需要重新归位。

你不需要一个按钮。软重置也可以通过 Gcode 发送器完成。

附上你的cpu_map

限位开关有哪些引脚 #268
所有者

请将您的地图粘贴到回复中。

…只是你正在使用的那个。

限位开关有哪些引脚 #268
浪费时间4000 评论了 2019 年 11 月 5 日  

#ifdef CPU_MAP_ESP32_LPCNC
  // This is the CPU Map for the LPCNC Shield   
  
  // It is OK to comment out any step and direction pins. This
    // won't affect operation except that there will be no output
    // form the pins. Grbl will virtually move the axis. This could 
    // be handy if you are using a servo, etc. for another axis.
    #define CPU_MAP_NAME "CPU_MAP_ESP32_LPCNC"  
    
    #define X_STEP_PIN        GPIO_NUM_12
    #define X_DIRECTION_PIN   GPIO_NUM_14
    #define X_RMT_CHANNEL   0
    
    #define Y_STEP_PIN        GPIO_NUM_27
    #define Y_DIRECTION_PIN     GPIO_NUM_26
    #define Y_RMT_CHANNEL   1
    
    #define Z_STEP_PIN        GPIO_NUM_25   
    #define Z_DIRECTION_PIN     GPIO_NUM_33      
    #define Z_RMT_CHANNEL   2   
    
    // OK to comment out to use pin for other features
    #define STEPPERS_DISABLE_PIN GPIO_NUM_13    
    
    // *** the flood coolant feature code is activated by defining this pins
    // *** Comment it out to use the pin for other features
    // #define COOLANT_FLOOD_PIN   GPIO_NUM_16     
    //#define COOLANT_MIST_PIN    GPIO_NUM_21
    
    // If SPINDLE_PWM_PIN is commented out, this frees up the pin, but Grbl will still
    // use a virtual spindle. Do not comment out the other parameters for the spindle.
    #define SPINDLE_PWM_PIN    GPIO_NUM_17 
    #define SPINDLE_PWM_CHANNEL 0
    // PWM Generator is based on 80,000,000 Hz counter
    // Therefor the freq determines the resolution
    // 80,000,000 / freq = max resolution
    // For 5000 that is 80,000,000 / 5000 = 16000 
    // round down to nearest bit count for SPINDLE_PWM_MAX_VALUE = 13bits (8192)
    #define SPINDLE_PWM_BASE_FREQ 5333 // Hz
    #define SPINDLE_PWM_BIT_PRECISION 8   // be sure to match this with SPINDLE_PWM_MAX_VALUE
    #define SPINDLE_PWM_OFF_VALUE     0
    #define SPINDLE_PWM_MAX_VALUE     255 // (2^SPINDLE_PWM_BIT_PRECISION)
    
    #ifndef SPINDLE_PWM_MIN_VALUE
        #define SPINDLE_PWM_MIN_VALUE   1   // Must be greater than zero.
    #endif
    
    // #define SPINDLE_ENABLE_PIN  GPIO_NUM_22
    
    #define SPINDLE_PWM_RANGE         (SPINDLE_PWM_MAX_VALUE-SPINDLE_PWM_MIN_VALUE)       
    
    // if these spindle function pins are defined, they will be activated in the code
    // comment them out to use the pins for other functions
    //#define SPINDLE_ENABLE_PIN  GPIO_NUM_16
    //#define SPINDLE_DIR_PIN   GPIO_NUM_16   
    
    #define X_LIMIT_PIN       GPIO_NUM_34  
    #define Y_LIMIT_PIN       GPIO_NUM_35  
    #define Z_LIMIT_PIN       GPIO_NUM_32   
    #define LIMIT_MASK        B111
    
    // if using a probe, Door, Reset, Hold, Start, Servo or Solenoid uncomment and asign a pin
    // Useable pins are 0,15, 21, 22, 32, 34, 35, 36, 39
    // Pins 34, 35, 36 and 39 need external pullup
    //#define PROBE_PIN             GPIO_NUM_32  
    //#define CONTROL_SAFETY_DOOR_PIN   GPIO_NUM_35   
    //#define CONTROL_RESET_PIN         GPIO_NUM_34  
    //#define CONTROL_FEED_HOLD_PIN     GPIO_NUM_36   
    //#define CONTROL_CYCLE_START_PIN   GPIO_NUM_39  
    
    //#define USING_SERVO  // uncomment to use this feature
    //#define USING_SOLENOID // uncomment to use this feature
    
    #ifdef USING_SERVO
      #define USE_SERVO_AXES 
      #define SERVO_Z_PIN   GPIO_NUM_27
      #define SERVO_Z_CHANNEL_NUM 3
      #define SERVO_Z_RANGE_MIN 0
      #define SERVO_Z_RANGE_MAX 10
    #endif
        
    #ifdef USING_SOLENOID
      #define USE_PEN_SOLENOID
      #define SOLENOID_PEN_PIN GPIO_NUM_16
      #define SOLENOID_CHANNEL_NUM 6
    #endif
        
    
#endif

此 cpu_map 条目适用于我的 diy 板

限位开关有哪些引脚 #268
所有者
培养 评论了 2019 年 11 月 5 日  

您遇到的问题到底是什么?我刚刚将您的 cpu 映射加载到 ESP32 开发套件中,x 限制工作正常。

这是从我的串口监视器上截下来的。这显示了来自 ? 命令。我将引脚 34 接地并看到引脚 X 并将其连接到 3.3v 但没有看到 X。这是一块没有上拉的松散板,所以当断开连接时,X 和 Y 可以是任何东西。

没有重置。

[MSG:Using cpu_map...CPU_MAP_ESP32_LPCNC]

Grbl 1.1f ['$' for help]
<Idle|MPos:0.000,0.000,0.000|FS:0,0|Pn:XY|WCO:0.000,0.000,0.000>
ok
<Idle|MPos:0.000,0.000,0.000|FS:0,0|Pn:XY|Ov:100,100,100>
ok
<Idle|MPos:0.000,0.000,0.000|FS:0,0|Pn:XY>
ok
<Idle|MPos:0.000,0.000,0.000|FS:0,0|Pn:XY>
ok
<Idle|MPos:0.000,0.000,0.000|FS:0,0|Pn:XY>
ok
<Idle|MPos:0.000,0.000,0.000|FS:0,0|Pn:Y>
ok
<Idle|MPos:0.000,0.000,0.000|FS:0,0|Pn:XY>
ok

限位开关有哪些引脚 #268

当您添加上拉并触发它重置的限位开关时,无需上拉即可正常工作。
我查看了固件中的所有位置,以查找对 P34 的引用,以将 grbl_reset 移动到不同的引脚。
GRBL_Reset 是否硬编码到该引脚。

限位开关有哪些引脚 #268
所有者

上拉不应该影响任何东西。你拉到3.3V了吗?

固件中没有硬编码的引脚。都是参考cpu map。

限位开关操作在 system.cpp 中定义。它们附加到读取它们的中断。System.cpp 从 cpu 映射中获取所有 GPIO_NUM。

限位开关有哪些引脚 #268
所有者

您是否在串行控制台中看到类似[MSG:Reset via control pin]的文本?

限位开关有哪些引脚 #268

是的拉 3.3V 刚刚检查它是酸痛的。
触发限制时的控制台输出。

rst:0x1(POWERON_RESET),boot:0x13(SPI_FAST_FLASH_BOOT)
configsip:0,SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
模式:DIO,时钟div: 1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8

[MSG:轴数 3]
[MSG:定时步数]

[MSG:Client Started]
[MSG:Connecting The_Monster]
[MSG:Connecting.]
[MSG:Connected with 192.168.2.13]
[MSG:Connected with 192.168.2.13]
[MSG:Start mDNS with hostname:http://Laser. local/]
[MSG:SSDP Started]
[MSG:HTTP Started]
[MSG:TELNET Started 23]
[MSG:Using cpu_map…CPU_MAP_ESP32_LPCNC]

Grbl 1.1f [‘$’寻求帮助]
[MSG:’$H’|’$X’解锁]

限位开关有哪些引脚 #268
所有者

即硬复位(POWERON_RESET)。Grbl reset 没有这样做。

Grbl reset via button 会将此文本发送到串行端口[MSG:Reset via control pin]。您将看不到该启动文本。

这也不是固件崩溃或看门狗超时。发生崩溃时,您将看到一些回溯信息。

单击连接到 EN 引脚的 ESP32 重置按钮,我得到了你得到的结果。

限位开关有哪些引脚 #268

哇,我弄糊涂了。
感谢您的耐心等待。
问题出在固件或电路板上。
这是终点站发生故障。
再次感谢你,我找错地方了。

限位开关有哪些引脚 #268
所有者

好的,很好。

串行控制台总是会提供很多线索。