Плата arduino uno для шагового двигателя

CNC-DESIGN

В корзине пусто!

Сборка и настройка Arduino Uno и CNC Sheild v.3

Набор Arduino Uno и CNC Sheild v3 — это комплект электроники, позволяющий управлять шаговыми двигателями и различными периферийными устройствами для реализации проектов различных ЧПУ устройств, таких как фрезерные и токарные станки, лазерные граверы и т. п. Данный комплект позволяет реализовать параллельную работу шаговых двигателей, что необходимо для некоторых проектов, когда используются два мотора на одной оси, обычно это ось Y.

В комплект входят:

1. Плата Arduino Uno R3.0 ;
2. Плата расширения CNC Shield V3.0 ;
3. Четыре драйвера А4988 или DRV8825 для шаговых двигателей, с радиаторами;
4. Кабель для связи с компьютером USB.

Характеристики комплекта:

— совместим с прошивкой GRBL и стандартным G-кодом;

— к оличество осей: до 4 (X, Y, Z, A);

— до 6-ти концевых выключателей;

— управление шпинделем (включение, направление вращения, охлаждение) или другим исполнительным устройством;

— драйверы шаговых двигателей: A4988, DRV8825 или аналогичные;

— интерфейсы: UART, I2C

— напряжение питания: 12…36В;

— размеры — 65×55×20 мм;

С чего начать?

Для базовой настройки набора понадобится:

— компьютер для загрузки прошивки;

— шаговые двигатели NEMA17 с разъемом Dupont с 4 контактами;

блок питания для моторов, обычно это 12В и не менее 3А;

Шаг первый.

Сборка «бутерброда» из плат Arduino Uno и CNC Sheild v. 3.

На фотографии показана установка платы CNC Sheild v. 3 на Arduino Uno. Перепутать достаточно сложно.

Шаг второй.

Плата CNC Sheild V.3 интересна тем, что позволяет распараллеливание шаговых двигателей для любой из осей. Это позволяет реализовывать проекты с двумя шаговыми двигателями на одну ось без дополнительных проблем.

Для реализации данной функции необходимо установить 2 джемпера в соответствующие выводы, напротив нужной оси.

Шаг третий.

Настройка тока драйверов шаговых двигателей.

Драйвера шаговых двигателей A4988 являются наиболее дешевыми и распространенными, но имеют два основных недостатка:

— шум при работе моторов;

— максимальное значение микрошага 1/16.

Замечательно подходят для построения максимально дешевой системы управления оборудованием.

Драйвера DRV8825 немного дороже, но позволяют реализовать более точную систему с микрошагом 1/32, с более низкими шумами при работе моторов.

При использовании драйверов шаговых двигателей А4988 или DRV8825 необходимо помнить, что драйвера при установке необходимо ориентировать по разному. Ориентиром может служить подстроечный резистор.

Настройку тока драйверов мы рассматривали в статье « Настройка тока драйвера шагового двигателя ».

Для настройки тока необходимо:

— установить драйвера в соответствующие слоты CNC Sheild v. 3;

— подключить плату к компьютеру при помощи USB кабеля;

Напомним основные моменты при настройке тока:

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

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

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

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

Шаг четвертый.

Выбор и настройку микрошага для шагового двигателя мы описывали в статье « Микрошаг — выбор и применение ».

Напомним основные моменты:

— повышение значения микрошага ведет к потере крутящего момента на шаговом двигателе;

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

Например, при использовании ЧПУ станках трапецеидальных винтов с ходом 2 мм. Рассчитаем точность позиционирования при основном шаге. Двигатель Nema17 имеет 200 шагов на оборот.

Точность позиционирования получается следующая:

— перемещение на один оборот — 2 мм;

— шагов на оборот — 200 шагов;

2 мм/ 200 шагов = 0,01 мм/шаг

Подобная точность достаточна для самостоятельных проектов.

При использовании шкивов GT2 20 зубьев (дать ссылку) в приводе, получим следующие значения:

— перемещение на один оборот — 40 мм;

— шагов на оборот — 200 шагов;

40 мм/ (200 шагов * 16) = 0,0125 мм/шаг

После настройки микрошага необходимо установить драйвера шаговых двигателей.

Шаг пятый.

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

На CNC Sheild v. 3 это можно реализовать двумя путями:

— подключить блок питания с помощью разъема DC;

— подключит блок питания к клеммной колодке проводами.

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

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

Шаг шестой.

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

Подключение шаговых двигателей происходит посредством разъемов Dupont на 4 контакта, шаг разъема 2,54 мм.

Если вы купили двигатели без таких разъемов, то необходимо самостоятельно обжать их, соблюдая соответствие проводов вашего двигателя и выводом на плате CNC Sheild v.3.

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

Они должны совпадать с описанием к выбранным шаговым двигателям.

Шаговый двигатель ноебходимо подключать в слот рядом с драйвером.

Шаг седьмой.

После подключения блока питания и шаговых двигателей необходимо залить в контроллер прошивку GRBL. Мы описывали это в статье «Прошивка GRBL — скачиваем, прошиваем» .

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

Источник

Подключение шагового двигателя к Ардуино

Шаговый двигатель (stepper motor) предназначен для точного позиционирования или перемещения объекта на заданное количество шагов вала. Плата Arduino может управлять шаговым двигателем с помощью драйвера и библиотеки stepper.h или accelstepper.h. Рассмотрим принцип работы и схему подключения шагового двигателя к Arduino Uno / Nano, а также разберем скетч для управления шаговым мотором.

Принцип работы шагового двигателя

В зависимости от конструкции, сегодня применяются три вида шаговых двигателей: с постоянным магнитом, с переменным магнитным сопротивлением и гибридные двигатели. У двигателей с постоянным магнитом число шагов на один оборот вала доходит до 48, то есть один шаг соответствует повороту вала на 7,5°. Гибридные двигатели обеспечивают не меньше 400 шагов на один оборот (угол шага 0,9°).

Фото. Устройство шагового мотора в разрезе

Подсчитав количество сделанных шагов, можно определить точный угол поворота ротора. Таким образом, шаговый двигатель является сегодня идеальным приводом в 3D принтерах, станках с ЧПУ и в другом промышленном оборудовании. Это лишь краткий обзор устройства и принципа работы stepper motor, нас больше интересует, как осуществляется управление шаговым двигателем с помощью Ардуино.

Драйвер шагового двигателя Ардуино

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

Фото. Виды драйверов для управления шаговым двигателем

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

Схема подключения шагового двигателя 28BYJ-48 к Arduino Uno через драйвер ULN2003 изображена на рисунке ниже. Основные характеристики мотора 28BYJ-48: питание от 5 или 12 Вольт, 4-х фазный двигатель, угол шага 5,625°. Порты драйвера IN1 — IN4 подключаются к любым цифровым выводам платы Arduino Mega или Nano. Светодиоды на модуле служат для индикации включения катушек двигателя.

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

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • драйвер шагового двигателя ULN2003;
  • шаговый двигатель 28BYJ-48;
  • провода «папа-мама».

Источник

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

Шаговые двигатели с каждым годом приобретают все большую популярность в мире электроники поскольку именно они обеспечивают превосходную точность позиционирования различных механизмов. В этой статье мы рассмотрим подключение одного из самых распространенных шаговых двигателей 28-BYJ48 к плате Arduino при помощи модуля ULN2003 и управление им с помощью потенциометра.

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

Общие принципы работы шаговых двигателей

Внешний вид шагового двигателя 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).

Справедлива следующая формула:

Количество шагов за оборот = 360 / угол шага.

В нашем случае 360/11.25 = 32 шага за оборот.

Зачем нужен драйвер мотора для управления шаговым двигателем

Большинство шаговых двигателей будут работать только с помощью модуля драйвера мотора. Это связано с тем, что микроконтроллер (в нашем случае плата Arduino) не может обеспечить достаточный ток на своих контактах ввода/вывода для работы двигателя. Поэтому мы будем использовать внешний драйвер мотора для управления нашим шаговым двигателем — модуль ULN2003 (купить на AliExpress). В сети интернет можно найти рейтинги эффективности различных драйверов мотора, но эти рейтинги будут меняться в зависимости от типа используемого шагового двигателя. Основной принцип, которого следует придерживаться при выборе драйвера мотора – он должен обеспечивать достаточный ток для управления шаговым двигателем.

Работа схемы

Схема устройства представлена на следующем рисунке.

Чтобы подавать питание на соответствующие катушки шагового двигателя мы будем использовать цифровые контакты 8, 9, 10 и 11 платы Arduino, к которым подключены соответствующие контакты драйвера двигателей ULN2003. Потенциометр, с помощью которого мы будем управлять вращением шагового двигателя, подключен к аналоговому контакту A0 платы Arduino.

Драйвер мотора запитывается от контакта 5V платы Arduino. Но если вы будете подсоединять какую-нибудь нагрузку к шаговому двигателю, то вам потребуется внешний источник питания для драйвера мотора. Мы в нашем примере эксплуатируем шаговый двигатель без нагрузки, поэтому нам хватило питания от платы Arduino. И не забудьте соединить землю платы Arduino с землей драйвера мотора.

Объяснение программы для платы Arduino

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

Номер шага Контакты, на которое подается питание Катушки, на которое подается питание
Шаг 1 8 и 9 A и B
Шаг 2 9 и 10 B и C
Шаг 3 10 и 11 C и D
Шаг 4 11 и 8 D и A

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

Мы напишем программу, в которой необходимое количество шагов для двигателя мы будем вводить в мониторе последовательного порта (serial monitor) платы Arduino. Полный текст программы приведен в конце статьи, здесь же мы рассмотрим наиболее важные его фрагменты.

Как мы рассчитали ранее, полное число шагов для полного оборота нашего шагового двигателя, равно 32, пропишем это в следующей строчке кода:

#define STEPS 32

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

Stepper stepper (STEPS, 8, 10, 9, 11);

Примечание: последовательность номеров контактов, указанная в приведенной команде (8,10,9,11) – специально упорядочена таким образом чтобы подавать питание на катушки шагового двигателя в правильном порядке. Если вы измените номера контактов, к которым подключен шаговый двигатель, то вы соответствующим образом должны их упорядочить для подачи в приведенную команду.

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

Для двигателя 28-BYJ48 скорость вращения можно установить в диапазоне от 0 до 200.

Теперь, чтобы двигатель сделал один шаг, мы можем использовать следующую команду:

Количество шагов, которое должен сделать двигатель, определяется переменной “val”. Поскольку мы имеем 32 шага (для оборота) и передаточное число 64 мы должны сделать 2048 (32*64=2048) “шагов” в этой команде для совершения одного полного оборота двигателя.

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

А один шаг против часовой стрелки:

В нашей программе мы будем считывать значение на аналоговом контакте A0 платы Arduino и сравнивать его с предыдущим значением (Pval). Если оно увеличилось, то мы будем делать 5 шагов двигателем по часовой стрелке, а если уменьшилось – то 5 шагов двигателем против часовой стрелки.

potVal = map(analogRead(A0),0,1024,0,500);
if (potVal>Pval)
stepper.step(5);
if (potVal

stepper.step(-5);
Pval = potVal;

Работа проекта

Когда вы сделаете все необходимые соединения в схеме данного проекта у вас должна получиться примерно следующая конструкция:

После этого загрузите программу в плату Arduino и откройте окно монитора последовательной связи (serial monitor). После этого вы можете вращать ручку потенциометра и наблюдать как в соответствии с ее поворотами шаговый двигатель будет вращаться по часовой и против часовой стрелки.

Исходный код программы

Код программы достаточно простой, я надеюсь у вас не вызовет никаких затруднений реализация данного проекта.

Источник

Adblock
detector