- Шаговые двигатели:
- Расчет шагов на оборот для шагового двигателя:
- Зачем так нужны модули драйверов для шаговых двигателей?
- Схема и объяснение схемы управления положением шагового двигателя Arduino:
- Код для платы Arduino:
- Работа шагового двигателя с Arduino:
Шаговые двигатели все больше занимают свое место в мире электроники. Начиная от обычной камеры наблюдения и заканчивая сложными станками с ЧПУ / роботом, эти шаговые двигатели используются повсеместно в качестве исполнительных механизмов, поскольку они обеспечивают точное управление. Шаговый двигатель - это бесщеточный синхронный двигатель, который совершает полный оборот за несколько шагов. В этом руководстве по шаговым двигателям Arduino мы узнаем о наиболее распространенных шаговых двигателях 28-BYJ48 и о том, как связать его с Arduino с помощью модуля шагового двигателя ULN2003.
Шаговые двигатели:
Давайте взглянем на этот шаговый двигатель 28-BYJ48.
Итак, в отличие от обычного двигателя постоянного тока, из этого выходят пять проводов всех причудливых цветов, и почему это так? Чтобы понять это, мы должны сначала узнать, как работает степпер и в чем его особенность. Прежде всего, шаговые двигатели не вращаются, они шаговые, поэтому их также называют шаговыми двигателями. Это означает, что они будут двигаться только на один шаг за раз. В этих двигателях присутствует последовательность катушек, и эти катушки должны быть запитаны определенным образом, чтобы двигатель вращался. Когда на каждую катушку подается питание, двигатель делает шаг, и последовательность подачи энергии заставляет двигатель делать непрерывные шаги, заставляя его вращаться. Давайте посмотрим на катушки внутри двигателя, чтобы точно знать, откуда берутся эти провода.
Как видите, двигатель имеет униполярную 5-выводную катушку. Есть четыре катушки, на которые нужно подавать напряжение в определенной последовательности. На красные провода будет подано + 5 В, а остальные четыре провода будут заземлены для запуска соответствующей катушки. Мы используем микроконтроллер, такой как Arduino, запитываем эти катушки в определенной последовательности и заставляем двигатель выполнять необходимое количество шагов.
Итак, почему этот мотор называется 28-BYJ48 ? Шутки в сторону!!! Я не знаю. У этого двигателя нет никаких технических причин для такого названия; может быть, нам стоит углубиться в это. Давайте посмотрим на некоторые важные технические данные, полученные из таблицы данных этого двигателя на картинке ниже.
Это голова, полная информации, но нам нужно взглянуть на несколько важных, чтобы знать, какой тип шагового двигателя мы используем, чтобы мы могли его эффективно программировать. Сначала мы знаем, что это шаговый двигатель 5 В, поскольку на красный провод подается напряжение 5 В. Кроме того, мы знаем, что это четырехфазный шаговый двигатель, поскольку в нем было четыре катушки. Теперь передаточное число равно 1:64. Это означает, что вал, который вы видите снаружи, совершит один полный оборот только в том случае, если двигатель внутри вращается 64 раза. Это связано с шестернями, которые соединены между двигателем и выходным валом, эти шестерни помогают увеличить крутящий момент.
Еще одна важная информация, на которую следует обратить внимание, - это угол шага: 5,625 ° / 64. Это означает, что двигатель, когда он работает в 8-ступенчатой последовательности, будет перемещаться на 5,625 градуса для каждого шага, и ему потребуется 64 шага (5,625 * 64 = 360), чтобы совершить один полный оборот. Вы можете узнать больше о работе шаговых двигателей с ARM LPC2148, микроконтроллером ATMega16, MSP430.
Расчет шагов на оборот для шагового двигателя:
Важно знать, как рассчитать количество шагов на оборот для вашего шагового двигателя, потому что только тогда вы сможете эффективно его запрограммировать.
В Arduino мы будем управлять двигателем в 4-х шаговой последовательности, поэтому угол шага будет 11,25 °, поскольку он составляет 5,625 ° (указано в таблице данных) для 8-шаговой последовательности, это будет 11,25 ° (5,625 * 2 = 11,25).
Шагов на оборот = 360 / угол шага
Здесь 360 / 11,25 = 32 шага на оборот.
Зачем так нужны модули драйверов для шаговых двигателей?
Большинство шаговых двигателей работают только с помощью модуля драйвера. Это связано с тем, что модуль контроллера (в нашем случае Arduino) не сможет обеспечить достаточный ток от своих контактов ввода / вывода для работы двигателя. Поэтому мы будем использовать внешний модуль, такой как модуль ULN2003, в качестве драйвера шагового двигателя. Существует много типов модулей драйвера, и номинальные характеристики одного будут меняться в зависимости от типа используемого двигателя. Основным принципом для всех модулей драйверов будет обеспечение достаточного тока для работы двигателя.
Схема и объяснение схемы управления положением шагового двигателя Arduino:
Принципиальная схема для проекта управления шаговым двигателем Arduino показана выше. Мы использовали шаговый двигатель 28BYJ-48 и модуль драйвера ULN2003. Для питания четырех катушек шагового двигателя мы используем цифровые выводы 8, 9, 10 и 11. Модуль драйвера питается от вывода 5 В на плате Arduino.
Но подключите драйвер от внешнего источника питания, когда вы подключаете некоторую нагрузку к степному двигателю. Поскольку я использую двигатель только для демонстрационных целей, я использовал шину + 5V платы Arduino. Также не забудьте соединить землю Arduino с землей модуля Diver.
Код для платы Arduino:
Прежде чем мы начнем программировать с нашим Arduino, давайте разберемся, что на самом деле должно происходить внутри программы. Как было сказано ранее, мы будем использовать метод 4-х шаговой последовательности, поэтому у нас будет четыре шага для выполнения одного полного вращения.
Шаг |
Пин под напряжением |
Катушки под напряжением |
Шаг 1 |
8 и 9 |
А и В |
Шаг 2 |
9 и 10 |
B и C |
Шаг 3 |
10 и 11 |
C и D |
Шаг 4 |
11 и 8 |
D и A |
Модуль драйвера будет иметь четыре светодиода, с помощью которых мы сможем проверить, какая катушка находится под напряжением в любой момент времени. Видео, в котором показана последовательность включения питания, можно найти в конце этого руководства.
В этом руководстве мы собираемся написать код шагового двигателя Arduino, и для этого мы запрограммируем Arduino таким образом, чтобы мы могли вводить количество шагов, которые должен сделать шаговый двигатель, через последовательный монитор Arduino. Полную программу можно найти в конце руководства, несколько важных строк объяснены ниже.
Число шагов на оборот для нашего шагового двигателя было рассчитано 32; следовательно, мы вводим это, как показано в строке ниже
#define ШАГИ 32
Затем вам нужно создать экземпляры, в которых мы указываем контакты, к которым мы подключили шаговый двигатель.
Шаговый шаговый (ШАГИ, 8, 10, 9, 11);
Примечание: номера выводов намеренно неупорядочены как 8,10,9,11. Вы должны следовать той же схеме, даже если вы измените контакты, к которым подключен ваш двигатель.
Поскольку мы используем библиотеку шаговых двигателей Arduino, мы можем установить скорость двигателя, используя строку ниже. Скорость может варьироваться от 0 до 200 для шаговых двигателей 28-BYJ48.
stepper.setSpeed (200);
Теперь, чтобы заставить двигатель двигаться на один шаг, мы можем использовать следующую строку.
stepper.step (val);
Количество шагов, которые нужно переместить, будет предоставлено переменной «val». Поскольку у нас 32 ступени и 64 передаточного числа, нам нужно переместить 2048 (32 * 64 = 2048), чтобы сделать один полный оборот.
Значение переменной «val» может быть введено пользователем с помощью последовательного монитора.
Работа шагового двигателя с Arduino:
После подключения оборудование должно выглядеть примерно так, как показано на рисунке ниже.
Теперь загрузите приведенную ниже программу в свой Arduino UNO и откройте монитор последовательного порта. Как обсуждалось ранее, нам нужно будет сделать 2048 шагов, чтобы совершить один полный оборот, поэтому, когда мы введем 2048, двигатель сделает один полный оборот по часовой стрелке, сделав 2048 шагов. Для поворота против часовой стрелки просто введите число со знаком «-». Таким образом, ввод -1024 заставит двигатель повернуться наполовину против часовой стрелки. Вы можете ввести любые желаемые значения, например, ввод 1 заставит двигатель делать только один шаг.
Надеюсь, вы поняли проект и получили удовольствие от его создания. Полная работа проекта показана на видео ниже. Если у вас есть какие-либо сомнения, напишите их в разделе комментариев ниже на нашем форуме.