Датчик температуры

Материал из Ender 3 Wiki
Версия от 16:31, 3 июня 2024; Айболит (обсуждение | вклад) (Всё про подключение металлического терморезистора)
Перейти к навигации Перейти к поиску

Внимание!

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


В стоке кажется на любом принтере установлен NTC полупроводниковый терморезистор, он же термистор. Но его возможно заменить на терморезистор с измерительным элементом из металла" (обычно платина), которая в разы точнее. Так же ещё существует термопара. Т.е. два сваренных между собой провода из разных металлов. Рассмотрим все виды измерительных элементов подробнее в контексте использования в принтере.

VwL1v7aJVcM.jpg

NTC полупроводниковый терморезистор

У него НЕлинейная зависимость сопротивления от температуры, "N" в аббревиатуре означает что с нагревом сопротивление термистора уменьшается, и имеет вид вот такой кривой.

123JVcM.jpg

Эта кривая описывается "уравнением Стейнхарта-Харта". И коэффициенты этого уравнения ИНДИВИДУАЛЬНЫ для каждого экземпляра термистора. А глядя на эту кривую мы можем понять, что чем выше температура- тем больше погрешность.

Коэффициенты для уравнения Стейнхарта - Харта изготовители NTC термисторов указывают в своей документации, но они у разных изготовителей РАЗНЫЕ. И указываются они не для конкретного данного экземпляра NТС термистора, а только для его типа.

Ну а температура, в случае Эндера, измеряется "по китайски". Т.е. к источнику питания подключен резистор, к нему термистор, а другой конец термистора на землю. Напряжение в точке их соединения зависит от температуры. НО!!! Оно также зависит и от ФАКТИЧЕСКОГО номинала этого самого резистора, и от напряжения питания.

Плюс еще добавляет погрешности индивидуальный разброс коэффициентов Стейнхарта - Харта для конкретного экземпляра термистора.

От всего этого и средние попугаи по больнице, когда у одного на 280 АБС спекается, а у другого на 300 не спекается.

Кстати, именно поэтому просят указать ТИП термистора при настройке Клипера/Марлина.

Форм-факторы термисторов.

  • Может быть в гильзовом исполнении, в виде капли и латунный "винт м3".

Гильзовые лучше держатся в нагревательном блоке, и такой датчик сложнее раздавать.

Капли самые дешёвые. Любят умирать от физического воздействия. А ещё они часто выпадают. И в идеале требуют термопроводящий клей.

"Болт". По опыту- у таких термисторов часто отваливается провод. Он у них мягкий, при этом по прежнему одножильный. Поэтому через пару закручиваний он уже разваливается.


Металлический терморезистор

То бишь резистор с измерительным элементом из металла, например Pt100 или Pt1000. "Pt" - означает "платина", т.е. обычно это напыленная на керамику тонкая пленка из платины. "1000" (или "100") - это его сопротивление в Омах, при нуле градусов по Цельсию (при нагреве его сопротивление УВЕЛИЧИВАЕТСЯ, в отличии от NTC термистора).

Плюсы:

  • Зависимость сопротивления от температуры практически линейная.

Минусы:

  • Изменение сопротивления достаточно небольшое по сравнению с полупроводниковым NTC термистором.
  • Для корректного измерения нужно учесть сопротивление подводящих проводов, переходное сопротивление контактов и т.д. Из-за причины выше. Для этого, "по хорошему", используют так называемую четырех проводную схему Кельвина.

В нашем "принтерном" случае самый оптимальный вариант использовать готовую плату преобразователя в цифровое значение на специализированном чипе (например max31865). Можно подключить Pt1000 "по китайски", как NTC-термистор, и оно даже будет работать, но толку от такого мало.



Термопара

Это контакт (обычно сварка) из двух проводов из разных металлов или сплавов

Ими часто комплектуются мультиметры.

Приспособить её для измерения температуры в принтере в принципе можно, но с кучей геммороя.

Дело тут в том, что, во первых, термопара на то она "пара", что ВСЕГДА это фактически ДВЕ термопары, и измерение происходит по факту как РАЗНОСТЬ температур этих пар.

Поэтому для корректного измерения используют так называемую "схему компенсации температуры холодного спая".

Ну и в промышленности (не наш случай) используют для подключения термопар так называемый "компенсационный провод" состоящий обычно из тех же сплавов что и термопара.

К тому же паразитные термопары могут возникнуть где угодно - на разъемах, на пайках проводов из разных металлов.

Все "это" еще и усугубляется тем, что напряжение вырабатываемое термопарой - маленькое (милливольты).

Термопары почти всегда обозначают буквой латинского алфавита (иногда буква+цифра), в зависимости от того из каких сплавов(металлов) сделана пара.

Разное

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

Хотя для каких либо других целей например датчик DS18B20 плюс какайнить ардуинка или микроконтроллер дают замечательный результат, который "искропки" имеет сразу точность в десятые доли градуса.




Всё про подключение металлического терморезистора

Внимание! Всё, что написано дальше, вы делаете на свой страх и риск. Вся ответственность лежит на вас! Это не призыв к действию и всё такое.

Итак, к практике. Что нам нужно?

Сам терморезистор. Берём ПТ100. НЕ ПТ1000! В данном случае он нам не подходит. Берём с 4 контактами, он самый точный. Длина кабеля любая. Но всё, что более 1 метра- достаточно.

Усилитель. Вариантов несколько. Подходит либо модуль датчика температуры GY-MAX31865, либо BIGTREETECH BTT MAX31865

Установка и настройка BTT MAX31865 https://3drob.ru/stati/pro_3d_pechat/elektronika_3d_printera/ustanovka_i_nastroyka_modulya_btt_max31865

А теперь разберём более дешёвый навесной усилитель, который ещё и не занимает постель драйвера.

Ставим перемычку между цифрами 2 и 4 т.к. у нас терморезистор на 4 провода. Остальные перемычки для другого кол-ва проводов, о них мы писать не будем.

Перемычка.jpg


На всякий случай прозваниваем провода. Ищем пары с сопротивлением примерно 100 Ом. Одну пару вставляем в RTD+ RTD-, вторую пару в F+ F- (Force). Хотя + и -, обычно, обозначены разными цветами, но лучше проверить. Как пониммаете, разницы между двумя синими и двумя красными проводами нет.

Подключение проводов.jpg


Снизу контакты подписаны.

Обозначения.jpg

Теперь задача более сложная.

Нам надо использовать аппаратный или «программный» SPI . С другой стороны усилителя мы видим вот такие выходы.

Они подключаются по SPI. Он может быть либо на плате принтера, либо на одноплатнике, либо его можно назначить. Подробно тут на странице в Клиппер-вики https://klipper.wiki/ru/home/initial/peripheral#spi_mcu

Если хочется подключить всё к плате, у той должны быть либо лишние пины, либо вообще специальные пины SPI. Выгрузи логи Клиппера, открой их блокнотом и найди "bus_pins_spi". Там будут указаны контакты SPI.

Так же можешь найти схему своей платы в интернете и найти их на ней. Подключаем всё на примере платы Октопус 1.0(в твоём случае это может быть другая плата и там будет другое обозначение пинов).

SDIO.jpg

VIN Вход питания 3,3-5,0v. Можно взять от БП (или понижайки), которые питают Пишку, либо, если на плате принтера есть SPI, берём 5в прям оттуда.

GND Ground. Земля. С того же БП, преобразователя или SPI платы.

CS Chip Select pin. Вход выбора ведомого (MAX31865). На Октопусе это PA15. Это и есть вывод с "датчика".

SDI Serial Data In Вход данных от контроллера к MAX31865 Microcontroller Out Sensor In (MOSI) (На Октопус 1.0 это PB5)

SDO Serial Data Out Выход данных от MAX31865 к ведущему контроллеру/Microcontroller In Sensor Out pin, (MISO) (PB4)

CLK Serial Clock Вход тактовой частоты SPI. Он же "SCK"

Так же там есть выходы...

3V3 ВЫХОД 3.3 (не более 100мА)

DRDY Индикатор готовности данных.

...которые, в нашем случае, не надо никуда подключать.

Для справки:

Имена портов интерфейса SPI могут различаться в зависимости от производителя аппаратных средств, при этом возможны такие варианты:

MISO: SOMI, SDO (на устройстве), DO, DON, SO, MRSR.

MOSI: SIMO, SDI (на устройстве), DI, DIN, SI, MTST.

SCLK: SCK, CLK, SPC (SPI serial port clock).

CS: nCS, SS, CSB, CSN, NSS, nSS, STE, SYNC.


Закончили подключение, переходим к Конфигу.

На оф. сайте Клиппера, в разделе Configuration reference, находим MAXxxxxx temperature sensors. Но, основной конфиг, с которым уже всё должно работать, выглядит так:

sensor_pin: #Он может быть обозначен как CS. В данном случае на плате принтера есть SPI и мы просто вставляем значения со схемы платы в строчки _pin:

sensor_type: MAX31865 #Тип усилителя

spi_speed: 4000000 #Скорость SPI (в Гц), используемая при обмене данными с чипом. начение по умолчанию - 4000000.

spi_software_sclk_pin: #Ищем пин sclk на схеме своей платы

spi_software_mosi_pin: #Тоже самое, но mosi

spi_software_miso_pin: #Ищем miso

...всё. Проверяем работоспособность.