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

Требования
Вот список рекомендуемых предметов, необходимых для выполнения:
Драйвер шагового двигателя EasyDriver
Малый шаговый двигатель
Макет
Провода-перемычки «папа-папа»
Заголовки мужского отрыва – прямые
Arduino Uno (или аналогичный микроконтроллер)
Паяльник и аксессуары
Источник питания 12 В (или переменный источник питания)
Как это работает
Шаговые двигатели отличаются от обычных двигателей постоянного тока тем, что они не просто вращаются в том или ином направлении, а могут вращаться с очень точными приращениями. Представьте себе двигатель на радиоуправляемом самолете. Двигатель вращается очень быстро в том или ином направлении. Вы можете изменять скорость в зависимости от мощности, подаваемой на двигатель, но вы не можете заставить пропеллер остановиться в определенном положении. Теперь представьте себе принтер. Внутри принтера есть много движущихся частей, включая двигатели. Один из таких двигателей действует как подача бумаги, вращая ролики, которые перемещают лист бумаги по мере того, как на нем печатаются чернила. Этот двигатель должен иметь возможность перемещать бумагу на точное расстояние, чтобы иметь возможность печатать следующую строку текста или следующую строку изображения. Есть еще один двигатель, прикрепленный к резьбовому стержню, который перемещает печатающую головку вперед-назад. Опять таки, этот резьбовой стержень нужно переместить на точную величину, чтобы печатать одну букву за другой. Здесь на помощь приходят шаговые двигатели.
Шаговые двигатели могут перемещаться на точное количество градусов (или шагов), когда об этом говорят. Это дает вам полный контроль над мотором, позволяя перемещать его в точное место и удерживать в этом положении. Это достигается за счет питания катушек внутри двигателя в течение очень коротких периодов времени. Компромисс заключается в том, что вам нужно постоянно включать двигатель, чтобы удерживать его в желаемом положении. Мы не будем вдаваться в подробности, но вы можете прочитать эту статью в Википедии о шаговых двигателях для получения всей необходимой информации. Все, что вам нужно знать на данный момент, это то, что для перемещения шагового двигателя вы говорите ему сделать определенное количество шагов в одном или другом направлении и сообщаете ему скорость, с которой нужно двигаться в этом направлении.
Существует множество разновидностей шаговых двигателей, а также плат драйверов, с помощью которых можно ими управлять. Описанные здесь методы можно использовать для определения того, как использовать другие двигатели и драйверы, не упомянутые в этом руководстве. Тем не менее, всегда рекомендуется обращаться к таблицам данных и руководствам по двигателям и драйверам, характерным для имеющихся у вас моделей.
Как это использовать
Здесь мы обсудим, как собрать, подключить и управлять вашим мотором с прошивкой, загруженной в Arduino.
Сборка
Самый простой способ использовать EasyDriver — прикрепить к нему заголовки для легкой вставки на макетную плату. Кроме того, вы можете припаять провода прямо к плате. В этих инструкциях предполагается, что вы используете макетный метод.
Первый шаг — припаять к EasyDriver прямые штекерные разъемы. В этом примере будет использовано очень мало реальных контактов EasyDriver. Тем не менее, рекомендуется припаять разъемы на все сломанные контакты, чтобы придать плате большую устойчивость при подключении к макетной плате. Простой способ для этого — отломить необходимое количество разъемов, поместить их на макетную плату в соответствующих местах, поместить сверху EasyDriver, а затем припаять все соединения.
Монтировать
После того, как вы припаяли все разъемы, пришло время подключить EasyDriver к вашему Arduino. Используя рисунок ниже, сделайте все необходимые соединения.
Примечание . Маленький шаговый двигатель выглядит иначе, чем изображенный на рисунке. На конце должен быть 4-контактный разъем. Он будет прикреплен к 4-контактному штекерному разъему вверх (см. рисунок № 3 в сборке). Из-за особенностей этого конкретного шагового двигателя вы можете подключить разъем в любой ориентации, то есть либо черный провод слева, либо желтый провод слева. Это будет работать в любом случае. Если вы используете другой двигатель, обратитесь к его документации, чтобы узнать, какие провода куда должны идти.
ВАЖНО : шаговым двигателям требуется больше энергии, чем может обеспечить Arduino. В этом примере мы будем питать Uno от внешнего источника 12 В. Обратите внимание, что вход питания (M+) на EasyDriver подключен к контакту Vin на Arduino. Это позволит вам питать Arduino и двигатель одним и тем же источником питания.
Прошивка
После того, как вы все правильно подключили, вы можете загрузить прошивку в Arduino. Ниже приведен очень простой пример кода, который поможет вам начать работу. В Интернете есть множество примеров, а также библиотека Stepper, входящая в состав Arduino IDE. Не стесняйтесь экспериментировать с этим кодом, изменяя значения, чтобы увидеть, что происходит, и не стесняйтесь исследовать другой код.
/*************************
Joel Bartlett
SparkFun Electronics
December 27, 2012
This code controls a stepper motor with the
EasyDriver board. It spins forwards and backwards
***************************/
int dirpin = 2;
int steppin = 3;
void setup()
{
pinMode(dirpin, OUTPUT);
pinMode(steppin, OUTPUT);
}
void loop()
{
int i;
digitalWrite(dirpin, LOW); // Set the direction.
delay(100);
for (i = 0; i<4000; i++) // Iterate for 4000 microsteps.
{
digitalWrite(steppin, LOW); // This LOW to HIGH change is what creates the
digitalWrite(steppin, HIGH); // "Rising Edge" so the easydriver knows to when to step.
delayMicroseconds(500); // This delay time is close to top speed for this
} // particular motor. Any faster the motor stalls.
digitalWrite(dirpin, HIGH); // Change direction.
delay(100);
for (i = 0; i<4000; i++) // Iterate for 4000 microsteps
{
digitalWrite(steppin, LOW); // This LOW to HIGH change is what creates the
digitalWrite(steppin, HIGH); // "Rising Edge" so the easydriver knows to when to step.
delayMicroseconds(500); // This delay time is close to top speed for this
} // particular motor. Any faster the motor stalls.
}
Теперь, когда вы поняли, как управлять шаговым двигателем на самом простом уровне, пришло время перейти на следующий уровень. В Интернете есть огромное количество информации о Easy Driver и шаговых двигателях в целом. Следующим лучшим местом для поиска будет веб- сайт EasyDriver . На сайте bildr также есть отличный туториал . Еще один отличный ресурс — схема EasyDriver . Если вам интересно, что делают другие контакты на EasyDriver, схема даст вам некоторое представление. Наконец, вы можете ознакомиться с одним из моих проектов, связанных с шаговыми двигателями, Arduija . В нем я использую шаговые двигатели, управляемые EasyDrivers, для создания XY-портала, который автоматически перемещает доску для спиритических сеансов.