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

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

На этой странице собраны распространенные способы настройки датчиков температуры в 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.

Пример MAX6675​

Термопара типа K + MAX6675
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: MAX6675
sensor_pin: <max6675_cs_pin>
spi_bus: <spi_bus>
min_temp: 0
max_temp: 500
Примечания к MAX6675
  • MAX6675 не поддерживает параметр tc_type, он может считывать только термопары типа K.
  • sensor_pin — это вывод выбора микросхемы (CS) MAX6675, а не обычный аналоговый вход термистора.
  • Что касается выводов шины SPI (MOSI/MISO/SCK), обратитесь к руководству по вашей основной плате или инструментальной плате, чтобы найти соответствующий интерфейс SPI для подключения.
Конфигурация для высоких температур

Повышать 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 и т.д. в зависимости от реального применения. Имя не должно повторять уже существующие секции конфигурации.

Обычные и пользовательские термисторы​

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

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

sensor_typeНоминальное сопротивлениеСпособ определенияТипичное применение
Loading...
100K @ 25°CТрёхточечный методКонфигурация по умолчанию для хотэнда / стола плат FLY, обычные сценарии печати PLA/ABS и т.д.
Loading...
100K @ 25°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
Loading...
—SPI-микросхема преобразования термопарыТермопара типа K, максимум около 1024°C, требуется модуль MAX6675
Loading...
—SPI-микросхема преобразования термопарыТермопара типа K, максимум около 1024°C, требуется модуль MAX31855
Рекомендации по выбору
  • Заводская конфигурация плат 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...