Линейный шаговый двигатель NEMA17

Линейный шаговый двигатель

Привет, друзья! Мне выпала удачная возможность познакомить вас с, разрывающей мозг неокрепших автоматчиков, модификацией шагового двигателя из популярной линейки Nema17.

Это чудо называется — линейный шаговый двигатель. И да, он создан не для вращения шпильки, а для её линейного перемещения. Все, кто с ним впервые сталкиваются, начинают с поиска гайки под резьбу его шпильки по старинке. Но прикол в том, что гайка ему не нужна абсолютно. Потому что она уже есть внутри двигателя. Она здесь вращается вместе с ротором. Она закреплена внутри ротора.

Теперь давайте подключим и покрутим наш линейный шаговый двигатель. 

Нам понадобится любой драйвер для шаговых двигателей, с максимальным током выше 1,68А. Я использовал драйвер TB6600 для скорости и простоты настройки и монтажа.

Контроллер Arduino Nano здесь выполняет функцию генератора импульсов с периодом 1мс.

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

А теперь я поменяю направление вращения ротора, подав противоположный сигнал на вход DIR драйвера.

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

Фиксаторов у шпильки никаких нет, и она может выкрутиться полностью из двигателя, но потом её без труда можно руками закрутить назад.

С двигателем шла вот такая документация с чертежом. Видим обычную документацию биполярного шагового двигателя. Здесь немного странно представлена распиновка двигателя. Цвета проводов соответствуют, а номера выводов нет. Сила удержания указана небольшая и это, похоже, касается вращательного движения, но на самом деле сила линейного перемещения у двигателя внушительная – руками не остановишь. Ведь эта система представляет собой червячную передачу. Что еще интересно по этим параметрам: точность перемещения шпильки получается равной 2мм / 200 шагов = 0,01мм/шаг. Как вам такое?

Я вижу один основной минус в использовании подобных механических решений. Это то, что вручную такую шпильку нельзя будет прокручивать во время наладки и ремонта конечного устройства. Для поворота потребуется или освободить двигатель от крепления или конец шпильки. И еще одним минусом можно назвать то, что шпилька может выскакивать из двигателя в крайнем положении, если её ход ничем не ограничить механически. А остальное все – плюсы. Поддержите нас лайком, подпиской и до новых встреч.

Управление шаговым двигателем с Arduino

Статьи

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

Чем больше устройств внешней периферии установлено в составе Ардуины, тем большим функционалом он обладает: USB, Ethernet, GSM, card-reader и другие. Дополнительный аналоговый джойстик позволяет управлять системой более точно. Дополнительная плавность движений организуется при помощи регулировки движения по трем осям.

Аппаратно вычислительная платформа Arduino

Программирование модуля производится на языке С++, что дает возможность использовать программирование шагового двигателя с ардуины как профессионалам, так и любителям.

Модуль управления Motor Shield

Отдельный модуль Motor Shield используется в составе Ардуино для управления шаговым двигателем. В зависимости от модели он поддерживает различные типы силовых установок:

  • Постоянного тока
  • Шаговые двигатели (биполярные и униполярные)
  • Сервоприводы

При помощи этого устройства может быть подключено одновременно несколько силовых установок в различных комбинациях. Разные модели Motor Shield используют различные комбинации. Имейте ввиду, что для соединения Arduino и модуля потребуется отдельный переходник, поскольку штатные разъемы не обеспечивают абсолютной совместимости плат.

Микросхема (например L293D) является драйвером. Для управления силовой установки используется одновременно две микросхемы. Защита по напряжению организована посредствам обратных диодов.

Схема имеет силовую и слаботочную цепи питания. Силовая цепь может быть запитана от внешнего источника (6…24В) или от управляющей платы. Для слаботочной цепи предусматривается питание от стабилизированного источника 5В. Подключение внешнего питания осуществляется при установленном джемпере, в обратном случае может возникнуть замыкание.

Увеличить максимальное пороговое напряжение модуля управления с 25 до 36В возможно при помощи использования в составе микросхемы отдельных конденсаторов.

Программное обеспечение для Arduino

Платформа Ардуино уже имеет штатную библиотеку софта, которая находится в библиотеке Hardware. Тем не менее для работы с Motor Shield существуют дополнительные библиотеки, которые в значительно мере упрощают работу, а также предусматривают поддержку дополнительных режимов работы.

Управление шаговым двигателем постоянного тока с ардуины

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

Выводы агрегата подключаются к Motor Shield и электрической цепи модуля GND. Количество шагов на оборот и номер канала задается командой Stepper. В зависимости от использования первых двух или третьего и четвертого канала при программировании используется команда 1 и 2 соответственно.

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

Индивидуальная настройка движения ротора программируется командой Step и предусматривает следующий функционал:

  • Задание часа шагов
  • Движение вперед и назад
  • Типы шагов: при помощи одной обмотки, с помощью двух обмоток, чередование режима 1 и 2, микрошаг

Отключение силовой установки осуществляется через команду release.

Драйвер шагового двигателя Me · GitBook

Обзор

Модуль драйвера шагового двигателя Me предназначен для точного управления биполярным шаговым двигателем. Когда импульсные сигналы вводятся в шаговый двигатель, он вращается шаг за шагом. Для каждого импульсного сигнала он поворачивается на определенный угол. Этот модуль имеет регулируемый ток привода и аппаратную настройку микрошага. Его можно использовать в 3D-печати, числовом управлении, музыкальном роботе Makeblock, точном управлении движением и т. д. Его красный идентификатор означает, что он должен быть подключен к порту с красным идентификатором на Makeblock Orion с помощью провода RJ25.

Технические характеристики

  • Напряжение привода: 6–12 В пост. тока
  • Максимальный ток: 1,35 А
  • Размеры: 51 x 24 x 18 мм (Д x Ш x В)

Функциональные характеристики

  • Совместимость с 4-проводным биполярным шаговым двигателем
  • Просто два порта ввода/вывода для управления шагом и направлением
  • Обеспечить регулируемый потенциометр для регулировки тока и изменения крутящего момента шагового двигателя
  • Обеспечьте встроенный DIP-переключатель для поддержки полного, половинного, 1/4, 1/8, 1/16 ступенчатого режима
  • Обеспечивает защиту от короткого замыкания заземления и защиту от короткого замыкания нагрузки
  • Защита от обратного хода – перепутанное подключение источника питания не повредит IC
  • Белая область модуля является эталонной зоной для контакта с металлическими балками
  • Поддержка программирования mBlock с графическим интерфейсом и применимо для пользователей всех возрастов
  • Используйте порт RJ25 для простого подключения
  • Предоставляет штыревой порт для поддержки большинства плат разработки, включая Arduino серии 9. 0012

Назначение контактов

Порт драйвера шагового двигателя Me имеет семь контактов, и их функции следующие: ID и модуль представляет собой моторный привод, вам необходимо подключить порт с красным идентификатором на Makeblock Orion при использовании порта RJ25.

На примере Makeblock Orion его можно подключить к портам № 1 и 2 следующим образом:

Рис. 1. Подключение драйвера шагового двигателя Me к Makeblock Orion

Примечание: при длительной работе платы привода микросхема будет выделять тепло. Обратите внимание на этот момент и при необходимости добавьте радиатор над платой, чтобы помочь чипу рассеивать тепло.

Подключение с помощью провода Dupont
Когда провод Dupont используется для подключения модуля к базовой плате Arduino UNO, его контакт EN должен быть подключен к низкому уровню, RST и SLP должны быть подключены к высокому уровню, STP и DIR должны быть подключен к цифровым портам (также может быть подключен только к контактам STP и DIR) следующим образом:

Рис. 1. Подключение драйвера шагового двигателя Me к Arduino UNO

Примечание: при использовании проволоки Dupont к модулю необходимо приварить контактную колодку.

Руководство по программированию

Программирование Arduino

Если вы используете Arduino для написания программы,
library Makeblock-Library-master следует вызывать для управления драйвером шагового двигателя Me. Эта программа служит для того, чтобы двигатель вращался по требованию посредством программирования Arduino. (Введите целое число от 0 до 4 на вкладке управления последовательным портом и отправьте его).

Программирование mBlock

Драйвер шагового двигателя Me поддерживает среду программирования mBlock, и ее инструкции представлены следующим образом:

Это пример использования mBlock для управления драйвером шагового двигателя Me. модуль. mBlock может заставить шаговый двигатель снова вращаться с более низкой скорости на более высокую скорость и
снова.

Принципиальный анализ

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

Основным компонентом модуля драйвера шагового двигателя Me является микрошаговый драйвер A4988, который предназначен для работы биполярного шагового двигателя в таких режимах шага, как полный, половинный, 1/4, 1/8 и 1/16 шага. Когда он используется, просто управляйте STEP и DIR. Например, в полношаговом режиме двигатель должен вращать круг на 200 шагов (т. е. 1,8° за шаг). Если требуется более высокая точность, мы можем выбрать другой режим. Для
Например, мы выбираем режим 1/4 шага (то есть 0,45° на шаг), а затем двигатель должен вращаться на 800 микрошагов, чтобы завершить круг.

Таблица шаговых режимов этого модуля:

Модуль имеет потенциометр, который можно использовать для регулировки крутящего момента двигателя. слишком большой крутящий момент.

Схема

Сколькими шаговыми двигателями может управлять Arduino

Arduino

5 месяцев назад

от Kashif

Шаговые двигатели — это тип синхронных двигателей постоянного тока, в которых цикл вращения делится на несколько небольших шагов. Для них существует множество применений, начиная от 3D-принтеров и заканчивая станками с ЧПУ. Шаговые двигатели важны там, где требуется точность и аккуратность движущихся объектов. Используя Arduino, мы можем очень легко управлять движением шагового двигателя, что помогает в создании нескольких проектов робототехники, таких как роботы-люди. Теперь давайте обсудим, сколько шаговых двигателей мы можем интегрировать с одной платой Arduino.

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

Шаговыми двигателями можно управлять с высокой степенью точности без какой-либо системы обратной связи. Эти двигатели могут разделить свой полный цикл вращения на несколько небольших дискретных шагов в соответствии с цифровым вводом, полученным от платы Arduino. Каждый цифровой импульс от Arduino может изменить движение шагового двигателя на количество шагов или долю полного цикла, обычно называемого «микрошагом» .

Как правило, шаговые двигатели делятся на две категории:

  • Биполярный
  • Однополярный

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

Для управления этими шаговыми двигателями нам нужен внешний драйвер двигателя. Эти драйверы двигателей необходимы, потому что Arduino не может удерживать ток более 20 мА , и обычно шаговые двигатели потребляют намного больше тока. Еще проблема откат , шаговые двигатели имеют магнитные компоненты; они будут продолжать вырабатывать электричество даже при отключении питания, что может привести к отрицательному напряжению, достаточному для повреждения платы Arduino. Итак, вкратце драйверы двигателей необходимы для управления шаговыми двигателями. Одним из часто используемых драйверов двигателей является модуль A4988 .

На рисунке показано, как униполярный шаговый двигатель подключен к Arduino с помощью A49.Модуль драйвера двигателя 88:

Чтобы узнать больше о том, как мы можем подключить шаговый двигатель к Arduino, нажмите здесь.

Теперь мы перейдем к основной части, чтобы узнать, сколько шаговых двигателей может поддерживать Arduino.

Сколько шаговых двигателей может контролировать Arduino

Arduino может управлять любым количеством шаговых двигателей, все зависит от используемой платы и количества входных и выходных контактов, доступных на плате Arduino. Arduino Uno имеет в общей сложности 20 доступных контактов ввода-вывода, из которых 14 цифровых и 6 аналоговых контактов. Однако мы также можем использовать аналоговые контакты для управления шаговым двигателем с помощью драйвера двигателя.

При использовании модуля драйвера двигателя A4988 для управления одним шаговым двигателем требуется до двух контактов, что означает, что Arduino Uno может одновременно поддерживать до 10 шаговых двигателей. 10 двигателей также включают контакты Tx и Rx на плате Arduino, помните, что при использовании этих контактов мы больше не можем загружать или отлаживать скетчи Arduino. Чтобы избежать этого, коммуникационные контакты должны оставаться свободными, чтобы последовательная передача данных могла быть возможна в любое время.

Несколько шаговых двигателей с использованием внешнего драйвера двигателя

Один Arduino может управлять несколькими шаговыми двигателями. Все зависит от того, какой модуль драйвера двигателя мы используем с Arduino. Выводы Arduino играют важную роль в управлении несколькими шаговыми двигателями.

Как упоминалось ранее, если мы используем модуль драйвера двигателя A4988 с Arduino Uno, он может управлять до 10 двигателями. Эти 10 шаговых двигателей также имеют подключение к последовательным контактам Tx и Rx. Пока эти два вывода используются, Arduino больше не может осуществлять последовательную связь.

Драйвер двигателя A4988 использует только два контакта STEP и DIR. Этих выводов достаточно, чтобы легко управлять одним шаговым двигателем. Если мы подключаем к Arduino несколько степперов, то для каждого из них требуется отдельный модуль драйвера двигателя.

На схеме ниже мы подключили 9 шаговых двигателей с помощью модуля A4988. Все они берут два контакта управления от Arduino.

Использование отдельного модуля драйвера двигателя имеет несколько преимуществ:

  • Драйвер двигателя может самостоятельно управлять логикой шага, что освобождает Arduino для выполнения другой задачи.
  • Уменьшение общего количества соединений, что приводит к управлению большим количеством двигателей по одному
  • Драйвер двигателя

  • позволяет пользователям управлять двигателями без какого-либо микроконтроллера, просто используя одну прямоугольную волну.

Несколько шаговых двигателей с использованием протоколов I2C между двумя Arduino

Другой способ управления несколькими шаговыми двигателями — подключение нескольких плат Arduino с использованием протоколов связи I2C. I2C имеет преимущество конфигурации Master-Slave , которая позволяет одному устройству управлять многими без необходимости использования внешних периферийных устройств и проводов. Используя I2C, мы можем увеличить количество плат Arduino, что приведет к увеличению количества контактов. Все эти контакты могут очень легко управлять шаговыми двигателями.

На приведенной ниже диаграмме показано, как подключены устройства Master-Slave, и с помощью ограничения количества проводов мы можем управлять несколькими шаговыми двигателями.

Две платы Arduino можно соединить с помощью контактов SDA и SCL , которые находятся на аналоговых контактах A4 и A5 соответственно. Таким образом, две платы Arduino соединяются в конфигурации Master-Slave. Теперь каждая из этих плат Arduino может поддерживать 8 шаговых двигателей, исключая две пары проводов, одну для последовательной связи и одну, которую мы только что использовали для связи I2C.

Аналоговый контакт Arduino Контакт I2C
А4 ПДД
А5 СКЛ

Заключение

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