Как подключить шаговый двигатель к рамс 1.4. Подключение шаговых двигателей

Шилд RAMPS 1.4 подключение.

Рассмотрим подключение платы Shield-RAMPS-1.4 на примере 3D принтера Mendel90.

RAMPS 1.4 это шилд (надстройка) для Arduino Mega 2560. Ардуино преобразует G-коды в сигналы и управляет 3D принтером посредством силовой части - RAMPS 1.4.
Плата RAMPS 1.4 одевается поверх Arduino и все подключения, кроме USB, осуществляются через неё. Питание 12В на Arduino подаётся через RAMPS 1.4.

Двухэкструдерная схема подключения

Схема подключения с одним экструдером

Обычно используют билинейные (четыре провода) шаговые двигатели на 1,7 А типоразмера Nema 17. Провода желательно свить в косички для защиты от наводок.

Шаговые двигатели для оси Z можно подключать двумя способами:

  • Первый способ.
    Параллельное подключение пары шаговых двигателей на одну ось Z - это когда штекер каждого шагового двигателя подключается к своему индивидуальному разъему на плате RAMPS 1.4.
    Такой способ подключения шаговых двигателей для оси Z является стандартным подключением к плате RAMPS 1.4.
    Следует заметить, что при параллельном (стандартном) подключении могут возникать проблемы с рассинхронизацией шаговых двигателей, если будет иметь место разница в сопротивлении обмоток у подключаемой пары шаговых двигателей.
  • Второй способ.
    Второй способ это подключить шаговые двигатели последовательно одним штекером по схеме показанной ниже.
    При таком последовательном подключении двух шаговых двигателей по оси Z проблем с рассогласованием пары движков уже не будет наблюдаться.


Питание на RAMPS 1.4 подаётся от блока питания 12В 30А.

Подключение концевых выключателей

Шилд Shield-RAMPS-1.4 - одна из самых распространённых плат для сборки 3D принтеров.

Наша схема подключения

Питание RAMPS 1.4 происходит от блока питания на 12В 30А . Для использования одной пары проводов от блока питания можно припаять перемычку на плюсы, минусы уже соединены.

Для надёжности питания я припаял провода, вместо использования винтового соединения в разъёмах, а разъёмы оставил под другие нужды..
(на этой фотографии тоже припаяна перемычка, но в другом месте)

Обычно используют билинейные шаговые двигатели на 1,7А типоразмера Nema 17 . Провода желательно свить в косички для защиты от наводок .

Схема выводов . Цвета могут быть перепутаны, но пары легко прозвонить мультиметром .

Шаговый двигатель работает через драйвер . Ещё их называют StepStick. Для RAMPS 1.4 выпускают два вида драйверов A4988 и DVR8825 . Они отличаются током , выдаваемым на шаговый двигатель и минимальным микрошагом. Обязательно использовать радиатор. Обдув желателен. А если стол запитан не через реле, то обдув обязателен.
Ток на драйвере подстраивается опытным путём, гоняя 3D принтер на высокой скорости по всем координатам. Оптимальным считается, когда шаговые двигатели уже не гудят и ещё не пропускают шаги.

A4988
Максимальный ток 2А
Минимальный микрошаг 1/16 шага
Ток регулируется подстроечным резистором. По часовой стрелке - повышение тока.

Установка микрошага перемычками на RAMPS 1.4

DVR8825
Максимальный ток 2,2А
Минимальный микрошаг 1/32 шага
Ток регулируется подстроечным резистором. По часовой стрелке - понижение тока.

Установка микрошага перемычками на RAMPS 1.4

Перемычки установки микрошага на RAMPS 1.4 находятся под драйверами шаговых двигателей. Обычно используются A4988 с микрошагом 1/16 - все перемычки установлены .

P

Двигатели оси Z можно подключать:


  • параллельно - каждый штекер в своё гнездо. Э то стандартное подключение к RAMPS 1.4. Могут быть проблемы с рассинхронизацией двигателей, если есть разница в сопротивлении обмоток двигателей.

  • последовательно по схеме, одним штекером. При последовательном включении проблем быть не должно.


  • каждый на отдельный драйвер - второй подключается к незадействованному драйверу второго экструдера. Для этого нужно в прошивке Marlin раскомментировать строку во вкладке Configuration_adv.h

//#define Z_DUAL_STEPPER_DRIVERS

И здесь же настраивается использование отдельного концевика на второй шаговик

#define Z_DUAL_ENDSTOPS

#ifdef Z_DUAL_ENDSTOPS

#define Z2_STEP_PIN E2_STEP_PIN // Stepper to be used to Z2 axis.

#define Z2_DIR_PIN E2_DIR_PIN

#define Z2_ENABLE_PIN E2_ENABLE_PIN

#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I"m using XMAX in a Rumba Board (pin 36)

const bool Z2_MAX_ENDSTOP_INVERTING = false ;

#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.

#endif

Пины концевиков RAMPS 1.4 смотрим в pins_RAMPS_13.h . Выбираем не используемый пин и подставляем в Z2_MAX_PIN и подключаем второй концевик в выбранное гнездо

#define X_MIN_PIN 3

#define X_MAX_PIN 2

#define Y_MIN_PIN 14

#define Y_MAX_PIN 15

#define Z_MIN_PIN 18

#define Z_MAX_PIN 19


  • каждый на отдельный драйвер - переназначением пинов во вкладке Pins.h. То есть пины драйвера оси Z дублируем в константы драйвера второго экструдера. Например:

#define Z_STEP_PIN 46
#define Z_DIR_PIN 48
#define Z_ENABLE_PIN 62

#define E1_STEP_PIN 46
#define E1_DIR_PIN 48
#define E1_ENABLE_PIN 62

Если нужен второй двигатель по Х или Y , то для использования драйвера второго экструдера в файле STEPPER.CPP надо исправить строчки, которые относятся к тому, по какой оси будут дублироваться команды.
Если второй двигатель стоит по Х:

было

WRITE(Z2_DIR_PIN,INVERT_Z_DIR);

#ifdef Z_DUAL_STEPPER_DRIVERS
WRITE(Z2_DIR_PIN, INVERT_X_DIR );
#endif

Концевые выключатели (концевики, endstop, limit switch) .

Наиболее часто используются оптические и механические концевые выключатели . Оптические из-за своей природы могут быть ненадёжны, поэтому их не рассматриваю. Узнать состояние концевиков можно командой M119. Обычно ставят 3 концевика в положении HOME и софтовое ограничение в прошивке. Остальные концевики рассчитаны на сбой, но шаговики слабые и повреждений не наносят, просто пропускают шаги при достижении препятствия. А по оси Z у Mendel90 должны гайки выкручиваться из кареток при давлении хотэнда на стол.



Правильное подключение механических концевых выключателей в положении MAX. У оптических концевых выключателей используется дополнительно плюсовой контакт.

Подключение термисторов.

Термистор можно проверить мультиметром как резистор. Подсоединил к мультиметру - 87 кОм. Зажал пальцами - сопротивление стало падать, оно вообще не стоит на месте.
Также существуют термопары, но их редко подключают к RAMPS 1.4, так как нужна плата-адаптер . При подключении термопары важно соблюдать полярность.

Термистор стола и термистор горячего конца (хотэнда).

Подключение нагреваемого стола через реле.

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

Подключение вентилятора охлаждения хотэнда, освещения и других потребителей напряжения 12 вольт.
Подключаем в разъём питания RAMPS.

Подключение LCD панели управления (экранчика).

На задней стороне мы видим два гнезда для подключения шлейфов, слот SD карты и регулятор яркости.

Подключение к RAMPS 1.4 происходит через переходник. Гнёзда так-же подписаны EXP1 и EXP2 для правильного подключения.

Переходник уже подключается к RAMPS 1.4

При правильном подключении и настройки экран будет работать даже при питании RAMPS только от USB кабеля.

Ramps 1.4 - один из самых распространнеых шилдов для Arduino Mega. Как он обрел такую популярность? Все дело в том, что он является неотъемлемой частью в домашнем 3d принтере. Именно эта плата расширения позволяет подсоединить к универсальной платформе Arduino Mega 2560 все необходимые комплектующие Вашего устройства прототипирования. Это бюджетный вариант для сборки 3d принтера и настоящий момент именно такая категория принтеров наиболее популярная, так как в основном им пользуются для домашних нужд и печати в сфере робототехники. Цена Ramps 1.4 очень мала, что делает его незаменимым. Но у таких вещей есть свои нюансы и об основных этих аспектах мы поговорим в этой статье.

Ramps 1.4 для Arduino Mega

Как же подключать шилд Ramps и какова его распиновка? Сперва стоит соединить его с Вашей ардуинкой. Это очень просто и там нельзя ошибиться, просто втыкаем пины в штекеры разом, чтобы та полностью вошла в пазы. А вот далее начнутся манипуляции посложнее. В первую очередь нужно обратить внимание на то, что написано на плате расширения в ее центре: X, Y и Z. Под каждой из букв можно видеть 2 параллельные дорожки штекеров "мама". Именно туда вставляются драйверы управления шаговыми моторами. О их видах и характеристиках мы расскажем в другой статье, а пока будем вещать на примере самых надежных и дешевых А4988. Вставлять нужно именно так, как показано на картинке. Могут возникать трудности с их установкой, так как место для них весьма мало. Отдельно ставится драйвер (или два, в случае двух экструдеров) для управления шаговиком экструдера, проталкивающего филамент. Также, перед тем, как втыкать А4988, под ними есть 6 пинов, которые надо попарно соединить джамперами, которые идут в комплекте. Не забудьте это сделать, это очень важно!!!

Посадочные гнезда для драйверов шаговиков

Установленные драйвера А4988

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

Подключение обмоток моторов

Далее идет подключение концевых выключателей, они же стоппреы. Концевиков у нас 3, на каждую ость. Как и куда их ставить на Зд принтере мы уже писали и . Они подсоединяются в слоты в верхнем правом углу шилда.

Подключение обмоток моторов

Следующим шагом идет подключение проводом термодатчиков стола и сопла. Они подключаются к контактам Т0, Т1 и Т2, в любые из них - все зависит от настроек прошивки. Если хотя бы с одного не будет идти информация по какой либо причине, и на экране будет не определена температура или стоять 0 - в этом случае принтер не даст зайти в меня и работать не будет. Поэтому проверьте на исправность термопар, правильность установки.

Подключение термисторов

Следующим и завершающим элементом статьи будет рассказ о силовой части ramp 1.4 и о ее нюансах. Начнем с того, что у нас есть 2 входа на плату с блока питания через 4 коннектора в виде зеленого четырех канального терминала. Сразу скажем, что это крайне ненадежный элемент и очень часто он плавится или даже воспламеняется. Это очень опасно, если Вы оставляете печатать принтер на ночь и не следите за ним. Поэтому от блока питания тянем 4 достаточно толстых провода. Выпаиваем зеленый терминал из платы расширения большим паяльником (одновременно все контакты нужно прогреть) или феном и подсоединяем напрямую питание в шилд. Каждый из двух каналов питания подает ток на свою часть синего терминала, имеющего по 3 слота. Одна его часть служит для обдува сопла, другая - для нагрева экструдера, третья - разогревает стол. Опять же, нужно смотреть настройку прошивки. Поэтому в один канал подсоединяем провода от экструдера, в другой - вентилятора обдува (см. рисунок ниже), а в третий - провода от нагревателя стола.

Подключение питания

В качестве совета можно предложить выпаять один из двух желтых плавких предохранителей - самый большой. Его нужно заменить на еще больший, так как тесты показывают, что по своим характеристикам предыдущий сильно проигрывает. На старых моделях стоял правильный предохранитель, но потом по неизвестным причинам его заменили. Ну и последним и весьма важным советом будет предложение поставить вентилятор на ramp и блоки питания. Дело в том, что в процесс длительной печати плата нагревается, а особенно этому эффекту поддаются драйверы шаговых моторов, которые могут выйти из строя из-за этого или начнут сбивать положение экструдера в процессе печати на каком нибудь слое и часть модели съедет. Поэтому не ленитесь и поставьте такое охлаждение напрямую через блок питания.

Установка охлаждения

Один из главных вопрос при постройке 3D принтера — какую электронику использовать? В сети есть несколько вариантов под разным названием и с разными возможностями: GEN, Sanguinololu, RAMPS и др. Но все они устроены практически одинаково: к процессору Atmel к выводам подключены драйверы управления шаговыми двигателями, несколько транзисторов для управления нагревательными элементами и кулером, и несколько перемычек для задания шага двигателя. Чем круче процессор, тем больше к нему может быть подключено плюшек в виде экранчика, кардридера и т.д. Подробно описывать не буду, но все, что необходимо для работы принтера — это управление 4 (5) драйверами шаговых двигателей, 1 транзистор на нагрев hot end-а (печатающей головки) и вход датчика температуры. Все, этого достаточно.

Присмотревшись к схемам плат, я выбрал наиболее простой вариант — плата RAMPS. Основное её отличие от других в том, что она построена на основе платы Arduino Mega, т.е. схема очень простая, паять надо по-минимуму, настраивать ничего не надо- просто вставляется в Arduino и включается. Выглядит все следующим образом:

плата RAMPS+Arduino

Изначально я выбрал вариант RAMPS 1.4, закупил деталей и приступил к изготовлению платы. Именно в этом месте меня ждал гигантский конфуз — у этой версии платы оказалось очень много тонких дорожек, переходов с одной стороны платы на другую и т.д.

Методом ЛУТ я владею на уровне начинающего, но мне хватило и пары пробных переносов изображения с бумаги на текстолит, чтобы понять бессмысленность моей затей. Решил выбрать более раннюю версию платы RAMPS 1.25 — она проста в изготовлении, используется односторонний текстолит. Есть правда и минус — вместо 5 драйверов шаговых двигателей, в ней используется всего 4, один драйвер управляет сразу двумя двигателями перемещения по оси Z. Ничего страшного в этом нет, только один минус — часто после печати при возврате в координату (0,0,0) двигатели оси Z стопорит, программа считает, что вы вернулись в 0-ую точку, а на самом деле экструдер висит в воздухе. Обходится этот глюк очень просто — по оси Z надо разгоняться постепенно, тогда движки не заклинит: сначала делаем три шага по 0,1 мм, затем еще пара шагов по 1 мм, а потом разгоняем до 10 мм за шаг (это все можно задать в программе в программе Slicer, про настройку программы я напишу немного позднее).

Для сравнения приведу схему обеих плат:

схема подключения RAMPS 1.4

схема подключения RAMPS 1.25

Второй экструдер мне пока не нужен, да и поле печати и так очень маленькое — всего 10х17 см.

В конце статьи выложу все файлы PDF для ЛУТ-а.

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

распечатываем на журнальной бумаге

Красный цвет — это маркер. Я дорисовал несколько площадок. Далее протравил в хлорном железе (водный раствор):

Через 15 минут потряхиваний платы, она была готова. Я давно не травил платы и для меня было сюрпризом, что водное хлорное железо не такое ядреное, как обычное — безводное хлорное железо. Этот раствор так медленно работает, что я устал ждать. В следующий раз буду покупать безводный FeCl3.
Плата готова:

Плата в сборе:

От чего я отказался:
1. от 1шт предохранителя, т.к. не нашел у нас в магазинах такой (поставил перемычку)
2. от кулера (во всем городе не нашлось необходимых полевых транзисторов, а подбирать и искать аналоги было лень)

Тонкости:

Припаивать штырьки к плате надо с той же стороны, где и находятся дорожки платы — крайне неудобно и некрасиво, но никуда не деться.

Как видно — пришлось паяльником плавить пластик, чтобы добраться до дорожек.

Еще одна тонкость — сначала вставьте штырьки в плату Arduino, затем сверху наденьте Ramps и только потом припаивайте, иначе после сборки будет очень трудно вставить Ramps в Arduino — штырьки будут смотреть в разные стороны и придется пинцетом каждый из них направлять в нужное отверстие, а их более 40 шт

Аналогично поступайте с драйверами двигателей.

После сборки сразу заметил — корпус USB-разъема Arduino замечательно замыкает на дорожку с +12 В. Вот это сюрприз Хорошо, что я сначала проверил весь монтаж. Установил на корпусе USB пластиковую пленку из ЭПРА светильника (она там выполняет роль изолятора), но можно использовать обычную изоленту:

1.После сборки Ramps отключите её от Arduino, уберите драйвера двигателей и подайте на неё питание 12 В. Проверьте все ноги, где должны быть 12 В, а где их не должно быть.
2.Следующий шаг — отключить питание от Ramps и установить плату в Arduino. Подключите Arduino к компу через USB и проверьте наличие 5 В на плате Ramps.
3. Все можно собрать воедино и подать 12 В.

(PDF масштаб 1:1)- готовый файл для печати методом ЛУТ

— инструкция по сборке, список деталей, схема размещения элементов.

удачи в сборке

Самое интересное начнется после сборки принтера и подключения его к компу.

Во первых, необходимо будет выбрать в прошивке тип вашей платы, выставить шаг для каждого двигателя, т.к. почти все прошивки заточены под дюймовую систему, а не метрическую. У меня заняла довольно много времени, т.к. информация в инете в основном на английском языке.

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


В этой статье речь пойдет об электронной части 3D принтера RepRap, а именно: о шаговых двигателях и драйверах для них, концевиках (endstops), управляющей плате, блоке питания и о том как всё это соединить между собой.

Шаговые двигатели

В движение RepRap приводится с помощью шаговых двигателей . Их вращение дискретно, то есть вал двигателя делая полный оборот последовательно проходит некоторое количество фиксированных положений (шагов). Т.к. размер шага известен, то такой двигатель очень легко заставить повернуться на нужный угол - нужно просто подать ему команду повернуться на количество шагов соответствующее требуемому углу. Возможность точного позиционирования избавляет от необходимости в обратной связи и сложных алгоритмах управления, а это делает шаговые двигатели очень удобными для использования в машиностроении. Для RepRap обычно используются двигатели которые совершают 200 шагов на полный оборот (т.е. один шаг равен 360 / 200 = 1.8 градусам).

В RepRap Prusa Mendel используется четыре шаговых двигателя для позиционирования каретки (по одному на оси X и Y, и два на ось Z), и один для подачи прутка в экструдер. В типичном варианте все используемые двигатели имеют форм-фактор NEMA17. Это именно форм-фактор (по сути - размеры двигателя), а не какая-то конкретная модель двигателя.

Шаговые двигатели используются биполярные (они, в основном, имеют 4 вывода). Можно использовать и униполярные, просто не задействовав лишние выводы. Подробнее об этом, и вообще о выборе двигателей для RepRap можно почитать .

При выборе двигателя нужно обратить внимание на его момент удержания (holding torque). Для двигателей приводящих в движение каретку достаточно 1.4 кг*см (если верить RepRap Wiki), а для двигателя экструдера нужно минимум 4 кг*см.

Также нужно обратить внимание на то, какой ток потребляет двигатель, поскольку самый часто используемый драйвер шаговых двигателей - A4988 (да и A4983) имеет ограничение в 2А. Поэтому если двигателю нужен ток выше 2А, то в лучшем случае он просто не будет выдавать нужный момент. Напряжение особого значения не имеет, т.к. его регулирует драйвер шагового двигателя, что бы поддерживать необходимый ток.

Для перемещения каретки я использовал двигатели SY42STH47-1684B. Это биполярный NEMA17 двигатель с моментом удержания в 4.4 кг*см, рассчитанный на ток в 1.68А. Кроме того, это весьма популярная модель, и такие двигатели можно найти в местном магазине.
Для экструдера я взял двигатель еще мощнее, а именно - Kysan 1124090 с моментом удержания в 5.5кг*см и током 1.5А.

Драйверы шаговых двигателей

Для управления шаговыми двигателями обычно используется специальный чип - драйвер шагового двигателя. Можно, конечно, попробовать обойтись и без него, и управлять двигателем напрямую с микроконтроллера, но такой способ потребует большого количества дополнительных деталей, и, в целом, не эффективен. Кроме того, в специализированных чипах-драйверах есть уже готовая поддержка микрошагового режима. В микрошаговом режиме ротор двигателя может не только дискретно переключаться между шагами, но и "зависать" в промежуточных положениях между двумя шагами. Такой режим работы существенно увеличивает точность позиционирования, и, кроме того, уменьшает шум и вибрацию, присущие шаговым двигателям.

Обычно для 3D принтеров используют популярные драйвера шаговых двигателей - Allegro A4988 и A4983. Они поддерживают ток до двух ампер, и микрошаговый режим 1/16 (т.е. между двумя шагами имеется 16 дополнительных микрошагов, а для двигателя с 200 шагами это целых 3200 микрошагов на оборот). Чип A4988 поддерживает некоторые дополнительные возможности, такие как, например, встроенная система отключения при перегреве и "low current microstepping" (см. ниже) так что лучше брать его.

Но сами эти чипы слишком мелкие что бы их припаять руками, и требуют некоторую обвязку из резисторов и конденсаторов. К счастью, есть готовые модули для управления шаговым двигателем, например Pololu или StepStick . Я в своем принтере использовал чипы Pololu. Со StepStick нужно быть осторожным, поскольку, в отличие от Pololu, это не конкретный производитель, а скорее просто открытая инструкция по сборке. Реализация же, как и её качество, может очень сильно варьироваться.

Если у вас модуль на основе A4988 я бы рекомендовал обратить внимание на эту статью. Если вкратце - для некоторых двигателей (в статье идет речь о двигателе с сопротивлением 1,65 Ом, и на моих двигателях описанная проблема также присутствовала) могут пропускаться микрошаги. Проблема и решение описаны в даташите к чипу в разделе "Low Current Microstepping". Собственно решение - пин ROSC должен быть закорочен на землю. В модуле Pololu этот пин подключен к земле через резистор R4, его нужно аккуратно закоротить перемычкой.

При работе чип драйвера ощутимо нагревается, поэтому я бы советовал установить на каждый чип по радиатору, или организовать активное охлаждение. Я на каждый чип приклеил по небольшому радиатору на теплопроводный клей "Радиал".

Вообще нужно по одному драйверу на каждый шаговый двигатель. Но, несмотря на то, что двигателей в RepRap Prusa Mendel используется пять - драйверов нужно четыре, т.к. два двигателя оси Z включены параллельно, и используют один драйвер.

Концевики

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

В простейшей реализации концевик представляет собой обычную кнопку, которая нажимается при достижении кареткой крайнего положения. Необходимость в таком устройстве возникла потому что шаговые двигатели лишены обратной связи - двигатель может повернуться ровно на N шагов (или микрошагов) по или против часовой стрелке, но сообщить свое текущее положение он не в силах. Поэтому перед каждой печатью принтер устанавливает каретку в начальное положение (условную точку с координатами (0, 0, 0)), а уже относительно неё рассчитываются остальные координаты. Для установки каретки в начальное положение принтер просто крутит двигатели в сторону уменьшения координат, пока не получит сигнал срабатывания от каждого концевика.

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

Существует два наиболее распространенных варианта концевиков - механические (по сути - просто кнопка), и оптические (срабатывает когда специальный флажок попадает в зазор между светодиодом и фоторезистором). Оптические концевики не содержат движущихся частей и более точны, поэтому предпочтительнее использовать их. Есть еще магнитные концевики, с датчиками Холла, но они не сильно распространены.

Более подробно о концевиках можно почитать . Я для своего принтера сделал оптические концевики по вот этой схеме. Но если не хочется возиться с паяльником, как и все остальное их можно купить.

Блок питания

Обычно для питания принтера используют напряжение 12В. Для питания самого микроконтроллера нужно 5В, но он может питаться и от USB.

Самый простой и практичный вариант - обычный компьютерный блок питания. Его просто найти, он дешево стоит, и выдает нужные нам напряжения (12В и 5В, на самом деле есть еще 3.3В, но они нам не нужны). Что касается мощности - я бы советовал брать блок питания способный отдавать около ток 20А. Один только стол с подогревом требует 10-12 ампер, а еще двигатели, хотэнд, да и вентилятор для обдува модели рано или поздно установить придется. Я себе для RepRap купил блок питания мощность 400W. Заявленный максимальный ток для 12В у него 18А, и пока мне его вполне достаточно.

При использовании компьютерного БП есть небольшой нюанс - у него нет кнопки включения, т.к. предполагается что включать его будет компьютер. Эту проблему легко решить - обычно компьютерные БП включаются путем замыкания двух контактов 20-пинового ATX коннектора, а именно PS_ON и GND.
Но будьте внимательны, т.к. цвета проводов на разных БП могут отличаться. А некоторые блоки питания вообще не включатся без нагрузки (хотя, на самом деле, все БП не рекомендуется включать без нагрузки).

Более подробно о использовании компьютерного блока питания для RepRap можно прочитать .

Контроллер

Вот мы и добрались до самого интересного, "мозга" принтера. Здесь под контроллером я подразумеваю плату (или несколько плат), которая непосредственно управляет работой принтера, а именно - крутит шаговые двигатели, управляет температурой хотэнда и стола, скоростью вращения вентиляторов.

На высоком уровне работа контроллера выглядит следующим образом - в его память загружается (обычно посредством USB-подключения к компьютеру, но можно использовать и SD-карты памяти) программа на языке G-code , описывающая всё что принтеру нужно сделать для печати модели, а контроллер эту программу выполняет, команда за командой.

Условно контроллер можно разделить на две части: "логическую" и "силовую". В качестве логической части обычно выступает микроконтроллер с простейшей обвязкой (чаще всего используют микроконтроллеры AVR, но есть варианты контроллеров и с ARM процессорами). Силовая часть содержит все что необходимо для управления мощной нагрузкой - драйвера шаговых двигателей, и, обычно, полевые транзисторы для стола с подогревом и хотэнда.

Вариантов контроллеров для RepRap очень много, вот можно посмотреть на таблицу сравнения некоторых из них. Кроме наличия/отсутствия некоторых возможностей контроллеры также отличаются простотой сборки, например, тот же Generation 7 Electronics рассчитан на полностью самостоятельное изготовление, а, скажем, Smoothieboard сделать самому вряд ли удастся.

Двигатели оси Z подключаются параллельно, к одному драйверу.

Концевики

На RAMPS предусмотрено шесть разъемов для подключения концевиков, их порядок следующий- X min, X max, Y min, Y max, Z min, Z max. Подключать концевики нужно соблюдая полярность. Если смотреть на разъемы концевиков со стороны разъемов питания RAMPS, то порядок пинов будет следующий - Signal, GND, +5V.

Термисторы

RAMPS поддерживает три датчика температуры, разъемы для них подписаны - T0, T1, T2. В T0 обычно подключают термистор хотэнда. А T2 я подключил термистор стола с подогревом. Полярность отсутствует.

Нагреватели

Разъемы для подключения нагревательных элементов подписаны D8, D9, D10. Резистор хотэнда я подключил в D10, а резисторы подогревающие стол в D8. Обратите внимание, что провода по которым идет ток для подогрева стола должны быть рассчитаны на ток минимум в 10А, в противном случае может оплавиться изоляция и произойти КЗ.

Питание

Для подачи питания в RAMPS предусмотрено два разъема - 12V5A и 12V11A. Вход 12V5A используется для питания шаговых двигателей, и нагревателей D9, D10. Вход 12V11A используется для питания нагревателя D8, к которому подключен стол с подогревом. Подключать, разумеется, нужно оба. Входы 12V5A и 12V11A лучше питать от разных выходов компьютерного блока питания.

Заключение

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

В следующей (последней) части я расскажу о прошивке контроллера, калибровке и настройке принтера, программном обеспечении для 3D печати, а также постараюсь дать полезные советы по созданию моделей и улучшению качества печати.