Перейти к основному содержанию

Методы настройки термочувствительных датчиков

На этой странице собраны распространенные способы настройки датчиков температуры в Klipper, включая хотэнд, нагревательный стол, камеру, плату управления, хост-компьютер, прямое подключение PT1000, MAX31865 и термопару типа K. Все примеры с контактами, моделями датчиков, подтягивающими резисторами и температурными диапазонами необходимо изменять в соответствии с фактическим оборудованием.

Отключение питания

Перед проверкой или заменой терморезистора, модуля PT100/PT1000, термопары, нагревательного стержня, нагревательного стола, перемычек или клемм полностью выключите принтер и отключите его от источника питания, а также дождитесь остывания хотэнда и нагревательного стола. Не подключайте и не отключайте жгуты проводов, не прокладывайте провода и не прикасайтесь к клеммам при включенном питании.

Инструкция по использованию
  • sensor_type должен точно соответствовать фактическому датчику, нельзя просто копировать из примера конфигурации.
  • sensor_pin должен быть подключен к интерфейсу ADC / термочувствительному интерфейсу, поддерживающему выборку температуры. Нельзя указывать контакты вентилятора, нагревателя, концевика или обычные выходные контакты.
  • PT100/PT1000, термопары и обычные NTC-терморезисторы используют разные интерфейсы и методы настройки. Подключение к неправильному интерфейсу приведет к некорректным показаниям температуры или ошибке ADC out of range.
  • После изменения конфигурации датчика температуры или нагревателя следует заново проверить показания температуры и, при необходимости, выполнить PID-калибровку заново.

Базовая структура

Датчики температуры обычно присутствуют в следующих разделах конфигурации:

СценарийРаздел конфигурацииОбычное применение
Хотэнд[extruder]Считывание температуры хотэнда и управление его нагревом
Нагревательный стол[heater_bed]Считывание температуры стола и управление его нагревом
Камера / Дополнительная температура[temperature_sensor xxx]Только отображение температуры, без прямого управления нагревом
Пользовательский нагреватель[heater_generic xxx]Управление дополнительными нагревателями, такими как камера нагрева или сушильный бокс
Температура платы[temperature_sensor xxx] + temperature_mcuОтображение внутренней температуры MCU
Температура хост-компьютера[temperature_sensor xxx] + temperature_hostОтображение температуры CPU хост-компьютера

Наиболее распространенная структура конфигурации хотэнда выглядит следующим образом:

printer.cfg
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: <sensor_type>
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300

Наиболее распространенная структура конфигурации нагревательного стола выглядит следующим образом:

printer.cfg
[heater_bed]
heater_pin: <bed_heater_pin>
sensor_type: <sensor_type>
sensor_pin: <bed_sensor_pin>
min_temp: 0
max_temp: 120

Обычные NTC-терморезисторы

В обычных хотэндах и нагревательных столах часто используются NTC-терморезисторы 100K. Такие датчики обычно подключаются к обычным термочувствительным интерфейсам на плате управления или инструментальной плате.

Пример для хотэнда

printer.cfg
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: Generic 3950
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300

Пример для нагревательного стола

printer.cfg
[heater_bed]
heater_pin: <bed_heater_pin>
sensor_type: Generic 3950
sensor_pin: <bed_sensor_pin>
min_temp: 0
max_temp: 120

Пример для разъемов C8P

Ниже показан только пример типичной записи разъемов для C8P. При фактическом использовании заполняйте в соответствии с подключенным вами термочувствительным и нагревательным контактами.

Пример хотэнда для C8P
[extruder]
heater_pin: PD12
sensor_type: Generic 3950
sensor_pin: PC2
min_temp: 0
max_temp: 300
Пример нагревательного стола для C8P
[heater_bed]
heater_pin: PB0
sensor_type: Generic 3950
sensor_pin: PC5
min_temp: 0
max_temp: 120
Модель датчика

Распространенные sensor_type включают Generic 3950, PT1000 или другие встроенные модели Klipper. Ориентируйтесь на номинальную модель хотэнда, нагревательного стола или датчика. При неуверенности сначала просмотрите документацию на продукт или обратитесь в службу поддержки для подтверждения.

Прямое подключение PT1000

PT1000 можно подключать непосредственно к термочувствительному интерфейсу, поддерживающему PT1000. На некоторых платах FLY или инструментальных платах может потребоваться переключение подтягивающего резистора с помощью перемычки. Обычно для обычных NTC используется подтяжка 4.7K, а для PT1000 - подтяжка 1K.

Пример прямого подключения PT1000
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: PT1000
sensor_pin: <pt1000_sensor_pin>
pullup_resistor: 1000
min_temp: 0
max_temp: 350
Подтягивающий резистор
  • Если на плате управления или инструментальной плате уже установлена перемычка PT1000 на подтяжку 1K, в конфигурации следует указать pullup_resistor: 1000.
  • Если оборудование все еще использует подтяжку по умолчанию 4.7K, можно не писать pullup_resistor, Klipper по умолчанию будет использовать 4700.
  • Состояние перемычки и конфигурация должны совпадать, иначе температура будет明显偏高、偏低或触发 ADC out of range.

Настройка MAX31865

MAX31865 используется для считывания показаний платиновых термометров сопротивления (RTD), которые обычно делятся на PT100 и PT1000. Этот метод не использует обычные контакты ADC для термисторов, а использует SPI-связь и контакт выбора микросхемы (CS).

ДатчикТипичная записьПример опорного резистораОписание
PT100rtd_nominal_r: 100rtd_reference_r: 430Номинальное сопротивление датчика 100 Ом
PT1000rtd_nominal_r: 1000rtd_reference_r: 4300Номинальное сопротивление датчика 1000 Ом
Сначала определите тип

PT100, PT1000 и термопара типа K — это не один и тот же датчик. MAX31865 используется только для RTD-датчиков типа PT100/PT1000, но не для термопары типа K.

Пример для PT100

PT100 + MAX31865
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: MAX31865
sensor_pin: <max31865_cs_pin>
spi_bus: <spi_bus>
rtd_nominal_r: 100
rtd_reference_r: 430
rtd_num_of_wires: 2
min_temp: 0
max_temp: 350

Пример для PT1000

PT1000 + MAX31865
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: MAX31865
sensor_pin: <max31865_cs_pin>
spi_bus: <spi_bus>
rtd_nominal_r: 1000
rtd_reference_r: 4300
rtd_num_of_wires: 2
min_temp: 0
max_temp: 350
Примечания по MAX31865
  • MAX31865 можно использовать только в соответствии с поддерживаемым типом подключения PT100 / PT1000 на соответствующей плате. Не подключайте обычные NTC-терморезисторы к MAX31865.
  • sensor_pin — это контакт выбора микросхемы (CS) MAX31865, а не обычный термочувствительный контакт ADC.
  • rtd_num_of_wires следует указывать в соответствии с фактическим количеством проводов датчика, обычно 2, 3 или 4.
  • На платах с DIP-переключателями или перемычками необходимо настроить PT100/PT1000 и количество проводов в соответствии с документацией на изделие, иначе показания температуры будут некорректными.

Настройка термопары типа K

Термопара типа K требует использования соответствующего микросхемы-преобразователя термопары. Ее нельзя подключать напрямую к обычному термочувствительному интерфейсу или к интерфейсу PT100/PT1000 на MAX31865. Обычная конфигурация использует SPI:

Пример термопары типа K
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: MAX31856
sensor_pin: <thermocouple_cs_pin>
spi_bus: <spi_bus>
tc_type: K
min_temp: 0
max_temp: 500

Если используется другая микросхема-преобразователь термопары типа K, измените sensor_type на фактическую модель микросхемы, например MAX6675, MAX31855 или MAX31856, и настройте SPI в соответствии с описанием модуля. tc_type: K указывает, что текущий датчик является термопарой типа K.

Высокотемпературная конфигурация

Увеличивать max_temp можно только в том случае, если хотэнд, нагревательный стержень, терморезистор, сопло, крепежная конструкция хотэнда и провода поддерживают высокие температуры. Не устанавливайте max_temp на значение, значительно превышающее возможности оборудования, просто для устранения сообщений об ошибках.

Отдельное отображение температуры

Если требуется только отображать температуру без управления нагревателем, можно использовать [temperature_sensor xxx].

Температура камеры / окружающей среды

Пример температуры камеры
[temperature_sensor chamber]
sensor_type: Generic 3950
sensor_pin: <chamber_sensor_pin>
min_temp: 0
max_temp: 100

Температура платы управления

Пример температуры MCU
[temperature_sensor MCU]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100

Температура хост-компьютера

Пример температуры Host
[temperature_sensor Host]
sensor_type: temperature_host
min_temp: 0
max_temp: 100
Отображаемое имя

chamber в [temperature_sensor chamber] — это имя, отображаемое в интерфейсе. Его можно изменить на box, toolboard, host и т.д. в зависимости от фактического использования. Имя не должно совпадать с уже существующими разделами конфигурации.

Часто используемые терморезисторы и пользовательские терморезисторы

Встроенные sensor_type в Klipper

Следующие sensor_type уже встроены в Klipper, их можно использовать напрямую, без необходимости определять пользовательский [thermistor xxx]:

sensor_typeНоминальное сопротивлениеМетод определенияОбычное применение
Loading...
100K @ 25°CМетод трех точекКонфигурация по умолчанию для хотэнда/стола на платах FLY
Loading...
100K @ 20°CМетод трех точекВысокотемпературный хотэнд, хотэнды типа E3D
Loading...
100K @ 25°CМетод трех точекУниверсально для хотэнда/стола
Loading...
100K @ 25°CB-значение 4100Силиконовые нагревательные маты
Loading...
500K @ 25°CМетод трех точекВысокотемпературный хотэнд (450°C)
Loading...
100K @ 25°CМетод трех точекХотэнд / Нагревательный стол
Loading...
100K @ 25°CB-значение 3974Хотэнд / Нагревательный стол
Loading...
100K @ 25°CМетод трех точекХотэнд
Рекомендации по выбору
  • Заводская конфигурация плат FLY обычно использует Generic 3950. Перед заменой терморезистора сначала确认原始型号.
  • При использовании высокотемпературного хотэнда типа E3D или сопутствующего терморезистора常见为 ATC Semitec 104GT-2.
  • В случае неуверенности в модели сначала просмотрите документацию на продукт или свяжитесь со службой поддержки для подтверждения. Не меняйте sensor_type произвольно.

Пользовательский терморезистор

Если датчика нет во встроенном списке выше, можно определить пользовательскую кривую терморезистора с помощью [thermistor xxx].

Размещение

[thermistor xxx] должен быть записан выше раздела, который на него ссылается, то есть перед соответствующим [extruder], [heater_bed], [temperature_sensor xxx] или [heater_generic xxx].

Существует два распространенных способа записи пользовательского терморезистора:

Тип данныхРекомендуемый методОписание
Несколько точек температуры/сопротивленияМетод трех точекПредпочтительный, температурная кривая ближе к реальному датчику
Только номинальное сопротивление и B-значениеМетод B-значенияЗапись проще, но точность в области высоких температур может быть ниже, чем у метода трех точек

Пример метода трех точек

Ниже приведен пример записи пользовательского терморезистора методом трех точек с использованием параметров ATC Semitec 104GT-2. Сначала определяется [thermistor semitec_104gt2], затем используется в [extruder]:

Метод трех точек для ATC Semitec 104GT-2
[thermistor semitec_104gt2]
temperature1: 20
resistance1: 126800
temperature2: 150
resistance2: 1360
temperature3: 300
resistance3: 80.65

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: semitec_104gt2
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300

Ниже приведен пример с параметрами EPCOS 100K B57560G104F:

Метод трех точек для EPCOS 100K B57560G104F
[thermistor epcos_100k]
temperature1: 25
resistance1: 100000
temperature2: 150
resistance2: 1641.9
temperature3: 250
resistance3: 226.15

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: epcos_100k
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300
Выбор трех точек

Три точки должны по возможности охватывать обычный диапазон температур печати, например, комнатную температуру, среднюю температуру и температуру, близкую к максимальной часто используемой. Если в спецификации предоставлена таблица температур/сопротивлений, предпочтительно выбирать три точки из этой таблицы.

Метод B-значения

Если производитель предоставляет только номинальное сопротивление и B-значение, можно использовать метод temperature1, resistance1 и beta:

Метод B-значения 100K B3950
[thermistor ntc_100k_b3950]
temperature1: 25
resistance1: 100000
beta: 3950

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: ntc_100k_b3950
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300
Метод B-значения 100K B4500
[thermistor ntc_100k_b4500]
temperature1: 25
resistance1: 100000
beta: 4500

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: ntc_100k_b4500
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 350

Конфигурация высокотемпературного терморезистора

Следующие параметры высокотемпературных термисторов взяты из таблиц термисторов в исходном коде прошивки Marlin, проверенных по спецификациям производителя. Они подходят для высокотемпературных хотэндов, требующих измерения температуры выше 300°C. Перед использованием убедитесь, что хотэнд, нагревательный стержень, сопло и провода поддерживают соответствующую температуру.

ATC Semitec 204GT-2 (200K / 300°C)
# R25 = 200K, B25 = 4338, подтяжка 4.7K
# Источник: Marlin thermistor_2.h, проверено по спецификации Mouser
[thermistor semitec_204gt2]
temperature1: 25
resistance1: 200000
temperature2: 150
resistance2: 2520
temperature3: 300
resistance3: 142

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: semitec_204gt2
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300
Пояснение к 204GT-2
  • Номинальное сопротивление 200K обеспечивает более высокое сопротивление в области высоких температур, что дает лучшее разрешение АЦП при температурах выше 250°C по сравнению с 100K термисторами.
  • Подходит для высокотемпературных хотэндов класса 300°C, например, для печати такими материалами, как PEI, PC, PA.
  • Использует стандартную подтяжку 4.7 кОм, замена подтягивающего резистора не требуется.
Formbot / Vivedino 100K B3950 High Temp версия (350°C)
# R25 = 100K, B25/50 = 3950, подтяжка 4.7K
# Источник: Marlin thermistor_61.h, 100KR13950181203
[thermistor formbot_3950_350]
temperature1: 25
resistance1: 100000
temperature2: 150
resistance2: 509
temperature3: 300
resistance3: 63.5

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: formbot_3950_350
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 350
Ограничение точности 100K при высоких температурах

Сопротивление 100K термистора при 300°C составляет всего около 63 Ом, что представляет собой огромную разницу с подтяжкой 4.7 кОм, разрешение АЦП в области высоких температур низкое. Если требуется длительная печать при температурах выше 300°C, рекомендуется отдавать предпочтение термисторам 200K (204GT-2) или 500K (SliceEngineering 450).

Dyze Design 2.5M B4500 (500°C)
# R25 = 2.5M, B25 = 4500, требуется подтяжка с большим сопротивлением
# Источник: Параметры из комментариев Marlin thermistor_66.h
[thermistor dyze_500]
temperature1: 25
resistance1: 2500000
beta: 4500

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: dyze_500
sensor_pin: <hotend_sensor_pin>
pullup_resistor: 470000
min_temp: 0
max_temp: 500
Требования к подтяжке для термистора 2.5M
  • Номинальное сопротивление 2.5 МОм при комнатной температуре значительно превышает стандартную подтяжку 4.7 кОм. При использовании подтяжки по умолчанию АЦП в области низких температур будет практически насыщен, что сделает точное измерение температуры невозможным.
  • Необходимо использовать подтягивающий резистор 470 кОм или больше и установить pullup_resistor: 470000 в конфигурации.
  • Если плата управления или инструментальная плата не поддерживает замену подтягивающего резистора, не используйте этот термистор. Вместо этого используйте схему PT1000 + MAX31865 или термопару типа K.
  • При измерении температуры уровня 500°C также убедитесь, что нагревательный стержень, сопло, конструкция хотэнда и провода соответствуют требованиям термостойкости.
Выбор высокотемпературной схемы
Целевая температураРекомендуемая схемаОписание
≤ 300°C
Loading...
или
Loading...
Стандартная конфигурация
300°C ~ 350°C
Loading...
Требуется предварительно добавить соответствующий пользовательский [thermistor] с этой страницы
350°C ~ 450°C
Loading...
Встроено в Klipper, укажите sensor_type напрямую
450°C ~ 500°C
Loading...
или
Loading...
Требуется предварительно добавить соответствующий пользовательский [thermistor] с этой страницы или использовать термопару типа K
Выше 500°C
Loading...
NTC-термисторы не подходят

Общий шаблон метода трех точек

Если у вас есть спецификация, но нет готовых параметров, вы можете заполнить по следующему шаблону:

Шаблон метода трех точек
[thermistor my_custom_thermistor]
temperature1: 25
resistance1: <resistance_at_25c>
temperature2: 150
resistance2: <resistance_at_150c>
temperature3: 250
resistance3: <resistance_at_250c>

[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: my_custom_thermistor
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300
Ограничения высокотемпературных термисторов

max_temp можно устанавливать только в соответствии с фактической термостойкостью хотэнда, нагревательного стержня, терморезистора, сопла и проводов. Возможность конфигурации высокотемпературного NTC считывать более высокие температуры не означает, что весь комплект хотэнда может быть безопасно нагрет до этой температуры.

Проверка после внесения изменений

После сохранения конфигурации и перезапуска Klipper выполните проверку в следующем порядке:

  1. Проверьте, близка ли отображаемая температура к комнатной.
  2. Если отображается ADC out of range, экстремально высокая, экстремально низкая или отрицательная температура, сначала прекратите нагрев, отключите питание и проверьте разъемы, провода и тип датчика.
  3. Убедитесь, что sensor_pin не используется повторно другими функциями.
  4. Убедитесь, что sensor_type, pullup_resistor, rtd_nominal_r, rtd_reference_r соответствуют фактическому оборудованию.
  5. После замены датчика хотэнда или нагревательного стола выполните PID-калибровку заново и сохраните результат.

О распространенных ошибках температуры и нагрева см.: Ошибки температуры, нагрева и экструзии.

Loading...