- Шаговые двигатели:
- Расчет шагов на оборот для шагового двигателя:
- Зачем так нужны модули драйверов для шаговых двигателей?
- Принципиальная схема вращающегося шагового двигателя с помощью потенциометра:
- Код для платы Arduino:
- За работой:
Шаговые двигатели все больше занимают свое место в мире электроники. Начиная с обычной камеры наблюдения и заканчивая сложными станками с ЧПУ / роботом, эти шаговые двигатели используются повсеместно в качестве исполнительных механизмов, поскольку они обеспечивают точное управление. В этом руководстве мы узнаем о наиболее распространенном / дешевом шаговом двигателе 28-BYJ48 и о том, как связать его с Arduino с помощью шагового модуля ULN2003.
В последнем проекте мы просто использовали шаговый двигатель с интерфейсом Arduino, где вы можете вращать шаговый двигатель, вводя угол поворота в Serial Monitor Arduino. Здесь, в этом проекте, мы будем вращать шаговый двигатель с помощью потенциометра и Arduino, например, если вы повернете потенциометр по часовой стрелке, то шаговый двигатель будет вращаться по часовой стрелке, а если вы повернете потенциометр против часовой стрелки, он будет вращаться против часовой стрелки.
Шаговые двигатели:
Давайте взглянем на этот шаговый двигатель 28-BYJ48.
Итак, в отличие от обычного двигателя постоянного тока, из этого выходят пять проводов всех причудливых цветов, и почему это так? Чтобы понять это, мы должны сначала узнать, как работает степпер и в чем его особенность. Прежде всего, шаговые двигатели не вращаются, они шаговые, поэтому их также называют шаговыми двигателями. Это означает, что они будут двигаться только на один шаг за раз. В этих двигателях присутствует последовательность катушек, и эти катушки должны быть запитаны определенным образом, чтобы двигатель вращался. Когда на каждую катушку подается питание, двигатель делает шаг, и последовательность подачи энергии заставляет двигатель делать непрерывные шаги, заставляя его вращаться. Давайте посмотрим на катушки внутри двигателя, чтобы точно знать, откуда берутся эти провода.
Как видите, двигатель имеет униполярную 5-выводную катушку. Есть четыре катушки, на которые нужно подавать напряжение в определенной последовательности. На красные провода будет подано + 5 В, а остальные четыре провода будут заземлены для запуска соответствующей катушки. Мы используем микроконтроллер, такой как Arduino, запитываем эти катушки в определенной последовательности и заставляем двигатель выполнять необходимое количество шагов.
Итак, почему этот мотор называется 28-BYJ48 ? Шутки в сторону!!! Я не знаю. У этого двигателя нет никаких технических причин для такого названия; может быть, нам стоит углубиться в это. Давайте посмотрим на некоторые важные технические данные, полученные из таблицы данных этого двигателя на картинке ниже.
Это голова, полная информации, но нам нужно взглянуть на несколько важных, чтобы знать, какой тип шагового двигателя мы используем, чтобы мы могли его эффективно программировать. Сначала мы знаем, что это шаговый двигатель 5 В, поскольку на красный провод подается напряжение 5 В. Кроме того, мы знаем, что это четырехфазный шаговый двигатель, поскольку в нем было четыре катушки. Теперь передаточное число равно 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, в качестве драйвера шагового двигателя. Существует много типов модулей драйвера, и номинальные характеристики одного будут меняться в зависимости от типа используемого двигателя. Основным принципом для всех модулей драйверов будет обеспечение достаточного тока для работы двигателя.
Принципиальная схема вращающегося шагового двигателя с помощью потенциометра:
Принципиальная схема для управления шаговым двигателем с помощью потенциометра и Arduino показана выше. Мы использовали шаговый двигатель 28BYJ-48 и модуль драйвера ULN2003. Для питания четырех катушек шагового двигателя мы используем цифровые выводы 8, 9, 10 и 11. Модуль драйвера питается от вывода 5 В на плате Arduino. Потенциометр подключен к A0, в значениях которого мы будем вращать шаговый двигатель.
Но подключите драйвер от внешнего источника питания, когда вы подключаете некоторую нагрузку к степному двигателю. Поскольку я использую двигатель только для демонстрационных целей, я использовал шину + 5V платы Arduino. Также не забудьте подключить заземление Arduino к заземлению модуля драйвера.
Код для платы Arduino:
Прежде чем мы начнем программировать с нашим Arduino, давайте разберемся, что на самом деле должно происходить внутри программы. Как было сказано ранее, мы будем использовать метод 4-х шаговой последовательности, поэтому у нас будет четыре шага для выполнения одного полного вращения.
Шаг |
Пин под напряжением |
Катушки под напряжением |
Шаг 1 |
8 и 9 |
А и В |
Шаг 2 |
9 и 10 |
B и C |
Шаг 3 |
10 и 11 |
C и D |
Шаг 4 |
11 и 8 |
D и A |
Модуль драйвера будет иметь четыре светодиода, с помощью которых мы сможем проверить, какая катушка находится под напряжением в любой момент времени. Полное демонстрационное видео можно найти в конце этого руководства.
В этом уроке мы собираемся запрограммировать Arduino таким образом, чтобы мы могли повернуть потенциометр, подключенный к выводу A0, и управлять направлением шагового двигателя. Полную программу можно найти в конце руководства, несколько важных строк объяснены ниже.
Число шагов на оборот для нашего шагового двигателя было рассчитано 32; следовательно, мы вводим это, как показано в строке ниже
#define ШАГИ 32
Затем вам нужно создать экземпляры, в которых мы указываем контакты, к которым мы подключили шаговый двигатель.
Шаговый шаговый (ШАГИ, 8, 10, 9, 11);
Примечание: номера выводов намеренно неупорядочены как 8,10,9,11. Вы должны следовать той же схеме, даже если вы измените контакты, к которым подключен ваш двигатель.
Поскольку мы используем библиотеку шаговых двигателей Arduino, мы можем установить скорость двигателя, используя строку ниже. Скорость может варьироваться от 0 до 200 для шаговых двигателей 28-BYJ48.
stepper.setSpeed (200);
Теперь, чтобы заставить двигатель двигаться на один шаг по часовой стрелке, мы можем использовать следующую строку.
stepper.step (1);
Чтобы заставить двигатель двигаться на один шаг против часовой стрелки, мы можем использовать следующую строку.
stepper.step (-1);
В нашей программе мы прочитаем значение аналогового вывода A0 и сравним его с предыдущим значением (Pval). Если он увеличился, мы перемещаемся на 5 шагов по часовой стрелке, а если он уменьшился, мы перемещаемся на 5 шагов против часовой стрелки.
potVal = map (analogRead (A0), 0,1024,0,500); если (potVal> Pval) stepper.step (5); если (potVal
За работой:
После подключения оборудование должно выглядеть примерно так, как показано на рисунке ниже.
Теперь загрузите приведенную ниже программу в свой Arduino UNO и откройте монитор последовательного порта. Как обсуждалось ранее, вам нужно вращать потенциометр, чтобы контролировать вращение шагового двигателя. При вращении по часовой стрелке шаговый двигатель будет вращаться по часовой стрелке и наоборот.
Надеюсь, вы поняли проект и получили удовольствие от его создания. Полная работа проекта показана на видео ниже. Если у вас есть сомнения, напишите их в разделе комментариев ниже или на нашем форуме.