用户工具

站点工具


ocrobot:3d_print:pt100_to_analog

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
ocrobot:3d_print:pt100_to_analog [2022/05/18 14:17] 弘毅ocrobot:3d_print:pt100_to_analog [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 ====== 两线PT100转0-5V ====== ====== 两线PT100转0-5V ======
 +
 该模组为E3D PT100 Amplifier Board兼容,使用E3D PT100改造的教程都可以使用该模组。 该模组为E3D PT100 Amplifier Board兼容,使用E3D PT100改造的教程都可以使用该模组。
 +===== 产品图片 =====
 +{{:ocrobot:3d_print:pasted:pt100-5v-435.png?nolink|}}
  
-PT100模组读取PT100传感器并在信号引脚上输出 0-5V 的电压。该模组的设计具有与 Ultimaker2 电子设备相同的增益和信号输出。这意味着它与 Marlin 固件中已经存在相同温度表兼容+PT100模组读取PT100传感器并在信号引脚上输出 0-5V 的电压。该模组的设计具有与 Ultimaker2 电子设备相同的增益和信号输出。这意味着它在 Marlin 固件中已经有兼容的温度表。
  
 PT100 的最高额定温度为 500°C。 PT100 的最高额定温度为 500°C。
行 13: 行 16:
  
 {{:ocrobot:3d_print:pasted:2022-05-18_22-06-11.jpg|}} {{:ocrobot:3d_print:pasted:2022-05-18_22-06-11.jpg|}}
 +
 +您现在需要告诉 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
 +
 +{{:ocrobot:3d_print:pasted:20220518-142037.png}}
 +
 +{{:ocrobot:3d_print:pasted:20220518-142044.png}}
 +
 +假设稳定的 5V 电源 - 电路板的输出将如下所示。
 +
 +^温度^输出电压^
 +|0|0.00|
 +|1|1.11|
 +|10|1.15|
 +|20|1.20|
 +|30|1.24|
 +|40|1.28|
 +|50|1.32|
 +|60|1.36|
 +|70|1.40|
 +|80|1.44|
 +|90|1.48|
 +|100|1.52|
 +|110|1.56|
 +|120|1.61|
 +|130|1.65|
 +|140|1.68|
 +|150|1.72|
 +|160|1.76|
 +|170|1.80|
 +|180|1.84|
 +|190|1.88|
 +|200|1.92|
 +|210|1.96|
 +|220|2.00|
 +|230|2.04|
 +|240|2.07|
 +|250|2.11|
 +|260|2.15|
 +|270|2.18|
 +|280|2.22|
 +|290|2.26|
 +|300|2.29|
 +|310|2.33|
 +|320|2.37|
 +|330|2.41|
 +|340|2.44|
 +|350|2.48|
 +|360|2.51|
 +|370|2.55|
 +|380|2.58|
 +|390|2.62|
 +|400|2.66|
 +|500|3.00|
 +|600|3.33|
 +|700|3.63|
 +|800|3.93|
 +|900|4.21|
 +|1000|4.48|
 +|1100|4.73|
 +===== Prusa MK3S PT100改机 =====
 +通过查看Prusa MK3S的源码thermistortables.h文件,在其中1130行找到如下代码,在Prusa的源码中已经默认支持E3D的PT100带放大器输出的版本。
 +<code>
 +#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
 +</code>
 +接着我们把源码中100与200,300度的ADC值323,402,475进行换算。
 +在Prusa的主控中,这3个值对应的电压为1.577V,1.963V,2.139V。
 +^温度^PT100模组理论输出电压^Prusa源码对应电压^
 +|30| |1.30|
 +|100|1.52V|1.577V|
 +|200|1.92V|1.963V|
 +|300|2.29V|2.139V|
 +通过对比发现,设计温度与Prusa源码中的温度是很接近的,说明传感器型号正确。
 +
 +我们在Configuration_prusa.h文件中34行,取消这个代码注释,重新编译源码,即可支持PT100。
 +<code>
 +#define E3D_PT100_EXTRUDER_WITH_AMP
 +</code>
 +
 +编译出来的XXX.ino.hex就是所需要的固件。
 +<WRAP center round alert 100%>
 +千万不要使用编译出来的XXX.ino.with_bootloader.hex固件 \\
 +这个固件会损毁bootloader造成无法通过USB口烧录固件问题,切记!!!
 +</WRAP>
 +
ocrobot/3d_print/pt100_to_analog.1652883449.txt · 最后更改: 2023/06/07 04:09 (外部编辑)

Valid HTML5 Valid CSS Driven by DokuWiki