Нестабильная температура экструдера Wanhao Duplicator i3

Jan 06, 2016 20:07

У свежекупленного Wanhao Duplicator i3 обнаружился баг. Заметил я его практически сразу, но изучение и устранение отложил на день. Баг заключается в том, что температура экструдера, отображаемая на экране принтера скачет на 20 градусов. Допустим несколько секунд показывает 235, потом несколько секунд 255 и так все время. Не порядок. Бегло поискав в интернете увидел, что проблема не у меня одного(но похоже появилась в последних партиях принтера), но в тоже время внятного решения ни одного не нашел. Иностранные форумы кишат самыми разными предположениями. Зачастую люди которые их делают пишут очень уверенно и думаешь "вот, точно, в этом проблема", но строчкой ниже они пишут какую-нибудь совершенную чушь, не менее уверенно, поэтому ценность первого заявления становится нулевой :)
Самые популярные предложения:
-плохой контакт термодатчика/перегиб проводов/плохая пайка/плохой термодатчик
-слишком малой мощности блок питания
-неправильные настройки ПИД регулятора температуры
Все эти вещи в целом могут приводить к нестабильным показаниям температуры, но не в данном случае. Ну не зря я электронщик, пришлось разбираться :)
Раскручиваем управляющий блок принтера. Внутри блок питания, главная управляющая плата, плата с экраном и куча проводов. Собрано все вполне качественно и аккуратно и выглядит все довольно просто. Управляющая плата называется Melzi, почитать про нее можно тут: http://reprap.org/wiki/Melzi



На фото плата не из моего принтера, но выглядит почти 1 в 1, отличие в клеммах (у меня они сделаны разъемными, что очень хорошо).
На плате установлено 4 драйвера шаговых двигателей A4988, стабилизатор 7805 для питания контроллера, три мощных полевика для управления нагревателем экструдера, столика и вентилятором обдува модели. В качестве контроллера ATmega1284. Для связи с компьютером - FT232R. Кроме всего прочего к плате подключается три концевика, по одному на ось и два датчика температуры - один в экструдере, другой в столике.

В качестве датчиков температуры выступают терморезисторы номиналом 100К.

Есть и схема:



Полный размер будет при просмотре оригинала. Смотрим схему подключения датчиков температуры. Она банальная - по сути резисторный делитель, в верхнем плече 10К (на схеме 4.7К), в нижнем плече терморезистор в параллель конденсатору, видимо для сглаживания шумов. Выход с делителя идет напрямую на ножку AVR-ки.

Первым делом я подключил осциллограф к нагревателю экструдера и включил нагрев. Ага, как и был уверен почти на 100% - скачки температуры были напрямую связаны с включением нагревателя. Как только нагреватель включался - температура подскакивала на 20 градусов, как только выключалась - проседала. Измеряю напряжение напрямую на клемме терморезистора, после нагрева оно в районе 160мВ и почти не меняется, даже при скачках температуры на экране. При включении нагревателя плавно уменьшается чуть чуть, при выключении - возрастает, очень похоже на нормальную работу.

По схеме нахожу к какой ножке МК подключен термодатчик и ближайшую ножку земли на МК. Проверяю по разводке платы, которая доступна:



На картинке чуть более старая версия платы под другие драйверы, но часть с микроконтроллером вроде сходится. Кое как прикладываю щупы мультиметра к нужным ножкам МК и что я вижу: при включении нагревателя напряжение скачкообразно меняется на несколько десятков мВ. Замеряю разницу на каждой из линий. Между "+" терморезистора и входом на МК всегда стабильно 0. Не удивительно, там одна дорожка, по которой фактически не течет ток. Замеряю разницу между землей разъема терморезистора и землей МК - при включении нагревателя экструдера разница напряжений составляет 45 мВ!

Вот и ответ - плата разведена с нарушениями правил разводки земли - сигнальная земля перемешана с силовой. Писали-писали об этом, говорили-говорили, а все равно накосячили :)

Плата покрыта черной маской, поэтому проследить полигоны и дорожки было проблематично и я не стал с этим заморачиваться. Но если посмотрите на фото, то увидите - три силовых транзистора находятся над МК (под радиаторами). За нагрев экструдера отвечает средний. Его исток видимо подключен к тому же полигону, к которому подключена земля МК. Скорее всего у этого полигона где-то есть "узкое место" в соединении с основной землей. Вероятно авторы понадеялись, что "заливая" всю плату землей они могут не заморачиваться с сигнальной/силовой землей. Но это ошибочный подход - я сам натыкался в своих платах на такое - заливаешь всю плату земляным полигоном, а потом, при внимательном изучении обнаруживаешь, что на самом деле получилось 2 и более полигонов, которые соединяются между собой очень тонкими дорожками.

Решил проблему я просто - припаял толстый медный провод одним концом к истоку транзистора, другим прямо к земляному полигону около клеммы источника питания.

UPD: так как этот вопрос вызвал у ряда людей затруднения - поясню: то место, куда на фотографии припаяны левые концы проводов изначально абсолютно черное. Чтобы туда припаять провод это место просто аккуратно нужно зачистить ножичком, 4х4мм, соскребя черный лак и не задев близлежащие дорожки. Как альтернатива - можно припаять другой конец провода напрямую к минусу разъема источника питания(черный провод) с обратной стороны платы или к одному из углов платы. Однако, чем толще и короче провод, тем лучше будет результат. И еще - при припаивании к ножке транзистора будьте аккуратны и не замкните две небольшие контактные площадки между ножками, которые подписаны как BYPASS.

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



После этого все собрал, включил и вот оно - температура стала отображаться стабильно, плавая на +/- 1 градус, что близко к разрешающей способности АЦП МК и заведомо очень далеко за пределами всех погрешностей измерений.

На всякий случай проверил точность измерения платой, подключая вместо терморезистора обычные резисторы. Таблица соответствий:
100К соответствуют 25C, 50К - 42C, 10К - 90C, а 1К - 184C.
Все сошлось.

Блок питания, кстати, я также заменил. Штатно стоит некий SOMPOM S-240-12 с мощностью 240 Вт и током до 20А. Я поставил имевшийся в наличии Mean Well NES-350-12, с мощностью 350Вт и током до 29А, но не из-за мощности, а из-за того, что в оригинальном БП очень шумный вентилятор и он постоянно работает, а в моем БП он тихий, да еще и большую часть времени выключен. Нужно еще будет заменить вентилятор в самом управляющем блоке, а то уж больно он шумный.

Ну и напоследок - первые две полезные детали напечатанные на 3D принтере, то, для чего он в первую очередь и покупался - детали головки SMD расстановщика. Это пробные детали, сделанные лишь для теста и отладки. Одна деталь служит основой головки - она закреплена на каретке оси X, а на ней в свою очередь закреплена вертикальная рельса оси Z1 и ее сервопривод. А на каретке оси Z1 в свою очередь закреплен адаптер для крепления ручки, которая нужна для отладки системы управления станком.



P.S. Вся информация предоставляется как есть. Автор не несет ответственности за ошибки (в т.ч. фундаментальные) в изложения и за любые действия читателей статьи.

P.P.S. Сумбурно вышло.

UPD: продолжение истории можно прочитать тут: http://alex-avr2.livejournal.com/191463.html

3D печать, Ремонт, Электроника, Расстановщик, Печатные платы

Previous post Next post
Up