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改造的教程都可以使用该模组。 | ||
+ | ===== 产品图片 ===== | ||
+ | {{: | ||
- | PT100模组读取PT100传感器并在信号引脚上输出 0-5V 的电压。该模组的设计具有与 Ultimaker2 电子设备相同的增益和信号输出。这意味着它与 Marlin 固件中已经存在的相同温度表兼容。 | + | PT100模组读取PT100传感器并在信号引脚上输出 0-5V 的电压。该模组的设计具有与 Ultimaker2 电子设备相同的增益和信号输出。这意味着它在 Marlin 固件中已经有兼容的温度表。 |
PT100 的最高额定温度为 500°C。 | PT100 的最高额定温度为 500°C。 | ||
行 13: | 行 16: | ||
{{: | {{: | ||
+ | |||
+ | 您现在需要告诉 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 电源 - 电路板的输出将如下所示。 | ||
+ | |||
+ | ^温度^输出电压^ | ||
+ | |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带放大器输出的版本。 | ||
+ | < | ||
+ | #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' | ||
+ | // and the table provided by E3D at http:// | ||
+ | { 0 * OVERSAMPLENR, | ||
+ | {241 * OVERSAMPLENR, | ||
+ | {249 * OVERSAMPLENR, | ||
+ | {259 * OVERSAMPLENR, | ||
+ | {267 * OVERSAMPLENR, | ||
+ | {275 * OVERSAMPLENR, | ||
+ | {283 * OVERSAMPLENR, | ||
+ | {291 * OVERSAMPLENR, | ||
+ | {299 * OVERSAMPLENR, | ||
+ | {307 * OVERSAMPLENR, | ||
+ | {315 * OVERSAMPLENR, | ||
+ | {323 * OVERSAMPLENR, | ||
+ | {331 * OVERSAMPLENR, | ||
+ | {340 * OVERSAMPLENR, | ||
+ | {348 * OVERSAMPLENR, | ||
+ | {354 * OVERSAMPLENR, | ||
+ | {362 * OVERSAMPLENR, | ||
+ | {370 * OVERSAMPLENR, | ||
+ | {378 * OVERSAMPLENR, | ||
+ | {386 * OVERSAMPLENR, | ||
+ | {394 * OVERSAMPLENR, | ||
+ | {402 * OVERSAMPLENR, | ||
+ | {410 * OVERSAMPLENR, | ||
+ | {418 * OVERSAMPLENR, | ||
+ | {426 * OVERSAMPLENR, | ||
+ | {432 * OVERSAMPLENR, | ||
+ | {440 * OVERSAMPLENR, | ||
+ | {448 * OVERSAMPLENR, | ||
+ | {454 * OVERSAMPLENR, | ||
+ | {462 * OVERSAMPLENR, | ||
+ | {469 * OVERSAMPLENR, | ||
+ | {475 * OVERSAMPLENR, | ||
+ | {483 * OVERSAMPLENR, | ||
+ | {491 * OVERSAMPLENR, | ||
+ | {499 * OVERSAMPLENR, | ||
+ | {505 * OVERSAMPLENR, | ||
+ | {513 * OVERSAMPLENR, | ||
+ | {519 * OVERSAMPLENR, | ||
+ | {527 * OVERSAMPLENR, | ||
+ | {533 * OVERSAMPLENR, | ||
+ | {541 * OVERSAMPLENR, | ||
+ | {549 * OVERSAMPLENR, | ||
+ | {616 * OVERSAMPLENR, | ||
+ | {682 * OVERSAMPLENR, | ||
+ | {741 * OVERSAMPLENR, | ||
+ | {801 * OVERSAMPLENR, | ||
+ | {856 * OVERSAMPLENR, | ||
+ | {910 * OVERSAMPLENR, | ||
+ | {960 * OVERSAMPLENR, | ||
+ | }; | ||
+ | #endif | ||
+ | </ | ||
+ | 接着我们把源码中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。 | ||
+ | < | ||
+ | #define E3D_PT100_EXTRUDER_WITH_AMP | ||
+ | </ | ||
+ | |||
+ | 编译出来的XXX.ino.hex就是所需要的固件。 | ||
+ | <WRAP center round alert 100%> | ||
+ | 千万不要使用编译出来的XXX.ino.with_bootloader.hex固件 \\ | ||
+ | 这个固件会损毁bootloader造成无法通过USB口烧录固件问题,切记!!! | ||
+ | </ | ||
+ |
ocrobot/3d_print/pt100_to_analog.1652883449.txt · 最后更改: 2023/06/07 04:09 (外部编辑)