2021-08-17

自己diy 3D打印机 malin2.0配置说明

Corexy 3D打印机 ramps1.4方案 malin2.0 配置方法

提示:本文是我自己在DIY 一台 Corexy 3D打印机过程中对marlin2.0固件配置的一些经验和总结,使用的硬件是基于Atmega2560 和 ramps1.4。

mega2560+ramps1.4+lcd12864+a4988
低电平触发继电器

提示:以下是本篇文章正文内容,下面案例可供参考

一、marlin2.0.x 代码下载地址:

https://github.com/MarlinFirmware/Marlin

二、机器设置

如果机器不是Core类型的,此处不需修改。由于我的打印机类型是Corexy类型,所以在 Configuration.h 文件中搜索 //#define COREXY 去掉前面双斜杆即可。

//===========================================================================
//============================= Mechanical Settings =========================
//===========================================================================

// @section machine

// Enable one of the options below for CoreXY, CoreXZ, or CoreYZ kinematics,
// either in the usual order or reversed
//#define COREXY
//#define COREXZ
//#define COREYZ
//#define COREYX
//#define COREZX
//#define COREZY
//#define MARKFORGED_XY  // MarkForged. See https://reprap.org/forum/read.php?152,504042

三、LCD屏幕设置

由于我的屏幕是LCD12864类型,所以在 Configuration.h 文件中搜索以下内容,去掉前面双斜杆注释

//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

搜索下面代码,改为 把en 改为 zh_CN ,即可支持中文显示

#define LCD_LANGUAGE en

显示中文需要安装u8glib库,可以从arduino ide 中安装
在这里插入图片描述

四、修改电机运动方向和个数

在 Configuration.h 文件中搜索以下内容,根据实际运动结果修改电机方向,一般只用到X,Y,Z,E0,E1

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false
//#define INVERT_I_DIR false
//#define INVERT_J_DIR false
//#define INVERT_K_DIR false

// @section extruder

// For direct drive extruder v9 set to true, for geared extruder set to false.
#define INVERT_E0_DIR true
#define INVERT_E1_DIR true
//#define INVERT_E2_DIR false
//#define INVERT_E3_DIR false
//#define INVERT_E4_DIR false
//#define INVERT_E5_DIR false
//#define INVERT_E6_DIR false
//#define INVERT_E7_DIR false

如果是双Z轴需要使用两个电机的,可以一个接在 Z 口,一个接在 E1 接口,然后在 Configuration_adv.h 文件中搜索以下代码,把 1 改 为 2 即可

#define NUM_Z_STEPPER_DRIVERS 1   // 把1 改为2 即可利用E1驱动另外一个Z轴电机

修改和启动电机驱动器,按实际修改使用的驱动器型号和对应的输出端口

/**
 * Stepper Drivers
 *
 * These settings allow Marlin to tune stepper driver timing and enable advanced options for
 * stepper drivers that support them. You may also override timing options in Configuration_adv.h.
 *
 * A4988 is assumed for unspecified drivers.
 *
 * Use TMC2208/TMC2208_STANDALONE for TMC2225 drivers and TMC2209/TMC2209_STANDALONE for TMC2226 drivers.
 *
 * Options: A4988, A5984, DRV8825, LV8729, L6470, L6474, POWERSTEP01,
 *          TB6560, TB6600, TMC2100,
 *          TMC2130, TMC2130_STANDALONE, TMC2160, TMC2160_STANDALONE,
 *          TMC2208, TMC2208_STANDALONE, TMC2209, TMC2209_STANDALONE,
 *          TMC26X,  TMC26X_STANDALONE,  TMC2660, TMC2660_STANDALONE,
 *          TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE
 * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE']
 */
#define X_DRIVER_TYPE  A4988
#define Y_DRIVER_TYPE  A4988
#define Z_DRIVER_TYPE  A4988
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define Z4_DRIVER_TYPE A4988
//#define I_DRIVER_TYPE  A4988
//#define J_DRIVER_TYPE  A4988
//#define K_DRIVER_TYPE  A4988
#define E0_DRIVER_TYPE A4988
#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988
//#define E6_DRIVER_TYPE A4988
//#define E7_DRIVER_TYPE A4988

// Enable this feature if all enabled endstop pins are interrupt-capable.
// This will remove the need to poll the interrupt pins, saving many CPU cycles.
//#define ENDSTOP_INTERRUPTS_FEATURE

五、设置电机脉冲步数

由于我使用的XY轴的传送轮是2GT20齿,步进电机是步进角度是1.8度,驱动器16细分,所以,XY轴转动1mm需要的脉冲是= (360/1.8)16/220=80;Z轴使用的是导程8mm的丝杆,步进电机是步进角度是1.8度,驱动器16细分,所以Z轴移动1mm需要的脉冲数是= (360/1.8)*16/8=400,挤出机使用的是泰坦挤出机,脉冲是382.166。
在 Configuration.h 文件中搜索以下内容,改为
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 382.166 }

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 500 }

六、设置热床大小

在 Configuration.h 文件中搜索以下内容,XY改为实际热床大小和Z改为实际打印高度

// The size of the printable area
#define X_BED_SIZE 200
#define Y_BED_SIZE 200

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 200

七、设置调平方式

由于我采用的是手动调平,所以在 Configuration.h 文件中搜索以下内容,去掉 //#define MESH_BED_LEVELING 前面双斜杠注释,即可启用手动调平功能

//#define MESH_BED_LEVELING

在 Configuration.h 文件中搜索以下内容,去掉 //#define LCD_BED_LEVELING 前面双斜杠注释

//#define LCD_BED_LEVELING

在 Configuration.h 文件中搜索以下内容,去掉 //#define LEVEL_BED_CORNERS 前面双斜杠注释,启用边角调平

//#define LEVEL_BED_CORNERS

八、设置断料检测

在 Configuration.h 文件中搜索以下内容,去掉#define FILAMENT_RUNOUT_SENSOR前面双斜杠注释,然后根据开关断料检测开关的接法,选择高电平触发还是低电平触发,如果断料开关没有插入材料是常闭的,那么需要在#define FIL_RUNOUT_PULLUP 前面加双下划线添加注释,然后在把 //#define FIL_RUNOUT_PULLDOWN 前面的注释去掉,否则和上面步骤相反即可。

//#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
  #define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500.
  #define NUM_RUNOUT_SENSORS   1          // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.

  #define FIL_RUNOUT_STATE     LOW        // Pin state indicating that filament is NOT present.
  #define FIL_RUNOUT_PULLUP               // Use internal pullup for filament runout pins.
  //#define FIL_RUNOUT_PULLDOWN           // Use internal pulldown for filament runout pins.
  //#define WATCH_ALL_RUNOUT_SENSORS      // Execute runout script on any triggering sensor, not only for the active extruder.
                                          // This is automatically enabled for MIXING_EXTRUDERs.

接着在 此时需要在 Marlin\src\pins\ramps\pins_RAMPS.h pins_RAMP.h 文件中的FIL_RUNOUT_PIN指向当前使用的管脚,这里把断料检测开关的G和S分别插入在X+接口的G和S,所以需要把 原来数字 4 改为 2,如下面例子

// RAMPS 1.4 DIO 4 on the servos connector
#ifndef FIL_RUNOUT_PIN
  #define FIL_RUNOUT_PIN        2   //使用 X-MAX
#endif

在 Configuration_adv.h 文件中搜索以下代码,去掉前面双斜杆注释

//#define ADVANCED_PAUSE_FEATURE

在 Configuration.h 文件中搜索以下内容,去掉前面双斜杠注释

//#define NOZZLE_PARK_FEATURE

九、设置断电恢复续打

在 Configuration.h 文件中搜索以下内容,去掉 //#define POWER_LOSS_RECOVERY 前面双斜杠注释,并把 false 改为 true ,使其默认打开此功能。

//#define POWER_LOSS_RECOVERY
  #if ENABLED(POWER_LOSS_RECOVERY)
    #define PLR_ENABLED_DEFAULT   false // Power Loss Recovery enabled by default. (Set with 'M413 Sn' & M500)

十、设置打完自动关机1

用1个继电器模块(低电平触发)实现了自动关机
在这里插入图片描述
接线如图所示(虚线圈起来的部分),实际上只需要一个继电器模块和五条接线。
+(XSTOP):x轴限位开关的+极,一般是X- 的信号端
IN:是继电器模块的触发信号输入端

工作工程:
打开电源开关,打印机工作。当打印机开始打印(挤出头离开原点后),将电源开关关闭(此时,电源通过继电器供电)。打印结束,挤出头回到原点位置,触发x- stop,继电器释放,电源断开,打印机关机。
当然在打印过程中,可以随时打开电源开关,这样打印机打印完毕就不会关机。

注意两点:
1.使用自动关机功能时,一定挤出头开始出丝打印再关闭电源开关,即让x轴限位开关处于未触发状态才可以;
2.打印完毕后,挤出头必须要回到x轴0点位置才能触发自动关机。一般的切片软件中都会这么设置,如果没有的话,可以手动在GCODE切片代码最后加上让X轴回到0点的命令G28 X0


  1. 这部分内容转摘自以下网址 https://tieba.baidu.com/p/4888098253 ↩︎

  • 5
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值