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

Метод настройки термодатчиков

На этой странице собраны распространенные способы настройки датчиков температуры в 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. На разных платах подтягивающий (измерительный) резистор для порта термистора может отличаться и не обязательно равен 1K. Часто встречаются значения 4700, 2200, 1100, 1000 и т.д. Ориентируйтесь на документацию платы или на фактическое оборудование. На некоторых платах подтягивающий резистор можно переключать перемычками.

В приведенном ниже примере используется плата с подтяжкой 1K. Значение pullup_resistor обязательно должно быть изменено в соответствии с фактическим резистором вашей платы:

Пример прямого подключения PT1000 (плата с подтяжкой 1K)
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: PT1000
sensor_pin: <pt1000_sensor_pin>
pullup_resistor: 1000
min_temp: 0
max_temp: 350
Подтягивающий резистор
  • Значение pullup_resistor должно соответствовать фактическому подтягивающему резистору порта термистора на вашей плате. Часто встречаются 4700, 2200, 1100, 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, обычные сценарии печати PLA/ABS
Loading...
100K @ 20°CМетод трёх точекВысокотемпературные хотэнды, штатные термисторы для хотэндов типа E3D
Loading...
100K @ 25°CМетод трёх точекУниверсальные для хотэнда/стола, часто используются как замена стандартных NTC
Loading...
100K @ 25°CB-коэффициент 4100Силиконовые нагревательные маты, термисторы для стола
Loading...
500K @ 25°CМетод трёх точекВысокотемпературный хотэнд (измерение до 450°C), необходимо убедиться, что весь хотэнд рассчитан на соответствующую температуру
Loading...
100K @ 25°CМетод трёх точекХотэнд/стол, часто используется как замена SMD NTC
Loading...
100K @ 25°CB-коэффициент 3974Универсальные для хотэнда/стола
Loading...
100K @ 25°CМетод трёх точекХотэнд, термистор в малом корпусе
Loading...
1000 Ω @ 0°CПлатиновый терморезистор RTDВысокоточный хотэнд; pullup_resistor необходимо указывать по фактическому подтягивающему резистору платы (обычно 4700, 2200, 1100, 1000 и т.д.), см. раздел PT1000 直连 выше
Рекомендации по выбору
  • Платы 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:

100K B3950 метод B-коэффициента
[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
100K B4500 метод B-коэффициента
[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 высокотемпературная версия(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...