用户工具

站点工具


ocrobot:3d_print:pt100_to_analog

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
ocrobot:3d_print:pt100_to_analog [2022/05/18 14:48] 弘毅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。
行 22: 行 25:
 然后我们找到专门处理第一个温度传感器(0)的行。这是针对此特定情况的第 708 行,如下所示: 然后我们找到专门处理第一个温度传感器(0)的行。这是针对此特定情况的第 708 行,如下所示:
  
-#define TEMP_0_PIN 13 // 模拟编号+  #define TEMP_0_PIN 13 // 模拟编号
  
 我们可以看到,目前,marlin 将查看温度传感器的模拟引脚 13。我们已将新传感器连接到控制器板上的模拟引脚“A3”,因此我们将数字 13 更改为 3: 我们可以看到,目前,marlin 将查看温度传感器的模拟引脚 13。我们已将新传感器连接到控制器板上的模拟引脚“A3”,因此我们将数字 13 更改为 3:
  
-#define TEMP_0_PIN 3 // 模拟编号+  #define TEMP_0_PIN 3 // 模拟编号
  
 pin.h 就是这样,只要记住找到并使用正确的电路板部分。如果您同时使用双挤出机和 PT100,那么您显然也必须重新配置其他引脚。 pin.h 就是这样,只要记住找到并使用正确的电路板部分。如果您同时使用双挤出机和 PT100,那么您显然也必须重新配置其他引脚。
行 32: 行 35:
 现在我们需要告诉 marlin 我们连接的是什么类型的传感器。这是在固件的 configuration.h 文件中完成的。在您通常配置热敏电阻类型的文件的热设置区域中: 现在我们需要告诉 marlin 我们连接的是什么类型的传感器。这是在固件的 configuration.h 文件中完成的。在您通常配置热敏电阻类型的文件的热设置区域中:
  
-#define TEMP_SENSOR_0 5+  #define TEMP_SENSOR_0 5
  
 目前,就我而言,它设置为传感器类型 5,用于标准 E3D Semitec 热敏电阻。我们需要将其更改为传感器类型 20 的 PT100 设置: 目前,就我而言,它设置为传感器类型 5,用于标准 E3D Semitec 热敏电阻。我们需要将其更改为传感器类型 20 的 PT100 设置:
  
-#define TEMP_SENSOR_0 20+  #define TEMP_SENSOR_0 20
  
 这就是固件的全部内容。您现在应该能够编译和上传它,并且所有东西都连接到板上,您现在应该可以看到新 PT100 传感器的温度读数正确! 这就是固件的全部内容。您现在应该能够编译和上传它,并且所有东西都连接到板上,您现在应该可以看到新 PT100 传感器的温度读数正确!
行 100: 行 103:
 |390|2.62| |390|2.62|
 |400|2.66| |400|2.66|
-500 3.00 +|500|3.00| 
-600 3.33 +|600|3.33| 
-700 3.63 +|700|3.63| 
-800 3.93 +|800|3.93| 
-900 4.21 +|900|4.21| 
-1000 4.48 +|1000|4.48| 
-1100 4.73+|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.1652885285.txt · 最后更改: 2023/06/07 04:09 (外部编辑)

Valid HTML5 Valid CSS Driven by DokuWiki