Supplies
Hardware components
A4988 stepper motor driver | × 1 | Amazon | |
NEMA 17 stepper motor | × 1 | Amazon | |
Arduino Uno Rev3 | × 1 | Amazon | |
Power supply (8-35 V) | × 1 | Amazon | |
Breadboard | × 1 | Amazon | |
Capacitor (100 µF) | × 1 | Amazon | |
Jumper wires | ~ 10 | Amazon | |
USB cable type A/B | × 1 | Amazon |
I like to use this driver in combination with a CNC-shield or expansion board. Such a shield already includes capacitors and offers an easy way to select the microstepping resolution. It makes wiring much easier and is a great option if you need a more permanent solution than a breadboard.
Software
Arduino IDE |
Makerguides.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to products on Amazon.com.
Драйвера шаговых двигателей
Это миниатюрные платки, которые будут управлять шаговыми двигателями. Считаем сколько нужно:
Можно взять лотом, можно по отдельности. Я специально написал один драйвер DRV8825, поскольку у него максимальное деление шага 1 к 32, что позволяет более точно выдавливать пластик во время печати очень мелких деталей.
Теоретически можно взять и все пять A4988 или комплект из пяти DRV8825. Тут уж решать вам, но один DRV8825 в сборке строго приветствуется.
Совет. Попадете на распродажу, не поленитесь взять парочку драйверов про запас. При первичной сборке есть риск, что один из драйверов обязательно спалите:)
Разработка ЧПУ
После сбора всей необходимой информации, подбора рабочего инструмента и расчета необходимого количества действий создается программа для ЧПУ станка. Информация об управляющих командах и процессе создания программного продукта для каждой конкретной модели находится в инструкции к оборудованию. Управляющие алгоритмы представляют собой набор команд, в числе которых:
Программирование управляющей стойки осуществляется одним из двух способов:
Большинство современных производителей поставляют в комплекте со станком софт для написания управляющего кода. Благодаря этому можно составить управляющие воздействия на более удобном интерфейсе или переработать уже существующий программный код.
Учтите факторы
При написании программы для станков с ЧПУ учитывается ряд важнейших факторов:
Максимальное количество одновременно задействованного инструмента на станке, рабочий ход, мощность ЧПУ и максимальная скорость выполняемых станком операций. При выборе скоростного режима учитывается максимальный разогрев детали, ошибки в этой части могут вызвать деформацию изделия. К тому же следует учитывать наличие на станках с числовым программным управлением дополнительных механизмов. В противном случае при выполнении алгоритма может произойти сбой или наблюдаться ошибки в работе.
Подробные инструкции по созданию управляющих алгоритмов, их интеграции в систему числового программного управления, возможности оборудования и наличие дополнительных функциях подробно описываются в инструкциях к станкам. Внимательное прочтение инструкции и самостоятельное обучение на протяжение небольшого промежутка времени позволяет написать программу человеку, ранее не знакомому с управлением устройством.
Перейдем к практике
Теория всегда запутанная и непонятная, чтобы понять что и как брать и делать. Поэтому перейдем к практической стороне дела.
Итак, из набора, о котором шла речь ранее, у меня есть:
- Arduino UNO;
- Модуль ULN2003;
- Шаговый двигатель 28BYJ-48 5V DC;
- Связка свитеров, щиток и источник питания для него.
Модуль ULN2003 — предназначен для управления униполярным шаговым двигателем. Схематично это 7-канальный транзисторный комплекс Дарлингтона и, в принципе, им можно управлять чем угодно. Технические характеристики приведены ниже:
- Номинальный ток коллектора ключа — 0,5 А;
- Максимальное выходное напряжение до 50В;
- Защитные диоды на выходах;
- Вход адаптирован к разным типам логики;
- Возможность использования для релейного управления.
Модуль, помимо самой микросхемы ULN2003, имеет светодиоды для индикации выходного напряжения, колодку подключения и перемычку для отключения питания.
Двигатель 28BYJ-48 5V DC подключается штатным разъемом к белому блоку на плате. В нем 5 проводов: общий красный и 4 от обмоток.
- 32 шага на оборот ротора;
- Интегрированная коробка передач с передаточным отношением 63,68395: 1, благодаря которой вал совершает 1 оборот за 2048 шагов в режиме полного шага и 4096 шагов в режиме полушага;
- Скорость вращения: номинальная 15 об / мин, максимальная 25 об / мин;
- Напряжение питания 5 В;
- Ток одной обмотки 160 мА;
- Полный ток: в 4-фазном режиме 320 мА, при быстром вращении 200 мА.
- Передаточное число: 1 / 63,68395
- Угол наклона ротора (без редуктора): при 4-ступенчатой последовательности управляющих сигналов 11,25 ° (32 ступени на оборот); в 8 шагов — 5,625 ° (64 шага на оборот)
- Крутящий момент не ниже: 34,3 мНм (120 Гц);
- Тормозной момент: 600-1200 гсм;
- Тяга: 300 г / м 2;
- Вес: 33 гр.
Итак, давайте рассмотрим более простые примеры управления двигателем без использования библиотек. Как известно, на обмотки необходимо подавать импульсы определенной последовательности.
Итак, попробуем выдать такие сигналы от ардуино. Для этого я подключаю модуль ULN2003 по следующей схеме (вывод arduino — контакт модуля)
Двигатель начнет вращаться, скорость вращения фиксируется переменной dl. Я только ввел его, чтобы не вводить вручную задержку на каждом шаге. Ниже я приложу видео и в нем для наглядности я показал как вращение с задержкой между шагами равной 2 мс (за 1 мс мотор только пищит и не вращается…), и с задержкой полсекунды, что позволяет четко видеть, в какой последовательности отправляются сигналы на обмотки, что позволяет убедиться, что напряжение приложено к двум обмоткам одновременно, согласно приведенной выше таблице. С задержкой в 2 мс светодиоды загораются как будто все вместе.
Перейдем к полушаговому управлению. В следующей таблице показана процедура подачи сигналов на обмотки рассматриваемого двигателя для ее реализации.
Первое, что бросается в глаза, это то, что код занимает намного меньше времени, количество шагов для полного оборота ротора задается первым аргументом функции Stepper, с его помощью выводов, к которым подключен двигатель и объявляется количество шагов в полном повороте дерева, его синтаксис следующий:
Имя шагового двигателя (количество шагов за полный оборот, вывод 1, вывод 2, вывод 3, вывод 4).
Что ж, когда нам нужно повернуть сам мотор, мы обращаемся к мотору, имя которого мы написали в Stepper с префиксом «.step», у нас есть myStepper.step. В видеоролик я для наглядности вставил фрагмент, в котором двигатель крутится на пол-оборота по часовой стрелке, а на полный — против. Это в самом конце. Я изменил код для этого следующим образом:
В дверном мониторе микроконтроллер «сообщает» нам, в каком направлении вращается двигатель.
И напоследок предлагаю посмотреть видео, демонстрирующее, как работают все примеры кода в этой статье
A4988 Current Limiting
Before we connect the motor we should adjust the current limiting of the driver so that we are sure that the current is within the current limits of the motor. We can do that by adjusting the reference voltage using the potentiometer on the board and considering this equation:
However this equation is not always correct as there are different manufactures of the A4988 driver board. Here’s a demonstration of my case: I adjusted the potentiometer and measured 0.6V reference voltage. So the current limiting should be that value of 0.6*2, equal 1.2 A.
Now because I am using the Driver in Full Step Mode and according to the A4988 Datasheet in this mode the winding current could reach only 70% of the current limit, the 1.2A*0.7 would equal 0.84A. In order to check this I uploaded a simple code that sends continuous logic high to the Step pin (so that we can better notice the current) and connected my meter in series with one winding of the motor and powered it up. What I got was 0.5A which means that the equation wasn’t correct for my case.
↑ Двигатель (мотор)
В качестве двигателя для привода определил шаговый двигатель (ШД) Почему шаговый? Что это вообще такое? Двигатели есть переменного и постоянного тока, коллекторные и бесколлекторные, и так называемые «шаговые». В любом случае нам надо обеспечить какую-то точность позиционирования, например 0,01 мм. Как это сделать? Если двигатель имеет прямой привод — вал двигателя соединяют напрямую с винтом, то для обеспечения такой точности нужно повернуть его на некоторый угол. В данном случае, при шаге передачи 4 мм и желаемой точности перемещения 0,01 мм это… всего 1/400 оборота, или 360/400=0,9 градуса! Ерунда, возьмем обычный моторчик… С «обычным» моторчиком без обратной связи никак не получится. Не вдаваясь в подробности, схема управления двигателем должна «знать», на какой угол повернулась ось. Можно конечно поставить редуктор — потеряем в скорости, и все равно без гарантии, без обратной связи вообще никак! На ось ставится датчик угла поворота. Такое решение надежное, но дорогое.
Альтернатива — шаговый двигатель (как он работает, почитайте сами). Можно считать, что за одну «команду» он повернет свою ось на определенный градус, обычно это 1,8 или 0,9 градуса (точность обычно не хуже 5%) — как раз то, что нужно. Недостаток такого решения — при большой нагрузке двигатель будет пропускать команды — «шаги» и может вообще остановиться. Вопрос решается установкой заведомо мощного двигателя. На шаговых двигателях и делается большинство любительских станочков.
Что такое Arduino
Прежде всего, стоит разобраться, что такое Arduino.
- название торговой марки аппаратуры, средств программирования, при помощи которых реально построить модели станков (в том числе, трехосевого), несложные системы автоматики и робототехники;
- линейка продукции, наличие открытой архитектуры у которой позволит скопировать или дополнить уже существующие конструкции;
- небольшая плата с собственным процессором и памятью;
- аппаратная вычислительная платформа или же контроллер;
- язык программирования, позволяющий разбирать различный софт (условно бесплатное ПО, свежие новости в области IT);
- так называемый электронный конструктор.
Создавая на Ардуино устройства электроники, способные принимать сигналы от разных цифровых и аналоговых датчиков, подключенных к нему, как к основе. Поэтому в контексте данной статьи, речь будет идти о платах.
Обзор драйвера A4988
Шаговые двигатели представляют собой электромеханические устройства, задачей которых является преобразование электрических импульсов в перемещение вала двигателя на определенный угол. Достоинствами шаговых двигателей по сравнению с простыми являются:
- Высокая точность позиционирования и повторяемости — качественные ШД имеют точность не хуже 2,5 % от величины шага, при этом данная ошибка не накапливается при последующих шагах;
- Шаговый двигатель может быстро стартовать, останавливаться и выполнять реверс;
- Четкая взаимосвязь угла поворота ротора от количества входных импульсов (в штатных режимах работы) позволяет выполнять позиционирование без применения обратной связи;
- Шаговые двигатели обеспечивают получение сверхнизких скоростей вращения вала без использования редуктора;
- Шаговые двигатели работают в широком диапазоне скоростей, поскольку. скорость напрямую зависит от количества входных импульсов.
Шаговые двигатели применяются там, где требуется высокая точность перемещений. Примеры использования – принтеры, факсы и копировальные машины, станки с ЧПУ, 3D-принтеры. Для управления шаговыми двигателями используют специальные устройства – драйверы шаговых двигателей. Популярный драйвер шагового двигателя А4988 (рис. 1) работает от напряжения 8 — 35 В и может обеспечить ток до 1 А на фазу без радиатора (и до 2 A с радиатором). Модуль A4988 имеет защиту от перегрузки и перегрева. Одним из параметров шаговых двигателей является количество шагов на один оборот 360°. Например, для шаговых двигателей Nema17 это 200 шагов на оборот, т.е 1 шаг равен 1.8°. Драйвер A4988 позволяет увеличить это значение за счёт возможности управления промежуточными шагами и имеет пять режимов микрошага (1(полный), 1/2, 1/4, 1/8 и 1/16).
Рисунок 1. Драйвер биполярных двигателей A4988
Смешивание шаговых драйверов A4988 и DRV8825
Да, можно! (протестировано и замечательно работает)
Я решил протестировать на моей референсной P3Steel. Как указано ранее, я использовал шаговый драйвер DRV8825 для оси X и Y, а шаговый драйвер A4988 для оси Z и для экструдера. у меня уже были маленькие радиаторы на драйвере A4988 (не показано выше, сделаю снимки позже) так что я просто оставил их там, с другой стороны я не установил радиаторы на драйвер DRV8825 (см. ниже объяснения этого). Двенадцати вольтовый 80mm вентилятор обеспечивает активное охлаждение для шаговых драйверов и установленных на RAMPS 1.4 MOSFETs транзисторов. Шаговые драйверы DRV8825 настроены на 1/32 микрошага, а шаговые драйверы A4988 установлены в 1/16 микрошага. Что касается настройки силы тока, я использую два кардинально разных шаговых двигателя для оси X и оси Y, но в основном я использую все шаговые двигатели в этом принтере на 70% от их номинального максимального тока и они прекрасно работают и едва греются на ощупь.
После перекомпиляции Marlin с удвоением от оригинальной прошивки количества шагов/мм для оси X и Y и заливки в Arduino Mega 2560, я напечатал пару деталей для калибровки.
Честно говоря, я был приятно удивлен тем, насколько плавным стало движение по осям X и Y с использованием 1/32 микрошага. Я подозреваю что был неприятный резонанс с шаговым двигателем оси Y и тем как был настроен драйвер A4988, но теперь резонанс полностью исчез, и принтер стал печатать более тише и меньше вибрировать чем раньше. Если непредвиденные проблемы не возникнут в ближайшие несколько часов печати, я вероятно, никогда не вернусь на предыдущую конфигурацию.
Программы для ЧПУ станков на русском
Для работы станков с ЧПУ требуются управляющие программы. Они служат для создания макетов будущих изделий, введения команд управления и чтения инструкций, написанных на специальном языке программирования. Такое программное обеспечение должно быть функциональным и простым в использовании.
Правильно выбрать подходящую программу для станка с ЧПУ — это первый шаг к освежению работы на ЧПУ станке.
Создаем G-code для плоттера в программе Carbide Create.
Для того чтобы создать G-code для плоттера, воспользуемся программой Carbide Create. Данная программ позволяет создавать G-code для фрезерных ЧПУ станков. Для наших целей её тоже можно использовать, но с определёнными ограничениями, о которых расскажу по мере их возникновения.
Для того чтобы скачать программу, в поиске «Яндекс» указываем название программы «Carbide Create». Переходим на сайт разработчика.
Прокрутив страницу ниже, вы увидите заголовок «Carbide Create CAD/CAM Software». Нажимаем на кнопку «See Carbide Create», чтобы подробнее почитать о программе.
После чего вы получите письмо, на указанный ранее электронный адрес. В письме будет ссылка на скачивание программы «Click here to download Carbide Create».
После нажатия на которую вы сможете скачать программу для вашей операционной системы. К сожалению, для Linux версии нет.
Создание G-Code в программе Carbide Create.
Запускаем программу Carbide Create и выполним настройки. Для этого нажмем на иконку шестеренки, в блоке кнопок «Setup».
В открывшемся окне первым делом нужно настроить единицы измерение «мм», внизу окна и нажать на кнопку «Ок». Затем повторно открыть данное окно и произвести настройки размера рабочего поля станка. Поднятие оси Z, толщину заготовки и нулевую точку, в левом нижнем углу. Сохраняем настройки.
Затем загрузим векторное изображение, которое мы создали в программе Inkscape. Для этого в меню выбираем «File-> Open…».
Выбираем файл «Пример1» и нажимаем на кнопку «Открыть».
Чтобы начать работать с нашим изображением выделяем его.
На панели «Transform» находятся инструменты, которые позволят перемещать, вращать, изменять размер изображения.
Для создания G-Code необходимо перейти во вкладку «Toolpaths». Здесь на панели «2D Toolpaths», можно выбрать вид обработки. Нас интересует «Controur».
В открывшемся окне настройки обработки, нужно выбрать инструмент обработки. В программе обширная библиотека фрез. Выбираем любую с максимальной скоростью обработки, так как вручную задать скорость обработки мы не можем. Это один из основных минусов данной программы для создания кода, для плоттера. Но при этом большой плюс для составления управляющей программы для фрезерного станка.
После выбора инструмента, нужно указать высоту по оси Z и обработку по линии, и нажать на кнопку «Ок».
Обработка по контру создана. Сейчас нам нужно создать заштриховку. Для этого будем использовать операцию выборки для фрезерного станка.
В окне настройки, указываем параметры как на картинке. Это позволит сделать обработку максимально быстро.
Мы добавили 2 операции обработки, в конце каждой операции указанно ориентировочное время выполнения в минутах.
Для создания G-Code нажимаем на кнопку «Save GCode», указываем название файла «Пример1.nc» и сохраняем его.
G-Code готов, сейчас можно проверить что у нас получилось, но для этого понадобится управляющая программ для ЧПУ станка.
-
Обливион как найти дж скара
-
Что такое крафт маркет
-
Black desert как передать вещи другому персонажу
-
Cut control что это
- Infinitode 2 как фармить
А как насчет взаимодействия
Удивительно слушать заявления некоторых умельцев, что для ЧПУ Ардуино не подходит, тем более, невозможен симбиоз mach3 arduino, якобы они не желают взаимодействовать.
Другие же уверены в противном: ардуину можно реализовать для ЧПУ при помощи трёх вариантов:
- Полностью автономный контроллер.
- Плата-интерпретатор отвечает за движения, но они рассчитываются на компьютере.
- Плата-транслятор (переходник) – выполняет роль виртуального ЛПТ-порта.
Многие пользователи в сети, у которых проблемная электроника, просят посоветовать им программу, чтобы станки под управлением таковой, могли работать чётко и бесперебойно. Фрезеры на станке призваны заготовку обрабатывать равномерно, выполняя сигналы программного блока.
Драйвер двигателя на микросхеме HG7881
HG7881 – двухканальный драйвер, к которому можно подключить 2 двигателя или четырехпроводной двухфазный шаговый двигатель. Устройство часто используется из-за своей невысокой стоимости. Драйвер используется только для изменения направления вращения, менять скорость он не может.
Плата содержит 2 схемы L9110S, работающие как H-мост.
Характеристики драйвера HG7881:
- 4-контактное подключение;
- Питание для двигателей от 2,5 В до 12 В;
- Потребляемый ток менее 800 мА;
- Малые габариты, небольшой вес.
Распиновка:
- GND – земля;
- Vcc – напряжение питания 2,5В – 12В;
- A-IA – вход A(IA) для двигателя A;
- A-IB – вход B (IB) для двигателя A;
- B-IA – вход A(IA) для двигателя B;
- B-IB – вход B (IB) для двигателя B.
В зависимости от поданного сигнала на выходах IA и IB будет разное состояние для двигателей. Возможные варианты для одного из моторов приведены в таблице.
IA | IB | Состояние мотора |
Остановка | ||
1 | Двигается вперед | |
1 | Двигается назад | |
1 | 1 | Отключение |
Подключение одного двигателя к Ардуино изображено на рисунке.
Модуль L293D подает максимальный ток в 1,2А, в то время как на L298N можно добиться максимального тока в 4 А. Также L293D обладает меньшим КПД и быстро греется во время работы. При этом L293D является самой распространенной платой и стоит недорого. Плата HG7881 отличается от L293D и L298N тем, что с ее помощью можно управлять только направлением вращения, скорость менять она не может. HG7881 – самый дешевый и самый малогабаритный модуль.
Питание
- Напряжение питания логической части драйвера, от 3 до 5,5 В постоянного тока, подаётся на выводы GND и VLOG.
- Напряжение питания двигателя, от 8 до 35 В постоянного тока, подаётся на выводы GND и VMOT.
Ограничение максимального тока двигателя
Если на двигатель подать напряжение выше его номинального значения, это приведёт к увеличению скорости шага. Но увеличение напряжения приведёт и к увеличению силы тока, а превышение максимального тока двигателя, выведет его из строя.
Но драйвер A4988 позволяет ограничивать максимальный выходной ток двигателя (настраивается подстроечным резистором на плате драйвера). Таким образом можно увеличить напряжение в сети питания двигателя, предварительно ограничив выходной ток, по следующей формуле:
IMAX = VREF * 8 * RSENSE, следовательно, VREF = IMAX / (8 * RSENSE) где:
- IMAX — максимальный ток выдаваемый драйвером (не должен превышать номинальный ток двигателя).
- VREF — опорное напряжение (регулируется подстроечным резистором). Это напряжение можно измерить между любым выводом GND и центральным выводом подстроечного резистора (металлическая вращающая часть).
- RSENSE — токочувствительное сопротивление (номинал указан на корпусе резистора, см. картинку ниже). Надпись на резисторе «R200» значит, что его сопротивление равно 0,200 Ом = 0,2 Ом. Надпись на резисторе «R100» значит, что его сопротивление равно 0,100 Ом = 0,1 Ом. Надпись на резисторе «R050» значит, что его сопротивление равно 0,050 Ом = 0,05 Ом.
Расположение деталей на плате драйвера: Синим цветом обведены токочувствительные резисторы RSENSE = 0,1 Ом. Так как драйвер ограничивает токи в двух обмотках двигателя, то и резисторов RSENSE на плате, тоже два. Зелёным цветом обведён подстроечный резистор, для регулировки опорного напряжения VREF. |
В представленной выше формуле, значения IMAX (номинальный ток двигателя) и RSENSE (токочувствительное сопротивление) являются константами, а единственный параметр который можно менять, это опорное напряжение VREF. Настройка опорного напряжения VREF осуществляется подстроечным резистором, без подачи питания двигателя VMOT. Состояния на входах «ENABLE», «STEP», «DIR», «MS-3», «MS-2», «MS-1» драйвера, не влияют на настройку опорного напряжения VREF (если их логические уровни не меняются во время настройки). Настройку можно выполнять даже при отключённом от драйвера двигателе.
Пример
Настройка ограничения максимального тока для двигателя с номинальным током в 1 А. IMAX = 1 А. RSENSE = 0,1 Ом. VREF = IMAX / (8 * RSENSE) = 1 / (8 * 0,1) = 1,25 В. Подаём питание логической части драйвера VLOG. Не подаём питание двигателя VMOT. Подключаем вольтметр черным щупом к любому выводу GND, а красным щупом к центральному выводу подстроечного резистора (металлическая вращающая часть). Поворачивая вращающуюся часть подстроечного резистора, добиваемся показаний на вольтметре = 1,25 В. Теперь можно подать питание двигателя VMOT. Ток протекающий через его обмотки не будет превышать 1 А.
Примечание
Обратите внимание на картинку ниже, на ней показаны токи протекающие через обмотки двигателя в различных режимах размера шага. Если Ваш двигатель будет работать в полношаговом режиме, то максимальный ток будет ограничен 70,71% от установленного IMAX
Значит для полношагового режима работы это нужно учесть при расчёте IMAX. Так для приведенного выше примера, в полношаговом режиме работы, IMAX должен быть равен 1 А * 100 / 70,71 = 1A / 0,7071 = 1,41 A. Следовательно VREF = 1,41 / (8 * 0,1) = 1,7625 В. Но это только для полношагового режима работы двигателя.
Примечание
Чип A4988 может работать с выходным током до 2 А при наличии радиатора. Но выходной ток ограничивается напряжением VREF которое снимается с подстроечного резистора на плате драйвера. Максимальное значение VREF зависит от номиналов подстроечного резистора, и резистора R1 который входит в состав резистивного делителя. Производители устанавливают на платах резисторы различных номиналов, следовательно, максимальный ток для разных плат может отличаться. Для платы указанной на картинке, максимальное значение VREF = 1,35 В, следовательно максимальный выходной ток (IMAX) = VREF * 8 * RSENSE = 1,35 * 8 * 0,1 = 1,08 А.
Зачем нужны шилды
Обладатели самодельных устройств наслышаны о платах расширения – Arduino cnc shield, применение которых расширяет функционал фрезерного оборудования.
Обычно шилду изготавливают под форм-фактор платы. Используют и несколько шилдов одновременно, устанавливая их на микроконтроллер (один на другой). Спектр их применения:
- при помощи официального устройства Arduino – Ethernet cnc shield можно добиться независимости проекта от ПК, да и для хостинга веб-сервера его используют;
- 4 Relay Shield – возможность для того, чтобы подключать 4-х периферийные устройства;
ВАЖНО: надо соблюдать осторожность с контактами этого устройства, чтобы не повредить Arduino
- Рrotoshield – весьма полезный шилд в момент, когда собирается схема;
- LCD Shield позволяет информацию с Arduino выводить напрямую на периферийный экран;
- еnergy Shield – расширенные возможности для питания на Arduino. Реальна подзарядка мобильников и гаджетов;
- мotor shield обеспечивает управление большим числом моторов и их защиту;
- SD Card Shield служит для обработки и хранения больших массивов информации;
- Wi-fi Shield, подключенный к серийному порту, обеспечит дистанционное управление приводами роботизированных проектов;
- GPRS Shield оснащается антеннами для использования сети GSM/GPRS;
- E-Ink shield – путь для использования технологии электронных чернил, дисплею нужен для питания минимум энергии;
- мusic Shield способен воспроизводить музыку через Arduino в отличном качестве.
Реально создать лазерный 3D принтер, ЧПУ станок, употребляя бюджетные платы Arduino. С платой расширения CNC Shield можно работать на станках с числовым программным управлением, в гравировальной или фрезерной машине. А шилд для управления тремя ШД (трехосевой станок) имеет три разъема, чтобы не было проблем с каждым драйвером при подключении.
Как работает драйвер шагового двигателя A4988
Драйвер шагового двигателя A4988 имеет транслятор, который облегчает управление шаговым двигателем. Когда импульсы подключены к выводу STEP, драйвер контролирует катушку, которая должна быть подключена к источнику питания, и то, как она должна быть подключена к источнику питания.
С помощью транслятора и логического контроллера, и в зависимости от количества поступающих импульсов, двигатель совершает одинаковое количество шагов.
Поскольку драйвер определяет все, то нам только необходимо на вывод STEP отправить необходимое количество импульсов соответствующее количеству шагов. Вывод модуля DIR используется для определения направления вращения двигателя и может быть установлен как «1» или «0», в зависимости от желаемого направления.
Внутри драйвера находятся MOSFET-транзисторы, которые позволяют драйверу подавать на катушку ток до 2 А.
Этот драйвер также имеет функцию микро-шага, которая позволяет разделить количество шагов на более мелкие части. То есть, если у нас есть шаговый двигатель, который совершает 200 шагов за один оборот, то с помощью этой функции мы можем достичь большего количества шагов, то есть достичь более высокого разрешения двигателя.
Таким образом, у нас есть полный шаг, 1/2, 1/4, 1/8, 1/16 шага. При использовании этой функции мы должны иметь в виду, что в этом случае двигатель будет выполнять больше шагов за один оборот, и это также займет больше времени.
Для выбора функции микро-шага на выводы MS1, MS2, MS3 необходимо подать сигнал в соответствии с желаемым микро-шагом согласно следующей таблице:
Если мы хотим, чтобы двигатель постоянно работал в режиме полного шага, то выводы MS1, MS2, MS3 можно не подключать.
Где купить шаговый двигатель
Самые простые двигатели Варианты на сайте AliExpress:
Шаговый двигатель Nema17 42BYGH 1.7A (17HS4401-S) для 3D принтера | Набор из 5 шаговых двигателей ULN2003 28BYJ-48 с платам драйверов для Ардуино | Шаговый двигатель с модулем драйвера 5V Stepper Motor 28BYJ-48 + ULN2003 |
Еще один вариант шагового двигателя для Arduino 28BYJ-48 5V 4 Phase DC Motor + ULN2003 Drive Test Board | Набор из трех шаговых двигателей Nema17 Stepper Motor 42BYGH 1.7A (17HS4401) для 3D приентера | AliExpress.com Product – 3D Printer Parts StepStick A4988 DRV8825 Stepper Motor Driver With Heat sink Carrier Reprap RAMPS 1.4 1.5 1.6 MKS GEN V1.4 board |
Общие принципы работы шаговых двигателей
Внешний вид шагового двигателя 28-BYJ48 (купить на AliExpress) представлен на следующем рисунке:
Первый вопрос, который напрашивается при взгляде на этот рисунок – почему в отличие от обычного двигателя из этого шагового двигателя выходят 5 проводов различных цветов? Чтобы понять это давайте сначала разберемся с принципами работы шагового двигателя.
Начнем с того, что шаговые двигатели не вращаются, а “шагают”, поэтому они и называются шаговыми двигателями. То есть в один момент времени они будут передвигаться только на один шаг. Чтобы добиться этого в устройстве шаговых двигателей присутствует несколько катушек и на эти катушки нужно подавать питание в определенной последовательности чтобы двигатель вращался (шагал). При подаче питания на каждую катушку двигатель делает один шаг, при последовательной подаче питания на катушки двигатель будет совершать непрерывные шаги, то есть вращаться. Давайте более подробно рассмотрим катушки, присутствующие внутри шагового двигателя.
Как можно видеть из рисунка, двигатель имеет однополярную катушку с 5 выводами. Но фактически это 4 катушки, на которые нужно подавать питание в определенной последовательности. На красные провода необходимо подать +5V, на остальные 4 провода необходимо подать землю чтобы запустить в работу соответствующую катушку. Мы будем использовать плату Arduino чтобы подавать питание на эти катушки в определенной последовательности и тем самым заставлять двигатель вращаться. Более подробно ознакомиться с принципами работы шаговых двигателей можно в статье про подключение шагового двигателя к микроконтроллеру AVR.
Так почему же этот двигатель называется 28-BYJ48? Честно говоря, мы не знаем точного ответа на этот вопрос. Некоторые наиболее важные технические характеристики этого шагового двигателя приведены на следующем рисунке.
На первый взгляд от такого количества характеристик может закружиться голова, но давайте попробуем выделить из них самые важные, те, которые нам понадобятся для дальнейшей работы. Во-первых, мы знаем, что это шаговый двигатель 5V, поэтому необходимо подавать на красный провод 5V. Также мы знаем что это четырехфазный шаговый двигатель поскольку в нем четыре катушки. Передаточное число этого двигателя — 1: 64. Это означает, что вал, который вы видите снаружи, сделает одно полное вращение в том случае, когда двигатель внутри сделает 64 оборота. Это происходит благодаря шестерням, которые включены между двигателем и выходным валом. Эти шестерни помогают в увеличении крутящего момента.
Еще одним важным показателем, который нам следует знать, является угол шага: 5.625°/64. Это значит что когда двигатель сделает последовательность в 8 шагов он будет поворачиваться на 5.625° при каждом шаге и за один полный оборот он сделает 64 шага (5.625*64=360).
Расчет шагов на оборот для шагового двигателя
Важно знать, как рассчитать количество шагов за один оборот для вашего шагового двигателя, потому что только тогда вы можете эффективно его запрограммировать. В Arduino для управления двигателем мы будем использовать 4-шаговую последовательность, поэтому угол шага будет составлять 11.25°. Поскольку изначально он равен 5.625°(приведен в даташите), то для 8 шаговой последовательности получим 11.25° (5.625*2=11.25)
Поскольку изначально он равен 5.625°(приведен в даташите), то для 8 шаговой последовательности получим 11.25° (5.625*2=11.25)
В Arduino для управления двигателем мы будем использовать 4-шаговую последовательность, поэтому угол шага будет составлять 11.25°. Поскольку изначально он равен 5.625°(приведен в даташите), то для 8 шаговой последовательности получим 11.25° (5.625*2=11.25).
Справедлива следующая формула:
Количество шагов за оборот = 360 / угол шага.
В нашем случае 360/11.25 = 32 шага за оборот.
Зачем нужен драйвер мотора для управления шаговым двигателем
Большинство шаговых двигателей будут работать только с помощью модуля драйвера мотора. Это связано с тем, что микроконтроллер (в нашем случае плата Arduino) не может обеспечить достаточный ток на своих контактах ввода/вывода для работы двигателя. Поэтому мы будем использовать внешний драйвер мотора для управления нашим шаговым двигателем — модуль ULN2003 (купить на AliExpress). В сети интернет можно найти рейтинги эффективности различных драйверов мотора, но эти рейтинги будут меняться в зависимости от типа используемого шагового двигателя. Основной принцип, которого следует придерживаться при выборе драйвера мотора – он должен обеспечивать достаточный ток для управления шаговым двигателем.