Nomar记录一段历史
马林鱼温度传感器问题

我有一个 RAMPS 1.4 和一个 Arduino Mega 2560。问题在于 100k NTC 热敏电阻。我用万用表测试过,结果约为 122kΩ。

我使用的是 Marlin 1.0.2(最新稳定版)。我正在使用 MK8 挤出机,并且没有从热传感器接收温度读数 - 无论我如何连接它。但是,在APrinter 固件上它可以完美运行。

configuration.h 中,我尝试了大部分选项,但发现“1”对我来说是最好的。

在 Marlin 上执行m105 ,我得到以下结果:

 ok T:0.0 /0.0 B:0.0 /0.0 T0:0.0 /0.0 @:0 B@:0

在 APrinter 上,结果是不同的:

 ok B:-inf /nan T:25.2076 /nan

我还没有连接床热敏电阻。

引脚.h

 #define TEMP_0_PIN 1 // Extruder / Analog pin numbering #define TEMP_BED_PIN 0 // Bed / Analog pin numbering

配置文件

#define TEMP_SENSOR_0 1 #define TEMP_SENSOR_BED 1 ... #define MOTHERBOARD BOARD_RAMPS_13_EFB

从 Marlin 到 APrinter 来回切换后,Marlin 完全停止了醒来。我已经配置了 LCD( ReprapDiscount 智能控制器)并且所有步进器都在工作。现在,它甚至不会在启动/连接时向 Pronterface 发送自检,或者根据日志挂起。

界面输出

Connecting... start Printer is now online. echo:Marlin1.0.2 echo: Last Updated: Jul 25 2016 17:12:39 | Author: (Rustam Rahimgulov, default config) Compiled: Jul 25 2016 echo: Free Memory: 3971 PlannerBufferBytes: 1232 echo:Hardcoded Default Settings Loaded echo:Steps per unit: echo: M92 X80.00 Y80.00 Z4000.00 E836.00 echo:Maximum feedrates (mm/s): echo: M203 X500.00 Y500.00 Z2.00 E25.00 echo:Maximum Acceleration (mm/s2): echo: M201 X9000 Y9000 Z100 E10000 echo:Acceleration: S=acceleration, T=retract acceleration echo: M204 S300.00 T3000.00 echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s) echo: M205 S0.00 T0.00 B20000 X20.00 Z0.40 E5.00 echo:Home offset (mm): echo: M206 X0.00 Y0.00 Z0.00 echo:PID settings: echo: M301 P22.20 I1.08 D114.00 start echo:Marlin1.0.2 ec (nothing more here, output just ends)
如果您使用“M105”手动请求温度会怎样?什么是“aprintr 固件”?
a) 就我遇到的 100K 热敏电阻而言,它们通常在室温下提供接近 100K 的电阻率。 b) 当您谈论 configuration.h 时,您的意思是在 Marlin 中?您是否确保您的马林鱼在其他方面处于工作状态并且在转移过程中没有缺陷?
@kamuro 这是我第一次使用 arduino,但据我所知,arduino ide 在 linux 上使用 **avrdude** 将固件上传到芯片,然后读取它以验证 *hex* 文件是否正确写入记忆。但是最近好像固件上传不正常,我进行了环回测试,一切正常。我如何确保芯片上的固件完好无损?
@kamuro 122k 是一个相当正常的读数。 100K 数字是在 25C 时引用的,122k 对应于 20-22C 左右。
您是否已将热敏电阻插入正确的插座中?也许 aprintr 正在从与 Marlin 配置不同的引脚读取温度。
@TomvanderZanden 我已经测试了 t0 和 t1 引脚中的热敏电阻,**APrinter** 固件能够区分它们并获取数据,但 **Marlin** 并非如此。目前挤出机热敏电阻连接到“t0”,床连接到“t1”。
我的意思是你应该检查马林鱼被配置为从中读取温度的引脚(在pins_ramps_14.h 中)是否对应于你的热敏电阻插入的物理引脚。
@TomvanderZanden 我将如何进行身体检查?在 **pins.h** 这些是模拟引脚 0 和 1
在 RAMPS 上,热敏电阻位于模拟引脚 13/14/15 上。如果pins.h 设置了0 和1,那么这是*不正确的*。确保您在 Marlin 中配置了正确的电路板。
@TomvanderZanden 有很多对“temp_0_pin”的重新定义,以至于很难追踪它是否正确。我可以找到将模拟引脚 13 和 15 分配给 *bed* 和 *extruder* 传感器的线路。
@Tom:很高兴知道,我现在也查了曲线,我不知道值变化这么快。好吧,当我尝试使用热敏电阻时,我家的温度似乎达到了 25°C,然后 ;) **Gemma**:似乎您比我更了解 arduino IDE。我刚刚测试了显示器是否工作并且串行 G 代码命令是否正确执行。您是否确保 Marlin 中的主板正确设置为 RAMPS 1.4(即主板识别器 33)。
@kamuro 我希望在 **configuration.h** 中声明`MOTHERBOARD BOARD_RAMPS_13_EFB` 一开始就足以通知代码我正在使用 RAMPS 1.4
Marlin 最新的稳定版本是 1.1.6:https://github.com/MarlinFirmware/Marlin/releases

1个回答

在实际的 Marlin 固件中,所有支持的打印板都列在文件“boards.h”中。此文件包含 RAMPS 1.4 的以下条目:

#define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 / 1.4(电源输出:挤出机、风扇、床)
#define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 / 1.4(电源输出:挤出机0、挤出机1、床)
#define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 / 1.4(电源输出:挤出机、风扇、风扇)
#define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 / 1.4(电源输出:Extruder0、Extruder1、风扇)

最常见的版本可能是变体。在这种情况下,您必须按照以下几行所示设置该值。

#ifndef 主板
#define 主板 BOARD_RAMPS_13_EFB
#endif

启用显示

#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

好的,是时候针对您的 3d 打印机进行调整了。您可能首先在第 58 行附近检查挤出机数量的设置。大多数 3d 打印机新手可能从一台挤出机开始,因此默认条目“1”就足够了。

// 这定义了挤出机的数量

#define 挤出机 1

在第 70 行左右,您必须为挤出机和加热床设置连接到 RAMPS 的热敏电阻。根据您的硬件配置,您必须更改定义中的最后一个值。

#define TEMP_SENSOR_0 -1
#define TEMP_SENSOR_1 -1
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 0

TEMP_SENSOR_0 的定义决定了在挤出机 1 的热端组装哪种热敏电阻。该热敏电阻必须连接到第一个传感器输入(另请参见接线图)。加热床的热敏电阻必须连接到第二个传感器输入端。热敏电阻类型配置为“TEMP_SENSOR_BED”定义行。如果您使用类型为 EPCOS B57560G104F (100K, Beta = 4036) 的热敏电阻,则将值“1”写入匹配定义。如果您有一个 100k 和 Beta = 3950 的热敏电阻,您必须在相应的定义中设置值“60”。所以定义看起来像:

对于热端和热床上的 EPCOS(Beta = 4036):

#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 -1
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1

对于热端和热床的 Beta = 3950:

#define TEMP_SENSOR_0 60
#define TEMP_SENSOR_1 -1
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 60

随机文章