用户工具

站点工具


ocrobot:3d_print:pt100_to_analog

两线PT100转0-5V

该模组为E3D PT100 Amplifier Board兼容,使用E3D PT100改造的教程都可以使用该模组。

产品图片

PT100模组读取PT100传感器并在信号引脚上输出 0-5V 的电压。该模组的设计具有与 Ultimaker2 电子设备相同的增益和信号输出。这意味着它在 Marlin 固件中已经有兼容的温度表。

PT100 的最高额定温度为 500°C。

重要的是要了解 PT100 放大器不是热敏电阻,不能仅插入电子设备的正常热敏电阻输入。

PT100 板需要将 0v 和 5v 引脚连接到电源,电流要求非常小,因此您可以将其连接到控制器板上的任何 5v 和 0v 引脚。这为董事会提供了电力,因此它可以做放大的事情。

然后需要将信号输出引脚连接到电子板上的备用模拟输入引脚。查看您的特定控制器板电路图,找到当前未使用的以大写“A”开头的引脚。这些通常在标有 AUX 或 EXP 的扩展或辅助接头上可用。例如,在 RAMPS 板上,您可以使用位于接头 AUX-1 上的引脚“A3”。

您现在需要告诉 Marlin 您已将 PT100 信号连接到哪个引脚,并告诉它您正在使用 PT100 放大器。

首先,为了让 Marlin 知道要查看哪个引脚,我们需要编辑固件的“pins.h”文件。这可以在标准的 Arduino 编辑器中完成。pin.h 文件包含整个范围的板的管脚定义,重要的是编辑处理特定控制器板的文件的正确部分。对于 RAMPS 1.4,我们滚动文件直到找到处理 RAMPS 板的文件部分,这从第 550 行左右开始。

注意:在 Marlin 1.1.x 中,RAMPS 1.4 板的文件称为“pins_RAMPS.h”,改为修改此文件。

然后我们找到专门处理第一个温度传感器(0)的行。这是针对此特定情况的第 708 行,如下所示:

#define TEMP_0_PIN 13 // 模拟编号

我们可以看到,目前,marlin 将查看温度传感器的模拟引脚 13。我们已将新传感器连接到控制器板上的模拟引脚“A3”,因此我们将数字 13 更改为 3:

#define TEMP_0_PIN 3 // 模拟编号

pin.h 就是这样,只要记住找到并使用正确的电路板部分。如果您同时使用双挤出机和 PT100,那么您显然也必须重新配置其他引脚。

现在我们需要告诉 marlin 我们连接的是什么类型的传感器。这是在固件的 configuration.h 文件中完成的。在您通常配置热敏电阻类型的文件的热设置区域中:

#define TEMP_SENSOR_0 5

目前,就我而言,它设置为传感器类型 5,用于标准 E3D Semitec 热敏电阻。我们需要将其更改为传感器类型 20 的 PT100 设置:

#define TEMP_SENSOR_0 20

这就是固件的全部内容。您现在应该能够编译和上传它,并且所有东西都连接到板上,您现在应该可以看到新 PT100 传感器的温度读数正确!

请注意,A3 引脚不一定是您要连接的模拟引脚,例如在您将连接到 A10 引脚的 RUMBA 板上,因此请查看电路板示意图以了解您正在使用的模拟引脚的编号。

故障排除 从您的 PT100 唱头(从放大器板上拆下)读取电阻读数,在室温下读数应约为 100 欧姆。 确保 5v 引脚输出稳定的 5v。 当电路板在室温下连接到 GND 和 5v 线时,如果您探测信号和 GND,它的读数应该大约为 1.2v。 确保您已经完全定义了信号引脚,引脚 3 并不总是您的电路板使用的引脚,请仔细检查您的特定电路板的原理图您需要定义什么引脚。 信号引脚必须连接到备用模拟引脚,不能使用数字引脚。

RUMBA

假设稳定的 5V 电源 - 电路板的输出将如下所示。

温度输出电压
00.00
11.11
101.15
201.20
301.24
401.28
501.32
601.36
701.40
801.44
901.48
1001.52
1101.56
1201.61
1301.65
1401.68
1501.72
1601.76
1701.80
1801.84
1901.88
2001.92
2101.96
2202.00
2302.04
2402.07
2502.11
2602.15
2702.18
2802.22
2902.26
3002.29
3102.33
3202.37
3302.41
3402.44
3502.48
3602.51
3702.55
3802.58
3902.62
4002.66
5003.00
6003.33
7003.63
8003.93
9004.21
10004.48
11004.73

Prusa MK3S PT100改机

通过查看Prusa MK3S的源码thermistortables.h文件,在其中1130行找到如下代码,在Prusa的源码中已经默认支持E3D的PT100带放大器输出的版本。

#if (THERMISTORHEATER_0 == 247) || (THERMISTORHEATER_1 == 247) || (THERMISTORHEATER_2 == 247) || (THERMISTORBED == 247) // Pt100 with 4k7 MiniRambo pullup & PT100 Amplifier
const short temptable_247[][2] PROGMEM = {
// Calculated from Bob-the-Kuhn's PT100 calculator listed in https://github.com/MarlinFirmware/Marlin/issues/5543
// and the table provided by E3D at http://wiki.e3d-online.com/wiki/E3D_PT100_Amplifier_Documentation#Output_Characteristics.
{  0 * OVERSAMPLENR,    0},
{241 * OVERSAMPLENR,    1},
{249 * OVERSAMPLENR,   10},
{259 * OVERSAMPLENR,   20},
{267 * OVERSAMPLENR,   30},
{275 * OVERSAMPLENR,   40},
{283 * OVERSAMPLENR,   50},
{291 * OVERSAMPLENR,   60},
{299 * OVERSAMPLENR,   70},
{307 * OVERSAMPLENR,   80},
{315 * OVERSAMPLENR,   90},
{323 * OVERSAMPLENR,  100},
{331 * OVERSAMPLENR,  110},
{340 * OVERSAMPLENR,  120},
{348 * OVERSAMPLENR,  130},
{354 * OVERSAMPLENR,  140},
{362 * OVERSAMPLENR,  150},
{370 * OVERSAMPLENR,  160},
{378 * OVERSAMPLENR,  170},
{386 * OVERSAMPLENR,  180},
{394 * OVERSAMPLENR,  190},
{402 * OVERSAMPLENR,  200},
{410 * OVERSAMPLENR,  210},
{418 * OVERSAMPLENR,  220},
{426 * OVERSAMPLENR,  230},
{432 * OVERSAMPLENR,  240},
{440 * OVERSAMPLENR,  250},
{448 * OVERSAMPLENR,  260},
{454 * OVERSAMPLENR,  270},
{462 * OVERSAMPLENR,  280},
{469 * OVERSAMPLENR,  290},
{475 * OVERSAMPLENR,  300},
{483 * OVERSAMPLENR,  310},
{491 * OVERSAMPLENR,  320},
{499 * OVERSAMPLENR,  330},
{505 * OVERSAMPLENR,  340},
{513 * OVERSAMPLENR,  350},
{519 * OVERSAMPLENR,  360},
{527 * OVERSAMPLENR,  370},
{533 * OVERSAMPLENR,  380},
{541 * OVERSAMPLENR,  390},
{549 * OVERSAMPLENR,  400},
{616 * OVERSAMPLENR,  500},
{682 * OVERSAMPLENR,  600},
{741 * OVERSAMPLENR,  700},
{801 * OVERSAMPLENR,  800},
{856 * OVERSAMPLENR,  900},
{910 * OVERSAMPLENR, 1000},
{960 * OVERSAMPLENR, 1100},
};
#endif

接着我们把源码中100与200,300度的ADC值323,402,475进行换算。 在Prusa的主控中,这3个值对应的电压为1.577V,1.963V,2.139V。

温度PT100模组理论输出电压Prusa源码对应电压
30 1.30
1001.52V1.577V
2001.92V1.963V
3002.29V2.139V

通过对比发现,设计温度与Prusa源码中的温度是很接近的,说明传感器型号正确。

我们在Configuration_prusa.h文件中34行,取消这个代码注释,重新编译源码,即可支持PT100。

#define E3D_PT100_EXTRUDER_WITH_AMP

编译出来的XXX.ino.hex就是所需要的固件。

千万不要使用编译出来的XXX.ino.with_bootloader.hex固件
这个固件会损毁bootloader造成无法通过USB口烧录固件问题,切记!!!

ocrobot/3d_print/pt100_to_analog.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1