Arduino: Шаговые двигатели
Статья проплачена кошками – всемирно известными производителями котят.
Если статья вам понравилась, то можете поддержать проект.
Шаговые двигатели благодаря своей точности широко используются в робототехнике, ЧПУ-станках, 3D-принтерах. В отличие от двигателей постоянного вращения, один оборот «шаговика» состоит из множества микроперемещений, которые и называют шагами. У нас есть возможность программно повернуть вал двигателя ровно на 90 градусов, и зафиксировать его в этом положении. Сервомотор является упрощённым аналогом шагового двигателя.
Шаговые двигатели бывают униполярные и биполярные.
В среде Arduino самым популярным шаговым двигателем является 28BYj-48. Этот миниатюрный шаговик имеет встроенный редуктор, который позволяет совершать очень точные перемещения выходного вала.
Драйвер униполярного шагового двигателя ULN2003
Мы не можем подключить этот двигатель напрямую к контроллеру, так как ток на его обмотках может достигать 160 мА, что очень много для выводов Arduino.
На плате на одной стороне есть семь контактов для микроконтроллера: IN1..IN7, из которых понадобятся только первые четыре. На другой стороне находятся пять контактов для двигателя, и в средней части платы есть ещё два контакта для питания. Также есть перемычка, разрывающая цепь питания двигателя.
Как правило, кабель двигателя 28BYj-48 уже имеет разъём с ключом, который вставляется в плату только в правильном положении. В противном случае, при подключении необходимо следовать цветовой схеме. Контакты IN1..IN4 можно подключить к любым цифровым выходам Arduino.
Можно самостоятельно подавать различные сигналы на выводы, заставляя мотор крутиться. Также есть готовые библиотеки. Например, Arduino IDE поставляется с библиотекой Stepper.
Коннектор JST-XH
Мотор соединяется с драйвером при помощи специального коннектора марки JST-XH. Соединить легко, а вот отсоединить проблематично. Каждый изощряется как может. Для изобретателя данного коннектора приготовлен отдельный котёл.
Дополнительные материалы
Ардуино: шаговый двигатель 28BYJ-48 и драйвер ULN2003
Реклама
#21. Подключаем к Arduino Шаговый двигатель 28BYJ-48 на драйвере ULN2003
Сегодня в уроке подключим шаговый двигатель 28BYJ-48 к Arduino и научимся вращать вал двигателя в разные стороны и изменять скорость вращения с помощью потенциометра и энкодера KY-040.
Кратко, что такое шаговый двигатель (ШД) – это двигатель, который способен осуществлять вращение на 1 шаг. Шаг — это угол, который обусловлен устройством каждого конкретного шагового двигателя.
Характеристики шагового двигателя 28BYJ-48:
Вот так выглядит схема шагового двигателя 28BYJ-48
Подавая сигналы в определённом порядке на выводы двигателя, двигатель можно вращать по часовой стрелке.
Для шагового режима.
Для полушагового режима.
Прямое подключение шагового двигателя 28BYJ-48 к Arduino.
В связи с тем, что двигатель 28BYJ-48 работает от 5в и при небольших токах, его можно подключить на прямую к Arduino.
Схема подключения к Arduino UNO будет следующая.
Для вращения ШД достаточно подавать сигналы по схеме, которую мы рассмотрели выше.
Для этого можно сделать массив подачи сигнала на пины микроконтроллера.
И в цикле выполнять каждую строчку массива. Но есть решение с более компактным кодом. Нашел я данный пример на канале Дмитрия Осипова. За что ему отельное спасибо!
Код для вращения в одну и в другую сторону будет вот таким.
ВНИМАНИЕ! Материалы для скачивания находятся внизу статьи!
Пример подключения шагового двигателя 28BYJ-48 (5V)с использованием драйвер ULN2003.
Также у Дмитрия Осипова есть код для изменения скорости вращения с помощью потенциометра. Я его немного доработал, сделал обработку нажатия кнопки без задержки в 500 мс. Сейчас двигатель стал вращаться в обратную сторону без видимой задержки.
Драйвер
устроен вот таким образом.
Подключим все по схеме и загрузим код в Arduino NANO.
Схема подключения для Arduino UNO будет аналогичной.
Как видим, двигатель без проблем вращается по часовой стрелке и против часовой, при нажатии на кнопку вращается в противоположном направлении. При вращении потенциометра в одну сторону – скорость уменьшается, при вращении в противоположном направлении скорость увеличивается.
ВНИМАНИЕ! Материалы для скачивания находятся внизу статьи!
Пример управления шаговым двигателем 28BYJ-48 с помощью Энкодера.
Для уменьшения количества элементов в схеме решил заменить потенциометр и тактовую кнопку на энкодер вращения KY-040. Как подключить энкодер вращения к Arduino рассказывал в предыдущем уроке.
Подключаем шаговый двигатель 28BYJ-48 и энкодер к Arduino по схеме.
Проводим небольшую доработку кода и получим вот такой результат.
Если нажать на энкодер, меняется направление вращения. А при вращении энкодера по часовой стрелке – скорость увеличивается. Если вращать против часовой стрелки – скорость снижается.
ВНИМАНИЕ! Материалы для скачивания находятся внизу статьи!
Вы также можете без проблем воспользоваться примером из стандартной библиотеки Stepper, которая позволит сделать тоже самое и при меньшем объёме кода. Но библиотека не даст вам понять, как это все устроено.
Пишите в комментариях, что бы вы хотели сделать на шаговых двигателях, и какие примеры вас интересуют. Чем больше будет откликов, тем чаше будут выходить проекты и уроки на сайте.
Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.
Всем Пока-Пока.
И до встречи в следующем уроке
Понравилась статья? Поделитесь ею с друзьями:
Файлы для скачивания
управления шаговым двигателем 28BYJ-48 с помощью Энкодера. ino | 4 Kb | 607 | Скачать Вы можете скачать файл. | |
управления шаговым двигателем 28BYJ-48 с помощью кнопки и потенциометра .ino | 5 Kb | 571 | Скачать Вы можете скачать файл. | |
с использованием библиотеки Stepper.ino | 1 Kb | 422 | Скачать Вы можете скачать файл. | |
Даташит на шаговый двигатель 28BYJ-48.pdf | 193 Kb | 279 | Скачать Вы можете скачать файл. |
Управление шаговым двигателем с 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.
L298N подключение к Ардуино – RadioRadar
Нет так давно мы рассматривали алгоритм сборки ЧПУ своими руками, где затрагивалась тема управления шаговыми двигателями, ведь именно они позволяют просто и точно спозиционировать фрезу в заданной точке.
Конечно, шаговые двигатели (ШД) используются не только в ЧПУ и 3D-принтерах, им есть масса и других применений. Например, вкупе с популярным “конструктором для взрослых”, Arduino, на базе которого можно создать всё что угодно. Однако, связка “Ардуино – шаговый двигатель” требует дополнительный элемент – драйвер.
Из-за того, что двигатель требует повышенного напряжения и силы тока, непосредственное подключение его к микроконтроллеру невозможно, напряжения логического нуля в +5В и силы тока в 40 мА не хватит для работы любого шагового двигателя. Функцию усилителя/переключателя берет на себя драйвер.
О нём мы и поговорим подробнее ниже.
L298N описание
Модуль L298N выполняет роль Н-моста (напряжение, прикладываемое к двигателю постоянного тока, может менять полярность для того, чтобы изменить направление вращения в противоположную сторону) и универсального драйвера для независимого управления сразу двумя двигателями постоянного тока или для одного шагового двигателя.
Модуль собирается на основе одноименной микросхемы (L298N).
К L298N можно подключить двигатели, питающиеся напряжением от 5 до 35 вольт. Управление может быть реализовано в активном или пассивном режимах.
1.Активный – доступно не просто включение и отключение вращения мотора, но и управление его скоростью.
2.Пассивный – контроллер будет понимать только логику “включить/выключить двигатель”. Управление уровнем выходного напряжения будет недоступно.
L298N – это облегчённая версия платы L293D. По сравнению с последней на L298N отсутствуют защитные диоды (их можно установить самостоятельно при необходимости защиты от скачков тока в процессе пуска двигателей).
Подключение
Чтобы логика управления была понятнее, сначала разберёмся с джамперами и клеммами на плате.
Рис. 1. Джамперы и клеммы на плате
К клеммникам 1 и 2 подключаются двигатели, логика подключения зависит от моделей двигателей и логики их работы.
Блок клемм 3 отвечает за подключение питания двигателей. Первый контакт – +12. На него подаётся питание от 5 до 12 вольт, если джампер 3 одет, и от 12 до 35 воль, если джампер 3 снят.
При питании до +12В встроенный стабилизатор сам генерирует питание для логической части схемы, поэтому контакт +5В можно не использовать.
Если джампер 3 снят, то контакт +5В требуется запитать отдельно.
Управляющие сигналы от Ардуино или с другого микроконтроллера должны подаваться на контакты IN1-IN4, ENA, ENB. В зависимости от логических уровней и конфигурации джамперов 1,2 будет подаваться питание на двигатели/двигатель.
Джамперы 1 и 2 отвечают за переключение между активным и пассивным режимами работы драйвера. Если джампер одет, то реализуется логика “пассивного” управления.
Теперь для наглядности рассмотрим пару реальных схем подключения.
Управление двумя двигателями постоянного тока
Схема соединения будет выглядеть следующим образом.
Рис. 2. Схема соединения
Напряжение питания двигателей ниже 12 вольт, значит джампер 3 установлен, джамперы 1 и 2 на контактах ENA и ENB сняты.
Стоит особое внимание уделить пинам на Ардуино с ШИМ-модуляцией (рядом с цифровым значением есть специальный символ “~”). Они необходимы для управления скоростью вращения вала (чем выше уровень напряжения, тем выше скорость).
Теперь о логике, на примере левого двигателя (см. изображение выше).
Таблица
Логический уровень на контакте ENA | Логический уровень на контакте IN1 | Логический уровень на контакте IN2 | Результат работы двигателя |
1 | 1 | 0 | Вращается по часовой стрелке |
1 | 0 | 1 | Вращается против часовой |
0 | 1 | 0 | Не вращается |
0 | 0 | 1 | Не вращается |
Логический уровень на контакте ENAЛогический уровень на контакте IN1Логический уровень на контакте IN2Результат работы двигателя
Получается, что контакт ENA отвечает за разрешение работы двигателя. А от комбинации на входах IN1, IN2 зависит направление вращения.
Если на контакт ENA подать не логическую единицу, а заданный уровень напряжения из доступного диапазона (0-255), то изменится скорость вращения.
Управление шаговым двигателем
Соединение схемы управления, включающей в себя драйвер, двигатель Nema17 и Arduino Nano, выглядит следующим образом.
Рис. 3. Соединение схемы управления,
Назначение контактов A+, A-, B+ и B- может отличаться на вашей модели привода, поэтому необходимо изучить документацию для определения правильного назначения.
Ввиду того, что логика работы данной схемы предполагает наличие на выходах только логических нулей и единиц, то джамперами 1 и 2 модуль L298N переключается в пассивный режим.
Скетч для работы с шаговым двигателем есть во встроенной библиотеке IDE для Ардуино (называется Stepper Library, найти её можно так – File -> Examples -> Stepper).
Константа stepsPerRevolution отвечает за количество шагов в одном обороте, по умолчанию установлено значение 200. Его необходимо изменить, если модель вашего двигателя имеет другой показатель.
Метод myStepper.setSpeed() отвечает за настройку скорости вращения, по умолчанию в скетче указан показатель 60, его можно изменить под свои требования.
Вызов функции, инициализирующей вращение, осуществляется через метод step с параметром stepsPerRevolution, при отрицательном параметре вращение осуществляется в обратную сторону.
Пример с использованием этой библиотеки можно найти ниже во вложениях. Полную документацию по API можно найти на официальном сайте проекта.
Скетчи двигателей постоянного тока и шаговых двигателей можно найти здесь.
Автор: RadioRadar
Управление шаговым двигателем с помощью передатчика и приемника sirc
Управление шаговым двигателем с помощью передатчика и приемника SIRC
Во второй части этого проекта мы будем использовать данные декодированного инфракрасного сигнала из первой части для управления шаговым двигателем.
Взгляд назад и вперед
В первой части этого проекта описаны принципы ИК (инфракрасной) сигнализации в целом и SIRC (Sony IRC Remote Code) в частности. Схема приемника была представлена для обнаружения, декодирования и отображения информации, содержащейся в сигналах SIRC, с использованием микроконтроллера PICAXE.
Вторая часть проекта будет основываться на этом фундаменте, пересматривая униполярный шаговый двигатель 28BYJ-48, который был представлен в предыдущей статье. Кроме того, будет представлена схема ИК-передатчика, которую легко построить и использовать с домашним приёмником и ULN2003A, что позволяет удаленно запускать, останавливать и управлять направлением вращения шагового двигателя. Соответствующий код будет включен как для передатчика и приемника SIRC.
Аппаратное обеспечение приемника
В первой части вам показали, как создать приемник SIRC на паяльной макете, и вам было рекомендовано продублировать макет, представленный как можно ближе. Если вы сравните эту схему с приведенной ниже, вы увидите, что добавлено только несколько частей.
нажмите, чтобы увеличить
По сравнению с последней схемой в первой части есть только две новые электронные части (U3 и C2), один новый разъем (EXM1) и шесть новых проводов: по одному из черного, белого, синего, желтого, зеленого и красного. Черный провод соединяет общую землю с U3, красный провод передает от +5V до U3 и шаговый двигатель, а белые, синие, желтые и зеленые провода соединяют сигналы управления от U1 до U3. Кроме того, подключен шаговый двигатель 28BYJ-48. Кабель из пяти проводов соединяет выход U3 (через EXM1) с шаговым двигателем.
На фото выше обратите внимание, что нога 1 U1 (PICAXE 08M2) расположена слева внизу на макетной фотографии, а нога 1 U3 (ULN2003A) расположена в правом верхнем углу; эта схема упрощает подключение двух микросхем. Нога 1 из U1 и 1-й части U3 обозначены на фотографии белой точкой или пятном на корпусе чипа.
Вы можете вспомнить из этой статьи, что шаговый двигатель 28BYJ-48 часто поставляется со своей собственной панелью водителя, как показано на фотографии выше. Хотя это полезно в некоторых приложениях, двигатель также доступен без платы водителя. Подключение платы драйвера к паяльной мачте, а затем к двигателю создает громоздкую механическую компоновку. Кроме того, четыре светодиода и резисторы на плате драйвера имеют ограниченную полезность.
В этом случае легче отказаться от платы драйвера; просто подключите ULN2003A непосредственно к паяльной макете и подключите двигатель через EXM1. Сначала подключите кабель двигателя к разъему EXM1, а затем подключите разъем EXM1 к паяльной панели. Обратите внимание, что EXM1 делает хорошие электрические соединения с макетом, но легко выбивается.
Список деталей
В дополнение к компонентам приемника, перечисленным в первой части этого проекта, вам понадобятся те, которые приведены в таблице ниже.
Часть Ref. | Описание | Источник | Предмет номер. |
---|---|---|---|
У3 | IC, Darlington Pairs, 7-контур, ULN2003A | Digi-Key * | 497-2344-5-ND |
С2 | Конденсатор, керамика, 0, 1 мкФ, 50 В | Digi-Key | 399-9797-ND |
EXM1 | Разъем, монтаж на печатной плате, 5-контактный, верхний вход | Digi-Key | 455-2270-ND |
N / A | Мотор, степпер, 28BNY-48, 5V | В сети | N / A |
* ULN2003A также может быть спасен от платы драйвера 28BYJ-48.
Программное обеспечение получателя
Следующий код программы для приемника SIRC можно загрузить с помощью кнопки внизу этого раздела.
Обратите внимание, что код состоит из части настройки (строки 9-13), основной процедуры (строки 14-24) и двух параметров goto. Основная процедура вызывает pinC.3 для поиска кода SIRC и для хранения кода, который он получает в байтовом регистре b4. Затем, исходя из того, был ли получен код «51» или «52», код переходит в одно из двух мест.
Первая опция goto (линии с 25 по 42) превращает шаговый двигатель по часовой стрелке (если смотреть со стороны вала двигателя). Вторая опция goto (линии с 43 по 60) вращает двигатель против часовой стрелки. Число, сохраненное в байтовом регистре b4, определяет, какая опция выбрана: «51» производит вращение по часовой стрелке, а «52» – вращение против часовой стрелки. В любом случае двигатель поворачивается на половину шагов, что обеспечивает более плавное движение, чем полный шаг.
Код приемника PA-08M2
Оборудование передатчика
При работе SW1 нажата, чтобы принести pinC.1 низкого уровня 08M2. Программное обеспечение в μC вызывает вывод запрограммированного SIRC «52» из pinC.2, который мигает светодиодами 1 и 2 в соответствии с соответствующим шаблоном SIRC. Светодиод 1 передает 940 нм ИК-сигналы, а светодиод 2 визуально подтверждает пользователю, что передатчик активен. SW2 работает одинаково с pinC.4, но посылает сигнал SIRC «51».
нажмите, чтобы увеличить
Список деталей
Детали для передатчика показаны в следующей таблице. Кроме того, вам понадобится различный провод, припой, хорошо отрегулированный источник питания 5 В постоянного тока и кабель программирования PICAXE.
Часть Ref. | Описание | Источник | Предмет номер. |
---|---|---|---|
J1 | Джек, 3, 5 мм, 3-проводник | Digi-Key | CP1-3533-ND |
R1 | Резистор, ¼ Вт, 22 кОм | Digi-Key | 22KQBK-ND |
R2, R3 | Резистор, ¼ Вт, 10 кОм | Digi-Key | 10KQBK-ND |
R4 | Резистор, ¼ Вт, 510 Ом | Digi-Key | 510QBK-ND |
R5 | Резистор, ¼ Вт, 33 Ом | Digi-Key | 33QBK-ND |
R6 | Резистор, ¼ Вт, 470 Ом | Digi-Key | 470QBK-ND |
Q1 | Транзистор, NPN, 2N3904, TO92 | Digi-Key | 2N3904FS-ND |
U1 | Микроконтроллер, PICAXE 08M2 | PHAnderson.com | PICAXE 08M2 + |
LED1 | Диод, светоизлучающий, ИК, 940 нм, T1 3/4, LTE-5228A | Digi-Key | 160-1062-ND |
LED2 | Диод, светоизлучающий, синий, T1 | Digi-Key | MV5B640EL-ND |
N / A | Макет, Паяльник, 400 Контакты | Digi-Key | 377-2094-ND |
SW1, SW2 | Переключатель, тактильный, мгновенный, нормально открытый, SPST, кнопочный переключатель, 2-контактный | В сети* | N / A |
* Все детали легко доступны у различных поставщиков, за исключением, возможно, SW1 и SW2, которые, возможно, должны быть расположены через онлайн-поиск. Это обычные тактильные, мгновенные, нормально разомкнутые кнопочные переключатели SPST, но с двумя штырьками внизу. Поскольку штыри находятся на 0, 2 “центрах, они хорошо работают в паяльных макетах. См. Следующую фотографию.
Программное обеспечение передатчика
Следующий код программы предназначен для передатчика SIRC и может быть загружен с помощью кнопки внизу этого раздела.
Код довольно прост. Когда нажат кнопочный переключатель, подключенный к pinC.1, pinC.1 вытягивается на низкий уровень, что приводит к выходу кода SIRC для «52» из pinC.2 три раза. Аналогично, когда нажат кнопочный переключатель, подключенный к pinC.4, pinC.4 вытягивается на низкий уровень, что приводит к тому, что код SIRC для «51» будет выводиться из pinC.2 три раза. В обоих случаях после отправки кода вставляется 22-миллисекундная пауза, которая позволяет каждой передаче приблизиться к 45-миллисекунду определенной длины всех кодов SIRC. Обратите внимание, что строка 12 кода включает подтягивающие резисторы внутри микросхемы PICAXE для контактов C.1 и C.4, что устраняет необходимость в внешних подтягивающих резисторах на этих контактах.
Код передатчика PICAXE-08M2 SIRC
Передача и прием
Видео демонстрирует, как легко отправлять коды SIRC из передатчика в приемник. Просто включите обе цепи и нажмите на преобразователь SW1 или SW2. В этот момент синий светодиод на передатчике должен мерцать, чтобы указать, что данные отправляются через ИК-светодиод. Одновременно синий светодиод на ресивере должен мерцать, чтобы указать, что данные принимаются U2. Кроме того, шаговый двигатель, подключенный к приемнику, должен начать вращаться; SW2 вызывает вращение по часовой стрелке, в то время как SW1 вращается против часовой стрелки. Светодиоды должны продолжать мерцать, и двигатель должен вращаться до тех пор, пока нажимается любой из переключателей.
В демонстрации видео передатчик находится всего в нескольких дюймах от приемника. Однако фактический рабочий диапазон должен быть намного больше. С четкой линией визирования и куполом ИК-светодиода, направленным прямо на ИК-приемник, расстояния в 20 ярдов (18, 3 метра) должны быть достигнуты в помещении. Наружный диапазон может быть несколько меньше в зависимости от условий окружающей среды.
Следующий?
Этот проект объяснил основы инфракрасной связи (IR) и представил некоторые из подробностей SIRC (Sony Infrared Remote Code). Он показал, как шаговые двигатели могут использоваться для поворота в разных направлениях в зависимости от того, какой из двух кодов SIRC получен.
Воображающие читатели могут искать дополнительную информацию о том, как работают более сложные ИК-удаленные системы и как можно использовать другие шаговые двигатели. Они могут визуализировать приложения для ИК-пульта дистанционного управления другими электрическими и электромеханическими устройствами. Надеюсь, они смогут разрабатывать приложения для ИК-сигнализации, которые никогда прежде не обсуждались и, возможно, не строят и не внедряют системы, которые включают эту функциональность.
Вы воображаемый читатель?
Попробуйте этот проект сами! Получить спецификацию.
управление шаговым двигателем
kepelsonЗагрузка
04.04.2018
1800
Вопросы и ответы Есть шаговик с анет а8. Нужна плата что бы подключить шаговик, дать питание и была ручка управления скоростью.В интернете самые простые варианты предлагают через ардуино.
Посоветуйте готовое решение.
Ответы на вопросыПопулярные вопросы
TORRORЗагрузка
30.03.2021
568
Всем доброго времени суток.Собран бутерброд mega2560+ramps1.4+12864SmartDiscount+a4988(XY)+drv8825(EZ). Концевики герконы MEDER MK14…
Читать дальше CaelSpringsЗагрузка
21.04.2021
114
Здравствуйте, недавно попался в руки 3д принтер FLSUN Prusa I3, после сборки начал подключать проводку к плате и блоку, но после включения в розетку,…
Читать дальше mlizartЗагрузка
15.03.2018
20895
Несколько раз уже я обращался к уважаемому сообществу с вопросом на тему – почему так говорят ‘3D печать’, ‘3D принтеры’ и прочие интерпретации, типа…
Читать дальшеШаговый двигатель
Итак, мы уже рассказали, как устроен серво мотор и сегодня начнем разбирать шаговый двигатель, его схему, драйверы управления и то, где его лучше всего использовать!
Начнем мы с того, что “на пальцах” рассмотрим принцип функционирования данной железяки. Каждый шаговик имеет внутри себя несколько электромагнитов, расположенных вокруг вала. Подавая питание в нужной последовательности на каждую из них, вращающийся элемент двигателя стремится примагнититься катушке. Быстрым переключением питания между электромагнитами можно добиться большой скорости вращения вала мотора и перемещать его в любое положение с большой точностью. Однако для обеспечения этой точности используются различные вспомогательные устройства, так как такой тип двигателя имеет крайне неприятной эффект вибрации. О таких нюансах мы и расскажем далее!
Любой шаговый двигатель имеет два основных элемента: ротор (вал мотора) и статор (неподвижный корпус). Первый состоит из обычных магнитов, а второй – из электрических, управляемых катушек. Стоит отметить, что как раз за счет шагов от одной катушке к другой в шаговиках присутствует вибрация, вызванная инерцией вала мотора. Профили магнитов, принципы управления электромагнитами – все это разделяет шаговики на типы и наделяет их своими плюсами и минусами.
Разделим шаговики на 3 основных класса:
- Переменный шаговый двигатель
Ротор не имеет постоянных магнитов, а оснащен ферромагнитной шестерней. Это материал, который крайне эффективно магнититься, но не так сильно по сравнению с постоянным. Это приводит к проигрышу в крутящем моменте. Зато отсутствует стопорящая сила, возникающая за счет магнитного поля между корпусом мотора и ротором с постоянным магнитом, которую легко почувствовать, покрутив шаговик в выключенном состоянии (характерные щелчки).
Движок оснащен большим количеством катушек, которые включаются попарно. Величина шага варьируется от 5 до 15 градусов. - Шаговый двигатель с постоянным магнитом
Ротор такого устройства состоит из нескольких разнополюсных магнитов. Принцип разбирали в самом начале. Характерный шаг от 45 до 90 градусов.
- Гибридный шаговый двигатель
Как можно догадаться, данный тип совместил в себе первые два и унаследовал все плюсы. Отличительными характеристиками данного шаговика являются высокая точность (1-5 градуса), малая вибрация и приличная скорость вращения. Все хорошо, но такие штуки отличаются от своих собратьев еще и ценой! Это связано со сложностью изготовки. Но производители пошли на технологическую хитрость. Практически невозможно создать многозубцовую (скажем, 100) шестеренку, где соседние зубья будут разных полюсов.
Но достаточно просто создать два таких диска, имеющих противоположные полюса. Затем их сдвигают так, что если посмотреть сбоку, получится то, что мы и хотели. Осталось правильным образом расположить обмотки и включать их по оптимальной логике, обеспечивающей наибольшую эффективность!
Теперь давайте пробежимся по методам управления шаговыми двигателями. Их также можно разделить на несколько пунктов:
- Полношаговое управление одной обмоткой
Это самый простой вариант. Последовательно включается только одна катушка и к ней притягивается вал мотора. В таком случае крутящий момент будет меньше чем в следующем способе. - Полношаговое управление двумя обмотками
Принцип такой же, как и в предыдущем случае, но теперь управление идет парой электромагнитов. Это обеспечивает максимальный крутящий момент мотора, но требует в два раза больше тока или напряжения (зависит от метода подключения катушек друг к другу). - Полушаговое управление
Данная логика включения катушек позволит увеличить число шагов, а, следовательно, и точность в 2 раза! Аналогично предыдущим пунктам, можно управлять одной катушкой или парой. Вся фишка в том, что в данном случае переход на следующую катушку переходит не при полном выключении предыдущей. То есть, при работе двух соседних катушек вал мотора встает в промежуточное состояние.
- Сверхточное управление
Наверное у многих после предыдущего пункта появилась мысль: а что если мы будем подавать разную мощность на две соседние катушки, меняющуюся по определенному закону, и получим еще больше промежуточных шагов? Именно так и устроены современные двигатели в сверхточных ЧПУ и прочих подобных устройствах. Хитрое управление обмотками позволяет значительно повысить точность позиционирования подобных моторов. В таких случаях используют специальные драйверы для шаговых двигателей, позволяющих осуществлять подобный режим управления.
В качестве примера в данной статье рассмотрим подключения двух шаговых двигателей к плате Arduino. Для начала рассмотрим мотор 17hs4401, которой используется в 3D принтерах. Данная модель является биполярной, то есть у нас есть две пары обмоток от которых идет 4 кабеля.
Шаговый двигатель 17hs4401 обладает большим крутящим моментом и может питаться от сети 12 V. Чтобы не перегружать нашу плату управления большими мощностями, шаговик подключается к ней с помощью специального драйвера А4988, который способен работать в жестких условиях (до 35 V и 2 А).
Слабые управляющие сигналы с Arduino идут на драйвер, а тот уже взаимодействует с 17hs4401 с более мощными параметрами пот току и напряжению. К ножкам A4988 VDD и GND подводится питание логического уровня (3 – 5,5 В), к VMOT и GND – питание двигателя (8 – 35 В). Стоит отметить, что в данной системе бывают скачки напряжения, которые могут привести к поломке оборудования. В этой связи (на 3D принтерах всегда) ставят большие конденсаторы (более 47 мкФ). Драйвер имеет болт, который регулирует силу тока. Работая на предельных значениях, вы рискуете сжечь его, особенно если не наклеен радиатор, идущий в комплекте с устройством.
Шаговик 17hs4401 за полный оборот совершает 200 шагов. Это весьма неплохо, но для лучшего позиционирования (крайне важно для ЧПУ) используют схему управления с микрошагами, которую мы изучили ранее. A4988 позволяет осуществлять такую процедуру с коэффициентами 1/2, 1/4, 1/8 и 1/16 шага (комбинируя управление через выходы MS1, MS2, и MS3).
MS1 | MS2 | MS3 | Step |
Low | Low | Low | Full |
High | Low | Low | 1/2 |
Low | High | Low | 1/4 |
High | High | Low | 1/8 |
High | High | High | 1/16 |
Пин STEP отвечает за микрошаг шаговика, DIRECTION – за направление вращения. Выводы STEP и DIRECTION не подтянуты к какому-либо конкретному внутреннему напряжению, поэтому их не стоит оставлять плавающими при создании приложений. Если требуется вращать двигатель в одном направлении,коннектим DIR с VCC или GND. Драйвер имеет три различных входа для управления состоянием питания: RESET, SLEEP и ENABLE. Вывод RESET плавает, если его не нужно использовать, то следует подключить его к SLEEP, чтобы подать на него высокий уровень и включить плату.
Теперь давайте перейдем непосредственно к подключению данного мотора к микрокомпьютеру. Соединяем контакты согласно указанной ниже схеме:
Обычно, такие моторы любителями используются при сборке 3d принтеров своими руками. Для этого используют Arduino MEGA и шилд ramps 1.4, о котором мы говорили вот в этой статье. Удобство использования данного комплекта состоит в том, что не нужно соединять кучу проводов – за вас уже все разведено. Таким образом легко подключить сразу до 5 шаговиков!
Более простым и дешевым вариантом шагового мотора является модель 28byj-48. Его подключение немного запутанное, но несмотря на это он пользуется большой популярностью у любителей собирать роботов! Поэтому мы немного расскажем о том, как 28byj-48 подключить к ардуино. В первую очередь нам понадобиться драйвер ULN2003APG. Это очень дешевая железяка, встречается как готовая плата с разъемами, так и просто чип с голыми ножками. Сначала посмотрим, как подключать второй вариант.
На данной картинке покано подключение двух шаговых двигателей к плате Arduino Nano. C обратной стороны драйвера все ножки соединяем с цифровыми пинами, кроме крайней правой – ее ведем к GND. При программировании вам потребуется осуществить настройку моторов к пинам и в этом случае необходимо указать правильную последовательность: оранжевый, синий, желтый, розовый. Именно в таком порядке необходимо будет подавать управляющий сигнал с ножек микропроцессора. Как видно на рисунке, красный провод левого коннектора не попадает на ULN2003APG – его необходимо соединить с выходом 5V или VIN.
Есть более простой способ подключения шаговика 28byj-48 через готовую плату с коннектором:
На всякий случай приведем распиновку драйвера:
На этом у нас все, если будут вопросы – всегда готовы ответить!
Управление шаговым двигателем с помощью Arduino: 8 шагов (с изображениями)
Н-мост – это схема, состоящая из 4 переключателей, которые могут безопасно управлять двигателем постоянного тока или шаговым двигателем. Эти переключатели могут быть реле или (чаще всего) транзисторами. Транзистор представляет собой твердотельный переключатель, который можно закрыть, послав небольшой ток (сигнал) на один из его контактов. В отличие от одиночного транзистора, который позволяет управлять только скоростью двигателя, H-мосты также позволяют управлять направлением вращения двигателя.Он делает это, открывая разные переключатели (транзисторы), чтобы позволить току течь в разных направлениях и, таким образом, изменяя полярность на двигателе. ВНИМАНИЕ: Переключатели 1 и 2 или 3 и 4 никогда не должны быть замкнуты вместе. Это вызовет короткое замыкание и возможное повреждение устройства.
H-мосты могут помочь предотвратить перегрев вашего Arduino двигателями, которые вы используете. Двигатели являются индукторами, что означает, что они накапливают электрическую энергию в магнитных полях. Когда ток больше не подается на двигатели, магнитная энергия снова превращается в электрическую и может повредить компоненты.H-мост помогает лучше изолировать ваш Arduino. Никогда не подключайте двигатель напрямую к Arduino.
Хотя H-мосты можно довольно легко построить, многие предпочитают покупать H-мост (например, микросхему L293NE / SN754410) из-за удобства. Это чип, который мы будем использовать в этом уроке. Физические номера контактов и их назначение перечислены ниже.
- Контакт 1 (1, 2EN) —> Включение / выключение двигателя 1 (ВЫСОКИЙ / НИЗКИЙ)
- Контакт 2 (1A) —> Логический контакт 1 двигателя 1
- Контакт 3 (1Y) – -> Клемма 1 двигателя 1
- Контакт 4 —> Земля
- Контакт 5 —> Земля
- Контакт 6 (2Y) —> Клемма двигателя 1 2
- Контакт 7 (2A) – -> Логический контакт 2 двигателя 1
- Контакт 8 (VCC2) —> Источник питания для двигателей
- Контакт 9 —> Включение / выключение двигателя 2 (ВЫСОКИЙ / НИЗКИЙ)
- Контакт 10 —> Двигатель 2 Логический контакт 1
- Контакт 11 —> Клемма 1 двигателя 2
- Контакт 12 —> Земля
- Контакт 13 —> Земля
- Контакт 14 —> Клемма 2 двигателя 2
- Контакт 15 —> Motor 2 Logic Pin 2
- Pin 16 (VCC1) —> Источник питания для H-моста (5 В)
Как использовать шаговый двигатель в Arduino
Следующее руководство представляет собой краткое введение в шаговые двигатели.Эти двигатели могут двигаться на очень небольшой шаг за шагом, что делает их подходящими для проекты, требующие точности. Во-первых, в этом руководстве вы можете узнать о способ работы шаговых двигателей. Затем в пошаговом руководстве вы узнаете, как подключиться к свой Arduino и управляйте ими с компьютера с помощью Ozeki 10. Давайте начнем прямо сейчас.
Что такое шаговый двигатель?
Шаговый двигатель – это двигатель, управляемый серией электромагнитных катушек.В на центральном валу установлен ряд магнитов, а катушки, окружающие на вал попеременно подается ток или нет, создавая магнитные поля, которые отталкивать или притягивать магниты на валу, заставляя двигатель вращаться.
Как работает шаговый двигатель?
Шаговые двигатели могут поворачиваться на точное количество градусов (или шагов) по желанию. Этот дает вам полный контроль над двигателем, позволяя вам перемещать его в точном местоположение и удерживайте это положение.Это достигается за счет питания катушек внутри двигателя. на очень короткие промежутки времени. Недостаток в том, что вам нужно запитать мотор все время, чтобы держать его в желаемом положении.
Все, что вам нужно знать на данный момент, это то, что для перемещения шагового двигателя вы приказываете ему двигаться. определенное количество шагов в одну или другую сторону, и сообщить ему скорость на который шагнуть в этом направлении. Существует множество разновидностей шаговых двигателей. Описанные здесь методы могут быть использованы для вывода о том, как использовать другие двигатели и драйверы, не упомянутые в этом руководстве.Однако всегда рекомендуется что вы обращаетесь к таблицам данных и руководствам по двигателям и драйверам, относящимся к вашим моделям.
Схема подключения шагового двигателя ArduinoРисунок 1 – Схема подключения шагового двигателя Arduino
Как использовать шаговый двигатель Arduino в Ozeki
Соединение с мультиконтроллером шагового двигателя способно передавать команды вашим шаговым двигателям от любого выбранного соединения Ozeki.Шаговые двигатели – самые точные из доступных двигателей. Вы можете приказать им двигаться точно на 1,8 / 16 = 0,1125 градуса / шаг в каждом направлении. Команды движения состоят из необходимых шагов и скорости вращения двигателей. Вы также можете настроить ограничители движения двигателя. Чтобы использовать шаговый двигатель в Ozeki, вам сначала необходимо загрузить Ozeki Robot Developer. Озэки Robot Developer установит библиотеки Arduino, необходимые для эффективного использования этого датчика.
Скачать Ozeki Robot Developer
После того, как разработчик Ozeki Robot будет установлен, вам необходимо загрузить код управления шаговым двигателем. к вашему Arduino.Вы можете найти код и инструкции по загрузке на следующих страницах. Процесс загрузки состоит из двух шагов: сначала вам нужно отформатировать EEPROM Arduino, тогда вам нужно загрузить контрольный код. Процедура очень проста, требуется всего лишь несколько секунд.
Загрузите код шагового двигателя в Arduino Mega 2560
Загрузите код шагового двигателя в Laser Cutter
Загрузите код шагового двигателя в Ozeki Matrix
Моторы Arduino и Ozeki будут обмениваться данными через порт USB с использованием протокола Ozeki Stepper Motor.Этот Протокол позволяет вам использовать мотор прямо на вашем ПК. Вы сможете управлять этим двигателем через Интернет. пользовательский интерфейс или вы сможете общаться с ним с помощью Ozeki Chat. Вы можете узнать больше об управлении чатом на следующей странице.
Как общаться с шаговым двигателем в чате
Важно понимать управление чатом, потому что когда вы создаете робота, Вы хотите управлять этим двигателем, отправляя и получая сообщения.если ты откройте приложение Ozeki Robot Developer, вы увидите, кому вы можете написать C # .Net программа для работы с этим мотором.
Шаги подключения
- Подключите шаговый двигатель к Arduino, следуя схеме подключения
- Подключите плату Arduino к компьютеру с помощью USB-кабеля для передачи данных
- Проверьте COM-порты в списке устройств Windows
- Откройте приложение Arduino на своем компьютере
- Загрузить пример кода в микроконтроллер
- Откройте https: // localhost: 9515 в своем браузере
- Выбрать подключение шагового двигателя
- Установите скорость и градус для проверки шагового двигателя
Обзор системы
Предлагаемая нами система состоит из шагового двигателя, подключенного к аналоговому порту. вашего Arduino.Arduino будет отвечать за чтение данных с этого устройства. в настоящее время. Мозг системы будет работать на ПК (рисунок 2). На ПК Озэки 10 смогут управлять общением. Вы можете легко запустить Ozeki 10 с помощью веб-браузера.
Рисунок 2 – Системная конфигурация шагового двигателя, подключенного к ПК с помощью Arduino
Предварительные требования
- Шаговый двигатель (и)
- Драйвер (и) шагового двигателя DRV8825 или A4988
- Концевой упор
- Ozeki 10 установлен на вашем компьютере
- Программируемая плата (Arduino Mega plus RAMPS v1.4, модуль контроллера шагового двигателя Ozeki
или плата контроллера лазерного резака) - USB-кабель необходим между платой и компьютером
Шаг 1. Подключите шаговый двигатель к Arduino
.Вы можете увидеть, как подключить шаговые двигатели на любую из следующих досок:
После подключения подключите плату к компьютеру!
Шаг 2 – Загрузите код в микроконтроллер
(Вот код для загрузки)
Следующим шагом является загрузка кода в микроконтроллер, который будет работать с шаговый двигатель.Для этого вам нужно открыть приложение Arduino на вашем компьютер. Здесь сначала вы должны проверить порт, что шаговый двигатель работает правильно. подключен к вашему компьютеру. Затем вам просто нужно перейти по ссылке выше, скопировать код и вставьте его в приложение Arduino. Наконец, просто нажмите Загрузить в Arduino. и код будет загружен в микроконтроллер.
Шаг 3 – Запустите Ozeki 10, чтобы попробовать шаговый двигатель
После этого вы подключили Arduino к Raspberry Pi, теперь вы можете опробовать шаговый двигатель.Для этого вам нужно открыть GUI (графический пользовательский интерфейс) Ozeki 10. Это можно сделать, набрав localhost: 9513 в веб-браузере и нажав Enter. Здесь Ozeki 10 автоматически определяет подключенные устройства, поэтому после подключения шаговый двигатель, вы увидите его в списке подключений. Все, что у тебя есть сделать здесь, это открыть соединение и попробовать шаговый двигатель.
Шаг 4 – Настройте шаговый двигатель в Ozeki 10
Чтобы настроить шаговый двигатель (подключенный к Arduino) в Ozeki 10, который установлен на вашем компьютере, вам необходимо открыть графический интерфейс пользователя (GUI) Ozeki 10.Вы можете открыть графический интерфейс, введя URL-адрес компьютера в свой веб-браузер. Например, если у нашего ПК IP-адрес 192.168.1.5, мы бы введите http://192.168.1.5:9513 в наш веб-браузер.
Шаг 5 – Изучите протокол шагового двигателя
Мульти-контроллер шагового двигателя может связываться с Ozeki через следующий протокол.
Ссылки:
https://www.tutorialspoint.com
http: //www.tigoe.ком
библиотек arduino / Stepper: библиотека Stepper для Arduino
GitHub – библиотеки arduino / Stepper: библиотека Stepper для ArduinoБиблиотека Stepper для Arduino
Файлы
Постоянная ссылка Не удалось загрузить последнюю информацию о фиксации.Тип
Имя
Последнее сообщение фиксации
Время фиксации
Эта библиотека позволяет управлять униполярными или биполярными шаговыми двигателями. Чтобы использовать его, вам понадобится шаговый двигатель и соответствующее оборудование для управления им.
Лицензия
Авторские права (c) Arduino LLC.Все права защищены. Авторское право (c) Себастьян Гасснер. Все права защищены. Авторское право (c) Ноа Шибли. Все права защищены.
Эта библиотека является бесплатным программным обеспечением; вы можете распространять его и / или изменить его в соответствии с условиями GNU Lesser General Public Лицензия, опубликованная Free Software Foundation; либо версии 2.1 Лицензии или (по вашему выбору) любой более поздней версии.
Эта библиотека распространяется в надежде, что она будет полезной, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; без даже подразумеваемой гарантии КОММЕРЧЕСКАЯ ЦЕННОСТЬ или ПРИГОДНОСТЬ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ.См. GNU Стандартная общественная лицензия ограниченного применения для получения более подробной информации.
Вы должны были получить копию GNU Lesser General Public Лицензия вместе с этой библиотекой; если нет, напишите в Бесплатное ПО Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Около
Библиотека Stepper для Arduino
ресурса
Вы не можете выполнить это действие в настоящее время.Вы вошли в систему с другой вкладкой или окном. Перезагрузите, чтобы обновить сеанс. Вы вышли из системы на другой вкладке или в другом окне. Перезагрузите, чтобы обновить сеанс.Как управлять шаговым двигателем с помощью драйвера A4988 и Arduino
Обзор: Управление шаговым двигателем с драйвером A4988 и Arduino
В этом руководстве мы будем управлять шаговым двигателем NEMA17 с помощью модуля драйвера A4988 и Arduino. A4988 – это микрошаговый драйвер для управления биполярными шаговыми двигателями, который имеет встроенный переводчик для упрощения работы.Таким образом, мы можем управлять шаговым двигателем с помощью всего 2 контактов от нашего контроллера. Штифт DIR будет управлять направлением вращения, а штифт STEP – шагом.
В предыдущем уроке мы изучили управление шаговым двигателем с помощью потенциометра , а также с помощью джойстика . 28BYJ-48 – это 5-проводный униполярный шаговый двигатель, работающий от 5 В и не требующий драйвера. Но для шагового двигателя NEMA17 требуется мощность 8–35 В, поскольку крутящий момент слишком высок.Поэтому нам нужен модуль шагового драйвера, например A4988 или DRV8825 .
Спецификация
Ниже приведены компоненты, необходимые для изучения этого руководства. Все компоненты можно легко приобрести на Amazon . Также дается ссылка на покупку компонента .
A4988 Модуль драйвера шагового двигателя
A4988 – это полный микрошаговый драйвер двигателя со встроенным переводчиком для упрощения работы.Коммутационная плата от Allegro имеет регулируемое ограничение тока, защиту от перегрузки по току и перегреву, а также пять различных разрешений микрошага. Он работает от 8 В до 35 В и может выдавать до 1 А на фазу без радиатора или принудительного воздушного потока. Он рассчитан на 2 А на катушку при достаточном дополнительном охлаждении.
Характеристики- Макс. Рабочее напряжение: 35 В
- Мин. Рабочее напряжение: 8 В
- Макс. Ток на фазу: 2A
- Микрошаговое разрешение: полный шаг, ½ шага, ¼ шага, 1/8 и 1/16 шага
- Защита от обратного напряжения: Нет
- Размеры: 15.5 × 20,5 мм (0,6 ″ × 0,8 ″)
- Защита от короткого замыкания на массу и короткого замыкания нагрузки
- Выходы Low RDS (ON)
- Схема теплового отключения
Драйвер A4988 имеет в общей сложности 16 контактов, а именно:
1. Контакты источника питания: Контакты включают VDD, VMOT и пару контактов GND. VDD используется для управления внутренней логической схемой, которая может составлять от 3 до 5 В, тогда как VMOT обеспечивает питание двигателя, которое может составлять от 8 до 35 В.
2. Контакты Microstep Selection: Драйвер A4988 имеет входы трехступенчатого селектора разрешения, то есть MS1, MS2 и MS3. Установив соответствующие логические уровни для этих выводов, мы установим двигатели как минимум на одно из пяти шагов разрешения.
3. Входные контакты управления: STEP и DIR – это 2 контакта входа управления. Вход STEP контролирует микрошаги двигателя, тогда как вход DIR контролирует направление вращения двигателя.
4. Вывод управления состояниями питания: A4988 имеет три различных входа для управления состояниями питания, т.е.e EN, RST и SLP. Контакт EN является активным низким входом, при нажатии LOW активируется драйвер A4988. Вывод SLP – активный низкий вход. Нажатие этого вывода на НИЗКОЕ значение переводит драйвер в спящий режим, минимизируя потребление ресурсов. RST – это активный низкий вход, который при нажатии LOW все входы STEP игнорируются. Он также сбрасывает драйвер, устанавливая внутренний переводчик на начальную ступень двигателя.
5. Выходные контакты: Имеется 4 выходных контакта: 2B, 2A, 1B, 1A. Мы можем подключить к этим контактам любой биполярный шаговый двигатель с напряжением от 8 до 35 В.
Требования к радиаторуДрайвер A4988 можно безопасно использовать без радиатора, если номинальный ток не превышает 1 А. Для достижения более 1 А на катушку требуется радиатор или другой метод охлаждения.
Из-за чрезмерного рассеивания мощности драйвером A4988 происходит повышение температуры, которое может выйти за пределы возможностей IC, вероятно, повредив ее.
Установка предела токаПеред подключением двигателя мы должны отрегулировать ограничение тока драйвера так, чтобы ток находился в пределах двигателя.Мы можем сделать это путем регулировки опорного напряжения с помощью потенциометра на плате и с учетом этого уравнения ниже.
Текущий предел = VRef x 2,5 |
Например, если шаговый двигатель рассчитан на 350mA, мы должны регулировать опорное напряжение до 0.14V. Возьмите небольшую отвертку и отрегулируйте предел тока с помощью потенциометра, пока не достигнете номинального тока.
Шаговый двигатель NEMA17
NEMA 17 – гибридный шаговый двигатель с углом шага 1,8 ° (200 шагов / оборот). Каждая фаза потребляет 1,2 А при 4 В, что обеспечивает удерживающий момент 3,2 кг-см. Шаговый двигатель NEMA 17 обычно используется в принтерах, станках с ЧПУ и лазерных резаках.
Этот двигатель имеет шесть проводов, подключенных к двум разделенным обмоткам. Черный, желтый и зеленый провода являются частью первой обмотки, а красный, белый и синий – частью второй обмотки.
Взаимодействие шагового двигателя NEMA17 с Arduino с использованием драйвера A4988
Теперь давайте подключим драйвер шагового двигателя A4988 к Arduino и будем управлять шаговым двигателем NEMA17. Я использовал контакты D2 и D3 для управления направлением и шагом двигателя. Схема подключения приведена ниже.
Вывод VMOT питается от источника питания 12 В, а VDD питается от источника питания 5 В. Не забудьте установить большой развязывающий электролитический конденсатор 100 мкФ на контакты источника питания двигателя, рядом с платой.
Project PCB Gerber File & PCB Заказ онлайн
Если вы не хотите собирать схему на макетной плате и вам нужна печатная плата для проекта, то вот печатная плата для вас. Печатная плата для управления шаговым двигателем Nema17 с A4988 и Arduino разработана с использованием онлайн-инструмента EasyEDA для создания схем и проектирования печатных плат. Передняя и задняя стороны печатной платы показаны ниже.
Рис: Вид спереди Рис: Вид сзадиФайл Gerber для печатной платы представлен ниже.Вы можете просто загрузить файл Gerber и заказать печатную плату по адресу https://www.nextpcb.com/
Скачать файл Gerber: A4988 + Arduino + NEMA17 PCBТеперь вы можете посетить официальный сайт NextPCB, щелкнув здесь: https://www.nextpcb.com/ . Вы будете перенаправлены на сайт NextPCB .
Теперь вы можете загрузить файл Gerber на веб-сайт и разместить заказ. Качество печатной платы чистое и блестящее. Вот почему большинство людей доверяют NextPCB для PCB и PCBA Services .
Базовый код управления шаговым двигателем
Теперь, когда вы подключили драйвер и установили текущий предел, пришло время подключить Arduino к компьютеру и загрузить некоторый код. Этот скетч управляет двигателем в одном направлении.
1 2 3 4 5 6 7 8 9 10 11 12 13 140002 13 14 18 19 20 21 22 23 24 25 26 27 28 29 30 000 000 3435 36 37 38 | const int dirPin = 2; const int stepPin = 3; const int stepsPerRevolution = 200; void setup () { // Объявление контактов как выходов pinMode (stepPin, OUTPUT); pinMode (dirPin, ВЫХОД); } void loop () { // Установить направление двигателя по часовой стрелке digitalWrite (dirPin, HIGH); // Медленно вращайте двигатель for (int x = 0; x { digitalWrite (stepPin, HIGH); delayMicroseconds (2000); digitalWrite (stepPin, LOW); delayMicroseconds (2000); } задержка (1000); // Подождите секунду // Установите направление двигателя против часовой стрелки digitalWrite (dirPin, LOW); // Быстрое вращение двигателя for (int x = 0; x { digitalWrite (stepPin, HIGH); delayMicroseconds (1000); digitalWrite (stepPin, LOW); delayMicroseconds (1000); } задержка (1000); // Подождите секунду } |
Управление направлением вращения шагового двигателя
С помощью этого кода можно управлять направлением шагового двигателя.Вы можете вращать двигатель как по часовой стрелке, так и против часовой стрелки. Этот эскиз управляет скоростью, числом оборотов и направлением вращения шагового двигателя.
1 2 3 4 5 6 7 8 9 10 11 12 13 140002 13 14 18 19 20 21 22 23 24 25 26 27 28 29 30 000 000 3435 36 37 38 | const int dirPin = 2; const int stepPin = 3; const int stepsPerRevolution = 200; void setup () { // Объявление контактов как выходов pinMode (stepPin, OUTPUT); pinMode (dirPin, ВЫХОД); } void loop () { // Установить направление двигателя по часовой стрелке digitalWrite (dirPin, HIGH); // Медленно вращайте двигатель for (int x = 0; x { digitalWrite (stepPin, HIGH); delayMicroseconds (2000); digitalWrite (stepPin, LOW); delayMicroseconds (2000); } задержка (1000); // Подождите секунду // Установите направление двигателя против часовой стрелки digitalWrite (dirPin, LOW); // Быстрое вращение двигателя for (int x = 0; x { digitalWrite (stepPin, HIGH); delayMicroseconds (1000); digitalWrite (stepPin, LOW); delayMicroseconds (1000); } задержка (1000); // Подождите секунду } |
Управление шаговым двигателем с помощью библиотеки AccelStepper Шаговым двигателем
можно управлять с помощью библиотеки Arduino AccelStepper.Он предоставляет объектно-ориентированный интерфейс для 2-, 3- или 4-контактных шаговых двигателей и драйверов двигателей.
AccelStepper значительно улучшает стандартную библиотеку Arduino Stepper по нескольким направлениям, например, поддерживает ускорение и замедление. Он также поддерживает несколько одновременных шаговых двигателей с независимым одновременным шагом на каждом шаговом двигателе. Также поддерживаются даже очень низкие скорости
Следующий код показывает все вышеупомянутые функции.
1 2 3 4 5 6 7 8 9 10 11 12 13 140002 13 14 18 19 20 21 22 23 24 25 26 27 28 29 30 000 000 3435 36 37 38 39 40 41 42 43 44 45 46 47 000551 52 53 | #include // Определите соединения шагового двигателя и тип интерфейса двигателя. Тип интерфейса двигателя должен быть установлен на 1 при использовании драйвера: #define dirPin 2 #define stepPin 3 #define motorInterfaceType 1 // Создайте новый экземпляр класса AccelStepper: AccelStepper = AccelStepper (motorInterfaceType, stepPin, dirPin); void setup () { // Установите максимальную скорость в шагах в секунду: шаговый.setMaxSpeed (1000); } void loop () { // Установить текущую позицию на 0: stepper.setCurrentPosition (0); // Запустите двигатель вперед со скоростью 200 шагов в секунду, пока двигатель не достигнет 400 шагов (2 оборота): while (stepper.currentPosition ()! = 400) { stepper.setSpeed (200) ; stepper.runSpeed (); } задержка (1000); // Сбросьте положение на шаговый 0: .setCurrentPosition (0); // Запустите двигатель назад со скоростью 600 шагов в секунду, пока двигатель не достигнет -200 шагов (1 оборот): while (stepper.currentPosition ()! = -200) { stepper.setSpeed ( -600); stepper.runSpeed (); } задержка (1000); // Сбросьте позицию на 0: stepper.setCurrentPosition (0); // Запустите двигатель вперед со скоростью 400 шагов в секунду, пока двигатель не достигнет 600 шагов (3 оборота): while (stepper.currentPosition ()! = 600) { stepper.setSpeed (400); stepper.runSpeed (); } задержка (3000); } |
Код ускорения и замедления шагового двигателя
Следующий рисунок добавит ускорение и замедление к движениям шагового двигателя. Двигатель будет вращаться вперед и назад со скоростью 200 шагов в секунду и ускорением 30 шагов в секунду.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include #define dirPin 2 #define stepPin 3 #define motorInterfaceType 1 // Создайте новый экземпляр класса AccelStepper: StepPin, AccelStepper ; void setup () { // Установите максимальную скорость и ускорение: stepper.setMaxSpeed (200); stepper.setУскорение (30); } void loop () { // Установите целевую позицию: шаговый.moveTo (600); // Движение к целевой позиции с заданной скоростью и ускорением / замедлением: stepper.runToPosition (); задержка (1000); // Вернуться к нулю: stepper.moveTo (0); stepper.runToPosition (); задержка (1000); } |
Управление шаговым двигателем NEMA17 с A4988 и потенциометром
Шаговым двигателем также можно управлять с помощью потенциометра.Я использовал потенциометр 10K и подключил его к аналоговому выводу A0 платы Arduino Nano. Напряжение подается на аналоговом штифт Arduino может быть использовано в качестве опорного напряжения для управления скоростью вращения шагового двигателя. Схема подключения приведена ниже.
Скопируйте приведенный ниже код и загрузите его на плату Arduino Nano Board.
1 2 3 4 5 6 7 8 9 10 11 12 13 140002 13 14 18 19 20 21 22 23 24 25 26 27 | / Определяет номера выводов const int stepPin = 3; const int dirPin = 4; int customDelay, customDelayMapped; // Определяет переменные void setup () { // Устанавливает два контакта как выходы pinMode (stepPin, OUTPUT); pinMode (dirPin, ВЫХОД); digitalWrite (dirPin, HIGH); // Позволяет двигателю двигаться в определенном направлении } void loop () { customDelayMapped = speedUp (); // Получает пользовательские значения задержки из пользовательской функции speedUp // Создает пулы с пользовательской задержкой, в зависимости от потенциометра, от которого зависит скорость двигателя digitalWrite (stepPin, HIGH); delayMicroseconds (customDelayMapped); digitalWrite (stepPin, LOW); delayMicroseconds (customDelayMapped); } // Функция для чтения потенциометра int speedUp () { int customDelay = analogRead (A0); // Считывает потенциометр int newCustom = map (customDelay, 0, 1023, 300,4000); // Преобразует считанные значения потенциометра от 0 до 1023 в желаемые значения задержки (от 300 до 4000) return newCustom; } |
Видеоуроки и руководство
A4988 Учебное пособие | Управляйте шаговым двигателем NEMA17 с помощью модуля драйвера шагового двигателя A4988 и Arduino
драйвер шагового двигателя arduino
Как управлять шаговым двигателем с помощью драйвера A4988 и Arduino
17 августа 2015 г. – Загружено пользователем How To Mechatronics
В этом руководстве по Arduino мы узнаем, как управлять шаговым двигателем с помощью шагового драйвера A4988….
TB6600 Arduino Драйвер шагового двигателя – DFRobot
TB6600 Arduino – это простой в использовании профессиональный драйвер шагового двигателя, который может управлять двухфазным шаговым двигателем. Он совместим с Arduino и другими микроконтроллерами, которые могут выводить цифровой импульсный сигнал 5 В. Драйвер шагового двигателя TB6600 arduino имеет широкий диапазон входной мощности, источник питания 9 ~ 42 В постоянного тока.
Как управлять шаговым двигателем с помощью драйвера A4988 и Arduino
Эта статья включает в себя все, что вам нужно знать об управлении шаговым двигателем с помощью драйвера шагового двигателя A4988 и Arduino.Я включил проводку …
Управление шаговым двигателем – управление скоростью – Arduino
В этом примере потенциометр (или другой датчик) на аналоговом входе 0 используется для управления скоростью вращения шагового двигателя с помощью библиотеки Arduino Stepper.
Stepper – Arduino
Эта библиотека позволяет управлять униполярными или биполярными шаговыми двигателями. Чтобы использовать его, вам понадобится шаговый двигатель и соответствующее оборудование для управления им. Подробнее … Шаговый двигатель
· Шаговый · Шаг · Биполярный шаговый двигатель
Шаговый двигатель с Arduino и драйвером A4988: 7 шагов Шаговый двигатель
с Arduino и драйвером A4988: Сегодня я покажу драйвер шагового двигателя.Чтобы быть более конкретным, в этом видео мы рассмотрим шаговый двигатель A4988 …
с драйвером двигателя L298N и Arduino
Научитесь управлять шаговым двигателем с помощью модуля драйвера двигателя L298N вместе с H-мостом Работа, проводка, Код Arduino для управления скоростью и направлением NEMA …
Шаговые двигатели с Arduino | DroneBot Workshop
, 10 февраля 2018 г. – Узнайте, как управлять биполярными и униполярными шаговыми двигателями с помощью Arduino, используя такие драйверы, как ULN2003, L298N и A4988.В этой статье я покажу … Типы шаговых двигателей
· Чтение шаговых двигателей … · Демонстрация 1 – 28BYJ-48 …
Сортировать по: DefaultName (A – Z) Имя (Z – A) Цена (Низкая> Высокая) Цена (Высокая> Низкая) Рейтинг (Наивысший) Рейтинг (Наименьший) Модель (A – Z) Модель (Z – A)
Показывать: 20255075100
-22%
Артикул: DM320T $ 17.00 $ 13.30 Начиная с: 12,70 $
-21%
Артикул: DM332TЭто цифровой шаговый привод с передовой технологией управления шаговым двигателем.Он прост в использовании и может использоваться для плавного управления 2-фазными и 4-фазными двигателями (от Nema 17-Nema 23) с меньшим нагревом и шумом. Оно работает ..
$ 19,50 $ 15,50 Начиная с: 14,82 $
-20%
Артикул: DM542T 25,00 $ 19,90 $ Начиная с: 19,05 $
-20%
Артикул: DM860T $ 46,50 $ 37,40 Начиная с: 35,79 $
DM2282T – это полностью цифровой шаговый привод, разработанный с использованием усовершенствованного алгоритма управления DSP, основанного на новейшей технологии управления движением.Он достиг уникального уровня плавности системы, обеспечивая оптимальный крутящий момент и средние значения нуля.
150,97 долл. США Начиная с: 119,18 $
Артикул: 3DM2283T3DM2283T – это полностью цифровой шаговый привод, разработанный с использованием усовершенствованного алгоритма управления DSP, основанного на новейшей технологии управления движением. Он достиг уникального уровня плавности системы, обеспечивая оптимальный крутящий момент и средние значения нуля.
150,97 долл. США Начиная с: 119,18 $
Как управлять 6 шаговыми двигателями с помощью Arduino?
Да, конечно, все возможно!
Этим драйверам требуется как минимум две линии ввода-вывода: DIR и STEP.Пульсирующий ШАГ – это движение на один шаг вперед или назад (в зависимости от DIR).
Следовательно, для 6 шаговых двигателей вам потребуется 12 выходов от Arduino. (Какой Arduino, пожалуйста? Выберите тот, у которого достаточно ввода-вывода, или используйте удлинитель вывода I2C).
M0 и M1 контролируют микрошаговый режим – настраивайте по своему желанию. CFG занимает высокое положение на этой плате Pololu, что позволяет использовать плату в качестве шагового драйвера прямо из коробки.
Для шаговых двигателей(если вы хотите, чтобы они работали с полным крутящим моментом) требуется привод постоянного тока.(В недорогих решениях используется привод постоянного напряжения, например, ULN2803 – однако они не могут получить слишком большой крутящий момент). К счастью, этот драйвер может делать это хорошо, потенциометр устанавливает максимальный ток.
Шаговым двигателям требуется значительный ток при переходе к следующему шагу. Однако, в отличие от двигателей постоянного тока, даже в неподвижном положении будет потребляться ток, что в конечном итоге сделает двигатель горячим. Следовательно, вы должны ограничивать ток, когда двигатель , а не движется. Обычно это делается из программного обеспечения (драйвер не знает, когда пора в течение длительного времени остановиться).
Способом ограничения тока двигателя при остановке может быть аналоговый ограничитель или ШИМ. У этого драйвера нет специального входа для этой цели. Вы можете сделать две вещи:
- используйте меньший ток привода (используйте потенциометр) – это может работать хорошо, если вас устраивает крутящий момент
- использует спящий режим драйвера с ШИМ со стороны Arduino.
Это последнее решение требует от вас:
- подключите все контакты EN всех 6 драйверов и подключите его к одному контакту Arduino, который имеет ШИМ (т.е.е.
аналог Запись ()
) - установите это значение в 0, затем начните движение
- после завершения перемещений используйте
analogWrite ()
и установите, скажем, 128 (обычно половина тока перемещения – хорошее предположение для тока удержания)
Таким образом, когда двигатели остановлены, ток удержания будет меньше, следовательно, двигатели не нагреваются.
Управление шаговым двигателемс использованием Arduino
Управление шаговым двигателемс использованием Arduino – это простой проект, в котором биполярный шаговый двигатель управляется с помощью Arduino UNO.Шаговый двигатель – это тип бесщеточного двигателя постоянного тока, который преобразует электрические импульсы в отдельные механические движения, то есть вал шагового двигателя вращается дискретными шагами. Когда компьютер управляет этими шагами, мы можем получить точное положение и контроль скорости.
Из-за этой дискретной природы пошагового вращения шагового двигателя они часто используются в промышленной автоматизации, системах ЧПУ и т. Д., Где требуется точное движение.
В этом проекте мы разработали простую систему для управления шаговым двигателем с помощью Arduino.Мы использовали Arduino UNO в качестве основной управляющей части проекта для управления шагами шагового двигателя.
Выберите следующий набор проектов Arduino, которые вы хотите изучить в Electronicshub : Arduino Projects »В следующих разделах объясняется краткое введение в шаговые двигатели, схема проекта, а также работа над проектом.
Принципиальная схема управления шаговым двигателем с использованием необходимых компонентов Arduino
- Arduino UNO [Купить здесь]
- ИС драйвера двигателя L293D [Купить здесь]
- Биполярный шаговый двигатель
- Источник питания (подходит для вашего шагового двигателя)
- Макетная плата ( Макетная плата)
- Соединительные провода
Краткое введение в шаговый двигатель
Как упоминалось ранее, шаговый двигатель – это тип двигателя постоянного тока, который вращается дискретными шагами.Благодаря уникальной конструкции шаговыми двигателями можно управлять для точного позиционирования без какой-либо обратной связи.
Типичный шаговый двигатель имеет несколько катушек, разделенных на фазы. При последовательном включении каждой фазы ротор шагового двигателя вращается ступенчато.
В основном существует три типа шаговых двигателей: шаговые двигатели с переменным сопротивлением (VR), шаговые двигатели с постоянным магнитом (PM) и гибридные шаговые двигатели. В зависимости от обмотки статора шаговые двигатели также могут быть классифицированы как биполярные шаговые двигатели и униполярные шаговые двигатели.
Мы не будем вдаваться в подробности о типах шаговых двигателей, но важно определить, является ли ваш шаговый двигатель биполярным или униполярным. Это связано с тем, что метод управления каждым из этих шаговых двигателей отличается от другого.
Например, схема драйвера униполярного шагового двигателя может быть реализована с помощью простой транзисторной схемы или микросхемы транзистора Дарлингтона, такой как ULN2003A. Но в случае биполярного шагового двигателя нам необходимо реализовать драйвер типа H-моста, такой как L293D Motor Driver IC.
На следующем изображении показаны биполярный шаговый двигатель, 6-проводный униполярный шаговый двигатель и 5-проводный униполярный шаговый двигатель.
Наиболее распространенный угол шага или количество шагов для шаговых двигателей составляет 1,8 0 или 200 шагов (оба они такие же, как 1,8 0 x 200 = 360 0 ).
Как спроектировать схему управления шаговым двигателем?
В этом проекте мы использовали биполярный шаговый двигатель. Следовательно, мы использовали микросхему Motor Driver IC L293D, которая представляет собой драйвер типа H-моста.Поскольку это биполярный шаговый двигатель, нам нужно подключить всего 4 провода.
Итак, подключите два провода от одной катушки к выходам 1 и 2 L293D, а два других провода от второй катушки к выходам 3 и 4.
4 входа IC L293D Motor Diver предоставлены Arduino UNO. Поэтому подключите их к любому из 4 контактов цифрового ввода / вывода (здесь мы подключили их к контактам 2, 3, 4 и 5 Arduino UNO).
Ознакомьтесь с требованиями к питанию вашего шагового двигателя и обеспечьте необходимый источник питания.Неправильный источник питания приведет к необратимому повреждению двигателя.
Контроль шагов осуществляется с помощью компьютера с использованием последовательного монитора. Итак, убедитесь, что выводы RX и TX Arduino не используются в качестве цифрового ввода-вывода. В качестве альтернативы мы можем контролировать шаги или вращение двигателя с помощью аналогового входа через потенциометр.
Работа над проектом
В этом проекте разработано простое управление шаговым двигателем с использованием Arduino UNO и микросхемы драйвера двигателя L293D. Здесь объясняется работа проекта.
Шаговый двигатель, используемый в этом проекте, представляет собой биполярный шаговый двигатель типа PMH (гибридный двигатель с постоянным магнитом). Поскольку это двухполюсный двигатель, только 4 провода соответствуют концевым клеммам двух катушек. Эти 4 провода подключены к выходным контактам микросхемы драйвера двигателя L293D.
Чтобы управлять шаговым двигателем, мы будем использовать технику под названием «Half Stepping». Двигатель, используемый в этом проекте, имеет 200 шагов. При однофазном шаговом возбуждении, то есть подаче питания только на одну фазу за раз, мы можем достичь нормального вращения на 200 шагов с наименьшим потреблением энергии.
Двухфазное шаговое возбуждение – это еще один метод, при котором одновременно возбуждаются две фазы. При использовании этого метода количество шагов не отличается от однофазного возбуждения, но крутящий момент и скорость значительно увеличиваются.
Но недостаток в том, что требует вдвое большей мощности. На следующем изображении показано четырехэтапное действие однофазного и двухфазного методов возбуждения.
Есть еще одна техника, называемая полушагом. Это комбинация однофазного и двухфазного возбуждения.Количество шагов удваивается, т.е. может быть достигнута половина угла шага.
Таким образом, с половинным шагом мы можем получить удвоенное разрешение при более плавной работе. На изображении ниже показан 8-шаговый метод возбуждения «Half Stepping».
Как упоминалось ранее, угол шага двигателя, используемого в этом проекте, составляет 1,80, то есть 200 шагов для полного шага возбуждения. Чтобы увеличить разрешение (удвоить разрешение), мы будем использовать полушаговое возбуждение и достичь 400 шагов.
Для контроля шагов мы будем использовать серийный монитор. В программе для вращения по часовой стрелке назначен символ «+», а для вращения против часовой стрелки используется знак «-».
После выбора направления мы можем ввести количество шагов напрямую от 1 до 400.
Код
Приложения
- Проект демонстрирует работу шагового двигателя и управления шаговым двигателем с использованием Arduino. Шаговые двигатели обычно используются в роботах, станках с ЧПУ, промышленной автоматизации, небольших устройствах, таких как принтеры и т.