Термистор перестает считывать температуру через несколько секунд. (Marlin 1.1.8, Tronxy X5s stock Melzi board)

Думаю, будет лучше, если я объясню, в чем заключается моя проблема, прежде чем объясню, как я сюда попал. У меня есть Tronxy x5s со стоковой платой, которую я ремонтирую ради ремонта, хотя я знаю, что, вероятно, мне просто нужно купить новую плату. Таков принцип этой штуки.

  • Термистор экструдера точно считывает показания в течение нескольких секунд, а затем дает отрицательное значение, как если бы он был отключен.
  • Я знаю, что это то же самое чтение отключенного термистора, потому что когда вы отключаете экструдер или термистор слоя от известного хорошего порта, он дает то же самое отрицательное чтение.
  • Он не прикреплен к оригинальному штифту. Он прикреплен к новому контакту, на который я его переместил. Я отрезал старый штифт от порта термистора и припаял новый штифт к следам порта. Затем я изменил pin в конфигурационном файле, и он некоторое время работает.
  • Электроника грязная, но добротная; Я использовал свой вольтметр для проверки подключения и напряжения.
  • Термистор работает; он читает чуть больше 100 Ком в моем горячем гараже, и температура меняется после того, как я кладу его в руку на несколько минут. Но это изменение температуры регистрируется только, как объяснено в остальном, в течение нескольких секунд.
  • Я уверен, что где-то в прошивке есть конфигурация, которую я упускаю, которая приводит к тому, что этот pin либо "выключается", либо перестает использоваться через несколько секунд.

Более широкий контекст:

Принтер отлично работал в течение нескольких месяцев, но однажды термистор экструдера закоротился так сильно, что аналого-цифровой вывод на Arduino, питающий плату Melzi, был безвозвратно поврежден. Показания температуры неизменно оставались на уровне 260 °C, даже когда он был отключен.

Я хотел придумать решение для ремонта, а не заменять плату (хотя у меня все равно есть планы сделать это), поэтому я скачал таблицу данных для Arduino Mega 1248P и поискал другие контакты АЦП, которые я мог бы использовать. Я обнаружил, что АЦП Pin0 не используется на плате, поэтому решил изолировать старый вывод (АЦП Pin 7), припаять трассировку к новому выводу и изменить прошивку, чтобы отразить новый вывод.

Datasheet pinout

Photo of trace and isolation

Затем я изменил вывод, используемый для считывания термистора экструдера в конфигурационном файле Pins_SANGUINOLOLU_11.h (старая плата Melzi для Tronxy X5s-это Sanguino):

// Датчики температуры
//
#define TEMP_0_PIN 7 // Аналоговый вход (вывод 33)) 
#define TEMP_BED_PIN 6 // Аналоговый вход (вывод 34))

Изменено на

// Датчики температуры
//
#define TEMP_0_PIN 0 // Аналоговый вход (pin xx экструдер) 
#define TEMP_BED_PIN 6 // Аналоговый вход (вывод 34))

Я не знал, что такое "pin 33", поэтому просто вставил xx в комментарий.

Во всяком случае, мое оборудование было хорошим, и мое программное обеспечение было предположительно хорошим, поэтому я прошил новую прошивку, подключил ее и включил:

Good temperature reading

Ура! Но через несколько секунд...

Bad temperature reading

Бу. Он перестает работать.

Я уверен, что мои соединения прочны: я проверил подключение и напряжение. Как новый порт, так и порт термистора теплового стола получают 4,97 вольта, поэтому это не падение напряжения. Это что-то в Arduino.

Есть идеи?

, 👍6

Обсуждение

Старый контакт все еще подключен к следу? И каков же выход этого контакта?, @0scar

у вас есть возможность протестировать еще один термистор? Или просто подключите резистор 100k, чтобы убедиться, что термистор работает правильно., @profesor79

Старый контакт был тщательно изолирован от следа. Когда я меняю его обратно на pin 7, я получаю показания 260 °C, даже если абсолютно все отключено. Контакт определенно закорочен., @Giandroid

О да, и я получаю ту же проблему, когда я меняю на другой термистор. Насколько я могу судить, это не термистор., @Giandroid

так что, похоже, чип ARM просит замену., @profesor79

Надеюсь, мне это не понадобится. В таком случае я могу заменить всю плату. Где я могу получить чип ARM в одиночку?, @Giandroid


2 ответа


1

Тепловое расширение где-то открывает связь. Возможно, это не одна из ваших припоев, но если вы закоротили плату настолько сильно, что зажарили контакты, она могла приготовить что-то в другом месте, и пропускание тока через нее нагревает место достаточно сильно, чтобы разорвать соединение. Либо где-то еще в/на плате, либо внутри самой микросхемы.


,

0

У меня возникла та же проблема, поэтому в прошивке вместо того, чтобы перейти на пустой штифт, я поменял местами штифты 6 и 7, чтобы температура сопла считывалась с штекера температуры стола на плате. Теперь температура сопла правильно читается, я пошел в конфигурации.h линия 291 и изменил 1 на 999 и на линии 295 я изменил значение на 60 теперь температура стола всегда будет 60, так что до тех пор, пока мои настройки печати совпадают, он никогда не будет включать тепловой стол и позволять машине печатать. Теперь я буду использовать NodeMCU ESP8266 для считывания температуры и управления МОП-транзистором для теплового слоя.

,