Драйвер шагового двигателя EasyDriver V4.4 A3967

Материал из wiki.my-comp.net

Arduino Shield[править]

Драйвер шагового двигателя A3967 EasyDriver V4.4 используется для управления биполярными шаговыми двигателями постоянного тока в RepRap проектах или любых других проектах с использованием шаговых двигателей. EasyDriver V4.4 может работать в режиме полного шага или микрошага (1/2, 1/4, 1/8 шага).

Для использования драйвера шагового двигателя A3967 EasyDriver V4.4 нужно сначала определится, каким способом он будет включен в схему. Драйвер шагового двигателя A3967 EasyDriver V4.4 по-умолчанию идет с клеммами. Но для удобства использования в комплекте с драйвером идет 20-пиновый коннектор папа – папа. Его можно использовать в случаях, когда нужно подключать драйвер через штыревые контакты. Одиночный штекер можно отсоединить простым отламыванием или отрезанием. С драйвером коннекторы соединяются посредством пайки. Потом к драйвер нужно подключить контроллер, подключить питание и шаговый двигатель.

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

Драйвер шагового двигателя A3967 EasyDriver V4.4 имеет 17 клемм для подключения питания, контроллера и шагового двигателя.

См. Рекомендации по работе с драйверами шаговых двигателей

Программа Arduino для вращения шагового двигателя[править]

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

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


int dirpin = 2;
int steppin = 3;

void setup()
{
pinMode(dirpin, OUTPUT);
pinMode(steppin, OUTPUT);
}

void loop()
{
  int i;
  digitalWrite(dirpin, LOW); // Устанавливаем направление
  delay(100);

  for (i = 0; i<4000; i++) // итерации повторяются до 4000 микрошагов
  {
    digitalWrite(steppin, LOW);
    digitalWrite(steppin, HIGH); // В этих двух строках LOW и HIGH дается команда шаговому двигателю двигаться
    delayMicroseconds(500); // Эта задержка соответствует максимальной скорости данного конкретного шагового двигателя
  }

  digitalWrite(dirpin, HIGH); // Смена направления
  delay(100);

  for (i = 0; i<4000; i++) // Аналогично предыдущему блоку
  {
    digitalWrite(steppin, LOW);
    digitalWrite(steppin, HIGH);
    delayMicroseconds(500);
  }
}