Датчик температуры: различия между версиями
Айболит (обсуждение | вклад) |
Айболит (обсуждение | вклад) (→Всё про подключение PT100) |
||
(не показаны 43 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
− | В стоке кажется на любом принтере установлен '''NTC полупроводниковый терморезистор''', он же '''термистор'''. Но его возможно заменить на '''терморезистор с измерительным элементом из металла"''' (обычно платина), которая в разы точнее. Так же ещё существует '''термопара'''. Т.е. два сваренных между собой провода из разных металлов. Рассмотрим все | + | Внимание! |
+ | |||
+ | Неисправный датчик, может привести к пожару! Вылетевший во время печати термистор больше не ограничивает нагрев термоблока, если в прошивке не установлена защита, отключающая нагрев принтера, если термистор показывает неадекватную температуру. Поэтому при установке термистора в нагревательный блок, стоит внимательнее отнестись к монтажу. | ||
+ | |||
+ | [https://prosensors.ru/pt100-pt100-ntc Хорошая таблица сопротивлений термисторов]. | ||
+ | |||
+ | |||
+ | В стоке кажется на любом принтере установлен '''NTC полупроводниковый терморезистор''', он же '''термистор'''. Но его возможно заменить на '''терморезистор с измерительным элементом из металла"''' (обычно платина), которая в разы точнее. Так же ещё существует '''термопара'''. Т.е. два сваренных между собой провода из разных металлов. Рассмотрим все виды измерительных элементов подробнее в контексте использования в принтере. | ||
[[File:VwL1v7aJVcM.jpg|right|200px]] | [[File:VwL1v7aJVcM.jpg|right|200px]] | ||
Строка 11: | Строка 18: | ||
Эта кривая описывается "уравнением Стейнхарта-Харта". И коэффициенты этого уравнения ИНДИВИДУАЛЬНЫ для каждого экземпляра термистора. А глядя на эту кривую мы можем понять, что чем выше температура- тем больше погрешность. | Эта кривая описывается "уравнением Стейнхарта-Харта". И коэффициенты этого уравнения ИНДИВИДУАЛЬНЫ для каждого экземпляра термистора. А глядя на эту кривую мы можем понять, что чем выше температура- тем больше погрешность. | ||
− | Коэффициенты для уравнения Стейнхарта - Харта изготовители NTC термисторов указывают в своей документации, но они у разных изготовителей РАЗНЫЕ. И указываются они не для конкретного данного экземпляра NТС термистора, а типа. | + | Коэффициенты для уравнения Стейнхарта - Харта изготовители NTC термисторов указывают в своей документации, но они у разных изготовителей РАЗНЫЕ. И указываются они не для конкретного данного экземпляра NТС термистора, а только для его типа. |
− | + | Ну а температура, в случае Эндера, измеряется "по китайски". Т.е. к источнику питания подключен резистор, к нему термистор, а другой конец термистора на землю. Напряжение в точке их соединения зависит от температуры. НО!!! Оно также зависит и от ФАКТИЧЕСКОГО номинала этого самого резистора, и от напряжения питания. | |
− | Ну а температура в случае | ||
Плюс еще добавляет погрешности индивидуальный разброс коэффициентов Стейнхарта - Харта для конкретного экземпляра термистора. | Плюс еще добавляет погрешности индивидуальный разброс коэффициентов Стейнхарта - Харта для конкретного экземпляра термистора. | ||
Строка 36: | Строка 42: | ||
То бишь резистор с измерительным элементом из металла, например '''Pt100''' или '''Pt1000'''. | То бишь резистор с измерительным элементом из металла, например '''Pt100''' или '''Pt1000'''. | ||
+ | |||
'''"Pt"''' - означает "платина", т.е. обычно это напыленная на керамику тонкая пленка из платины. | '''"Pt"''' - означает "платина", т.е. обычно это напыленная на керамику тонкая пленка из платины. | ||
+ | |||
'''"1000"''' (или '''"100"''') - это его сопротивление в '''Омах''', при нуле градусов по Цельсию (при нагреве его сопротивление УВЕЛИЧИВАЕТСЯ, в отличии от NTC термистора). | '''"1000"''' (или '''"100"''') - это его сопротивление в '''Омах''', при нуле градусов по Цельсию (при нагреве его сопротивление УВЕЛИЧИВАЕТСЯ, в отличии от NTC термистора). | ||
+ | |||
+ | |||
+ | '''Pt1000'''- : | ||
+ | 000°C 1000 Om | ||
+ | 100°C 1385 Om | ||
+ | 200°C 1760 Om | ||
+ | 300°C 2120 Om | ||
+ | |||
+ | '''Pt100'''- : | ||
+ | 000°C 100 Om | ||
+ | 100°C 138.51 Om | ||
+ | 200°C 175.86 Om | ||
+ | 300°C 212.05 Om | ||
Плюсы: | Плюсы: | ||
Строка 43: | Строка 64: | ||
Минусы: | Минусы: | ||
− | * | + | *Единственный минус, и то только для PT100- для корректного измерения нужно учесть сопротивление подводящих проводов, переходное сопротивление контактов и т.д. Из-за причины выше. Для этого, "по хорошему", используют так называемую четырех проводную '''схему Кельвина'''. |
− | + | ||
+ | В нашем "принтерном" случае есть два пути: | ||
+ | |||
+ | '''1)Простой.''' Купить PT1000 термистор и просто воткнуть его в стандартные разъёмы. Он будет довольно точно показывать температуру. И работает он до 450 градусов. | ||
+ | |||
+ | '''2)Понтовый.''' Позволяет получить точность до десятых градуса. Придётся использовать готовую плату преобразователя в цифровое значение на специализированном чипе (например '''max31865''') И купить '''PT100'''. Можно подключить Pt100 "по китайски", как NTC-термистор, и оно даже будет работать, но толку от такого мало, скорее всего будет показывать погоду на Марсе при любом изменении температуры проводов. Поэтому чуть ниже привожу всё про подключение пт100 через 31865 по правилам. | ||
+ | |||
+ | =Термопара= | ||
+ | Это контакт (обычно сварка) из двух проводов из разных металлов или сплавов | ||
+ | |||
+ | Ими часто комплектуются мультиметры. | ||
+ | |||
+ | Приспособить её для измерения температуры в принтере в принципе можно, но с кучей геммороя. | ||
+ | |||
+ | Дело тут в том, что, во первых, термопара на то она "пара", что ВСЕГДА это фактически ДВЕ термопары, и измерение происходит по факту как РАЗНОСТЬ температур этих пар. | ||
+ | |||
+ | Поэтому для корректного измерения используют так называемую "схему компенсации температуры холодного спая". | ||
+ | |||
+ | Ну и в промышленности (не наш случай) используют для подключения термопар так называемый "компенсационный провод" состоящий обычно из тех же сплавов что и термопара. | ||
+ | |||
+ | К тому же паразитные термопары могут возникнуть где угодно - на разъемах, на пайках проводов из разных металлов. | ||
+ | |||
+ | Все "это" еще и усугубляется тем, что напряжение вырабатываемое термопарой - маленькое (милливольты). | ||
+ | |||
+ | Термопары почти всегда обозначают буквой латинского алфавита (иногда буква+цифра), в зависимости от того из каких сплавов(металлов) сделана пара. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | =Всё про подключение pt100= | ||
+ | |||
+ | Из минусов, что были замечены- при соприкосновении сопла (а в хотенде и стоит наш термистор) со столом, на котором нет диэлектрика (стоит не стекло или текстолит, а стальная пластина) принтер уходит в ошибку по термистору. Даже если стол в это время не нагревается. | ||
+ | |||
+ | |||
+ | '''Внимание! Всё, что написано дальше, вы делаете на свой страх и риск. Вся ответственность лежит на вас! Это не призыв к действию и всё такое.''' | ||
+ | |||
+ | |||
+ | Итак, к практике. Что нам нужно? | ||
+ | |||
+ | Сам терморезистор. Берём '''[https://aliexpress.ru/item/32868816875.html?spm=a2g2w.orderdetail.0.0.754d4aa6Tqg0Ry&sku_id=12000018389673404 ПТ100]'''. НЕ ПТ1000! В данном случае он нам не подходит. Берём с 4 контактами, он самый точный. Длина кабеля любая. Но всё, что более 1 метра- достаточно. | ||
+ | |||
+ | Усилитель. Вариантов несколько. Подходит либо '''[https://aliexpress.ru/item/1005006218684410.html?spm=a2g2w.detail.rcmdprod.5.25c01e572ZUCuG&mixer_rcmd_bucket_id=aerabtestalgoRecommendAbV25_controlRu1&pdp_trigger_item_id=0_1005004561372911&ru_algo_pv_id=a5ce53-ea9d81-2c99d1-320deb-1715493600&scenario=aerSimilarItemByContentRcmd&sku_id=12000036330743624&traffic_source=recommendation&type_rcmd=core модуль датчика температуры GY-MAX31865]''', либо '''[https://aliexpress.ru/item/1005002829897876.html?sku_id=12000022377349208 BIGTREETECH BTT MAX31865]''' | ||
+ | |||
+ | Установка и настройка BTT MAX31865 https://3drob.ru/stati/pro_3d_pechat/elektronika_3d_printera/ustanovka_i_nastroyka_modulya_btt_max31865 | ||
+ | |||
+ | А теперь разберём более дешёвый навесной усилитель, который ещё и не занимает постель драйвера. | ||
+ | |||
+ | Ставим перемычку между цифрами 2 и 4 т.к. у нас терморезистор на 4 провода. Остальные перемычки для другого кол-ва проводов, о них мы писать не будем. | ||
+ | |||
+ | [[File:Перемычка.jpg|400px]] | ||
+ | |||
+ | |||
+ | На всякий случай прозваниваем провода. Ищем пары с сопротивлением примерно 100 Ом. Одну пару вставляем в RTD+ RTD-, вторую пару в F+ F- (Force). Хотя + и -, обычно, обозначены разными цветами, но лучше проверить. Как пониммаете, разницы между двумя синими и двумя красными проводами нет. | ||
+ | |||
+ | [[File:Подключение проводов.jpg|400px]] | ||
+ | |||
+ | |||
+ | Снизу контакты подписаны. | ||
+ | |||
+ | [[File:Обозначения.jpg|400px]] | ||
+ | |||
+ | Теперь задача более сложная. | ||
+ | |||
+ | Нам надо использовать аппаратный или «программный» SPI | ||
+ | . | ||
+ | С другой стороны усилителя мы видим вот такие выходы. | ||
+ | |||
+ | Они подключаются по SPI. Он может быть либо на плате принтера, либо на одноплатнике, либо его можно назначить. Подробно тут на странице в '''Клиппер-вики''' https://klipper.wiki/ru/home/initial/peripheral#spi_mcu | ||
+ | |||
+ | Если хочется подключить всё к плате, у той должны быть либо лишние пины, либо вообще специальные пины SPI. Выгрузи логи Клиппера, открой их блокнотом и найди "bus_pins_spi". Там будут указаны контакты SPI. | ||
+ | |||
+ | Так же можешь найти схему своей платы в интернете и найти их на ней. Подключаем всё на примере платы Октопус 1.0(в твоём случае это может быть другая плата и там будет другое обозначение пинов). | ||
+ | |||
+ | [[File:SDIO.jpg|400px]] | ||
+ | |||
+ | '''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''' | ||
+ | ...всё. Проверяем работоспособность. | ||
− | + | =Разное= | |
+ | Также есть еще разные полупроводниковые датчики температуры, как с аналоговым, так и с цифровым выходом, но они на рабочих температурах стола/хотэнда не выживут. | ||
− | + | Хотя для каких либо других целей например датчик DS18B20 + Ардуинка или микроконтроллер дают замечательный результат, который "искропки" имеет сразу точность в десятые доли градуса. |
Текущая версия на 10:46, 30 июля 2024
Внимание!
Неисправный датчик, может привести к пожару! Вылетевший во время печати термистор больше не ограничивает нагрев термоблока, если в прошивке не установлена защита, отключающая нагрев принтера, если термистор показывает неадекватную температуру. Поэтому при установке термистора в нагревательный блок, стоит внимательнее отнестись к монтажу.
Хорошая таблица сопротивлений термисторов.
В стоке кажется на любом принтере установлен NTC полупроводниковый терморезистор, он же термистор. Но его возможно заменить на терморезистор с измерительным элементом из металла" (обычно платина), которая в разы точнее. Так же ещё существует термопара. Т.е. два сваренных между собой провода из разных металлов. Рассмотрим все виды измерительных элементов подробнее в контексте использования в принтере.
Содержание
NTC полупроводниковый терморезистор
У него НЕлинейная зависимость сопротивления от температуры, "N" в аббревиатуре означает что с нагревом сопротивление термистора уменьшается, и имеет вид вот такой кривой.
Эта кривая описывается "уравнением Стейнхарта-Харта". И коэффициенты этого уравнения ИНДИВИДУАЛЬНЫ для каждого экземпляра термистора. А глядя на эту кривую мы можем понять, что чем выше температура- тем больше погрешность.
Коэффициенты для уравнения Стейнхарта - Харта изготовители NTC термисторов указывают в своей документации, но они у разных изготовителей РАЗНЫЕ. И указываются они не для конкретного данного экземпляра NТС термистора, а только для его типа.
Ну а температура, в случае Эндера, измеряется "по китайски". Т.е. к источнику питания подключен резистор, к нему термистор, а другой конец термистора на землю. Напряжение в точке их соединения зависит от температуры. НО!!! Оно также зависит и от ФАКТИЧЕСКОГО номинала этого самого резистора, и от напряжения питания.
Плюс еще добавляет погрешности индивидуальный разброс коэффициентов Стейнхарта - Харта для конкретного экземпляра термистора.
От всего этого и средние попугаи по больнице, когда у одного на 280 АБС спекается, а у другого на 300 не спекается.
Кстати, именно поэтому просят указать ТИП термистора при настройке Клипера/Марлина.
Форм-факторы термисторов.
- Может быть в гильзовом исполнении, в виде капли и латунный "винт м3".
Гильзовые лучше держатся в нагревательном блоке, и такой датчик сложнее раздавать.
Капли самые дешёвые. Любят умирать от физического воздействия. А ещё они часто выпадают. И в идеале требуют термопроводящий клей.
"Болт". По опыту- у таких термисторов часто отваливается провод. Он у них мягкий, при этом по прежнему одножильный. Поэтому через пару закручиваний он уже разваливается.
Металлический терморезистор
То бишь резистор с измерительным элементом из металла, например Pt100 или Pt1000.
"Pt" - означает "платина", т.е. обычно это напыленная на керамику тонкая пленка из платины.
"1000" (или "100") - это его сопротивление в Омах, при нуле градусов по Цельсию (при нагреве его сопротивление УВЕЛИЧИВАЕТСЯ, в отличии от NTC термистора).
Pt1000- :
000°C 1000 Om 100°C 1385 Om 200°C 1760 Om 300°C 2120 Om
Pt100- :
000°C 100 Om 100°C 138.51 Om 200°C 175.86 Om 300°C 212.05 Om
Плюсы:
- Зависимость сопротивления от температуры практически линейная.
Минусы:
- Единственный минус, и то только для PT100- для корректного измерения нужно учесть сопротивление подводящих проводов, переходное сопротивление контактов и т.д. Из-за причины выше. Для этого, "по хорошему", используют так называемую четырех проводную схему Кельвина.
В нашем "принтерном" случае есть два пути:
1)Простой. Купить PT1000 термистор и просто воткнуть его в стандартные разъёмы. Он будет довольно точно показывать температуру. И работает он до 450 градусов.
2)Понтовый. Позволяет получить точность до десятых градуса. Придётся использовать готовую плату преобразователя в цифровое значение на специализированном чипе (например max31865) И купить PT100. Можно подключить Pt100 "по китайски", как NTC-термистор, и оно даже будет работать, но толку от такого мало, скорее всего будет показывать погоду на Марсе при любом изменении температуры проводов. Поэтому чуть ниже привожу всё про подключение пт100 через 31865 по правилам.
Термопара
Это контакт (обычно сварка) из двух проводов из разных металлов или сплавов
Ими часто комплектуются мультиметры.
Приспособить её для измерения температуры в принтере в принципе можно, но с кучей геммороя.
Дело тут в том, что, во первых, термопара на то она "пара", что ВСЕГДА это фактически ДВЕ термопары, и измерение происходит по факту как РАЗНОСТЬ температур этих пар.
Поэтому для корректного измерения используют так называемую "схему компенсации температуры холодного спая".
Ну и в промышленности (не наш случай) используют для подключения термопар так называемый "компенсационный провод" состоящий обычно из тех же сплавов что и термопара.
К тому же паразитные термопары могут возникнуть где угодно - на разъемах, на пайках проводов из разных металлов.
Все "это" еще и усугубляется тем, что напряжение вырабатываемое термопарой - маленькое (милливольты).
Термопары почти всегда обозначают буквой латинского алфавита (иногда буква+цифра), в зависимости от того из каких сплавов(металлов) сделана пара.
Всё про подключение pt100
Из минусов, что были замечены- при соприкосновении сопла (а в хотенде и стоит наш термистор) со столом, на котором нет диэлектрика (стоит не стекло или текстолит, а стальная пластина) принтер уходит в ошибку по термистору. Даже если стол в это время не нагревается.
Внимание! Всё, что написано дальше, вы делаете на свой страх и риск. Вся ответственность лежит на вас! Это не призыв к действию и всё такое.
Итак, к практике. Что нам нужно?
Сам терморезистор. Берём ПТ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 провода. Остальные перемычки для другого кол-ва проводов, о них мы писать не будем.
На всякий случай прозваниваем провода. Ищем пары с сопротивлением примерно 100 Ом. Одну пару вставляем в RTD+ RTD-, вторую пару в F+ F- (Force). Хотя + и -, обычно, обозначены разными цветами, но лучше проверить. Как пониммаете, разницы между двумя синими и двумя красными проводами нет.
Снизу контакты подписаны.
Теперь задача более сложная.
Нам надо использовать аппаратный или «программный» SPI . С другой стороны усилителя мы видим вот такие выходы.
Они подключаются по SPI. Он может быть либо на плате принтера, либо на одноплатнике, либо его можно назначить. Подробно тут на странице в Клиппер-вики https://klipper.wiki/ru/home/initial/peripheral#spi_mcu
Если хочется подключить всё к плате, у той должны быть либо лишние пины, либо вообще специальные пины SPI. Выгрузи логи Клиппера, открой их блокнотом и найди "bus_pins_spi". Там будут указаны контакты SPI.
Так же можешь найти схему своей платы в интернете и найти их на ней. Подключаем всё на примере платы Октопус 1.0(в твоём случае это может быть другая плата и там будет другое обозначение пинов).
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
...всё. Проверяем работоспособность.
Разное
Также есть еще разные полупроводниковые датчики температуры, как с аналоговым, так и с цифровым выходом, но они на рабочих температурах стола/хотэнда не выживут.
Хотя для каких либо других целей например датчик DS18B20 + Ардуинка или микроконтроллер дают замечательный результат, который "искропки" имеет сразу точность в десятые доли градуса.