Метод настройки термодатчиков
На этой странице собраны распространенные способы настройки датчиков температуры в 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 хост-системы |
Наиболее распространенная структура конфигурации хотэнда выглядит следующим образом:
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: <sensor_type>
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300
Наиболее распространенная структура конфигурации нагревательного стола выглядит следующим образом:
[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. Такие датчики обычно подключаются к стандартным портам термисторов на плате или инструментальной плате.
Пример для хотэнда
[extruder]
heater_pin: <hotend_heater_pin>
sensor_type: Generic 3950
sensor_pin: <hotend_sensor_pin>
min_temp: 0
max_temp: 300
Пример для нагревательного стола
[heater_bed]
heater_pin: <bed_heater_pin>
sensor_type: Generic 3950
sensor_pin: <bed_sensor_pin>
min_temp: 0
max_temp: 120
Пример с портами C8P
Ниже показаны только типичные варианты портов для C8P. При фактическом использовании заполняйте значения в соответствии с вашим подключением порта термистора и порта нагревателя.
[extruder]
heater_pin: PD12
sensor_type: Generic 3950
sensor_pin: PC2
min_temp: 0
max_temp: 300
[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 обязательно должно быть изменено в соответствии с фактическим резистором вашей платы:
[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).
| Датчик | Обычное значение | Пример опорного резистора | Описание |
|---|---|---|---|
| PT100 | rtd_nominal_r: 100 | rtd_reference_r: 430 | Номинальное сопротивление датчика 100 Ом |
| PT1000 | rtd_nominal_r: 1000 | rtd_reference_r: 4300 | Номинальное сопротивление датчика 1000 Ом |
PT100, PT1000 и термопара типа K — это разные датчики. MAX31865 используется только для RTD-датчиков на платиновой основе, таких как PT100/PT1000, и не используется для термопары типа K.
Пример с PT100
[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
[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 можно использовать только с 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:
[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
[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 не поддерживает параметр
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
Температура платы
[temperature_sensor MCU]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100
Температура хост-компьютера
[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°C | B-значение 4100 | Силиконовые нагревательные маты, термисторы в комплекте со столом |
Loading... | 500K @ 25°C | Трёхточечный метод | Высокотемпературный хотэнд (измерение до 450°C), необходимо убедиться в термостойкости всего хотэнда |
Loading... | 100K @ 25°C | Трёхточечный метод | Хотэнд / стол, часто встречаются как сменные SMD NTC |
Loading... | 100K @ 25°C | B-значение 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]:
[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:
[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:
[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
[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. Перед использованием убедитесь, что хотэнд, нагревательный элемент, сопло и материал поддерживают соответствующую температуру.
# 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
- Номинальное сопротивление 200K обеспечивает более высокое сопротивление в высокотемпературной области, что даёт лучшую разрешающую способность АЦП выше 250°C по сравнению со 100K термисторами.
- Подходит для высокотемпературных хотэндов уровня 300°C, например, для печати такими высокотемпературными материалами, как PEI, PC, PA и т.д.
- Достаточно стандартной подтяжки 4.7 кОм, менять подтягивающий резистор не требуется.
# 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 термистора при 300°C составляет всего около 63 Ω, что значительно отличается от подтяжки 4.7 кОм, поэтому разрешающая способность АЦП в высокотемпературной области низкая. Если требуется длительная печать выше 300°C, рекомендуется отдать предпочтение термисторам на 200K (204GT-2) или 500K (SliceEngineering 450).
# 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.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 выполните проверку в следующем порядке:
- Проверьте, показывает ли температура на фронтенде значение, близкое к комнатной.
- Если отображается
ADC out of range, экстремально высокая, экстремально низкая или отрицательная температура, сначала прекратите нагрев, обесточьте систему и проверьте разъемы, провода и тип датчика. - Убедитесь, что
sensor_pinне занят другими функциями. - Убедитесь, что
sensor_type,pullup_resistor,rtd_nominal_r,rtd_reference_rсоответствуют фактическому оборудованию. - После замены датчика хотэнда или стола выполните повторную PID-калибровку и сохраните результат.
Общие ошибки температуры и нагрева см.: Ошибки температуры, нагрева и экструзии.