Драйвер шагового двигателя (Troyka-модуль)

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

Элементы платы

Подключение двигателя

На контакты 1, 2 подключается первая обмотка биполярного шагового двигателя. На контакты 3, 4 — вторая обмотка. Униполярный двигатель подключается точно также, просто не используются выводы из середин обмоток.

Питание двигателя

На колодки Vin подаётся напряжение 4,5–25 В постоянного тока. Для питания двигателя рекомендуется использовать отдельный контур питания, не связанный с цепью питания управляющего контроллера.

К примеру, если вы используете Arduino, не рекомендуется использовать питание с пина 5V Arduino. Это может привести к перезагрузке управляющего контроллера, или к перегрузке регулятора напряжения Arduino. В некоторых случаях допускается использовать для питания шагового двигателя пин Vin Arduino. Например, если Arduino запитана от мощного внешнего источника питания 7–12 В, напряжение которого при включении двигателя не падает ниже 7 В.

Контакты подключения 3-проводного шлейфа

Troyka-Stepper подключается к управляющей электронике по трём 3-проводным шлейфам. Назначение контактов 3-проводных шлейфов:

  • Питание (V) — красный провод. На него должно подаваться напряжение 3,3–5 В, которое используется для питания логической части драйвера шагового двигателя.
  • Земля (G) — чёрный провод. Должен быть соединён с землёй микроконтроллера.
  • Сигнальный — жёлтый провод. Через него происходит управление соответствующим пином модуля.

Для управления модулем используется от одного до трёх сигнальных контакта:

  • Step. Каждый раз, когда напряжение на этом контакте переходит из низкого уровня напряжения в высокий, шаговый двигатель делает следующий шаг.
  • Direction. Направление вращения шагового двигателя зависит от схемы подключения его обмоток и от напряжения на этом пине. Если на пине direction установлен высокий уровень напряжения, двигатель вращается в одну сторону. Если низкий — в другую. Если изменять направление вращения двигателя не нужно, вы можете не подключать этот контакт к микроконтроллеру.
  • Enable. Высокий уровень на этом пине включает подачу напряжения на двигатель. При остановке шагового двигателя в определённом положении, питание продолжает поступать на его управляющую обмотку. Это приводит к нагреву шагового двигателя и излишнему расходу электроэнергии. Чтобы отключить подачу питания на двигатель, достаточно выставить низкий уровень напряжения на этом контакте. При остановке двигателя бывает полезно подать на этот контакт ШИМ-сигнал. Это позволит оставить на двигателе небольшое усилие, необходимое для удержания вала в текущем положении. Электроэнергии в таком случае будет тратится значительно меньше. Если нет необходимости управлять включением двигателя, вы можете не подключать этот контакт к микроконтроллеру. Тогда ток через обмотки двигателя будет течь всегда, если есть напряжение питания.

Индикатор вращения двигателя

Светодиодный индикатор. Горит зелёным при шаге в одну сторону, красным - при шаге в другую сторону.

Пример использования

troykaStepper.ino
// Troyka-Stepper подключён к следующим пинам:
const byte stepPin = 7;
const byte directionPin = 8;
const byte enablePin = 11;
 
// Выдержка для регулировки скорости вращения
int delayTime = 20;
 
void setup() {
  // Настраиваем нужные контакты на выход
  pinMode(stepPin, OUTPUT);
  pinMode(directionPin, OUTPUT);
  pinMode(enablePin, OUTPUT);
 
}
 
void loop() {
 
  // Подаём питание на двигатель
  digitalWrite(enablePin, HIGH);
 
  // Задаём направление вращения по часовой стрелке
  digitalWrite(directionPin, HIGH);
 
  // Делаем 50 шагов
  for (int i = 0; i < 50; ++i) {
    // Делаем шаг
    digitalWrite(stepPin, HIGH);
    delay(delayTime);
 
    digitalWrite(stepPin, LOW);
    delay(delayTime);
  }
 
  // Переходим в режим экономичного удержания двигателя...
  analogWrite(enablePin, 100);
  //... на три секунды
  delay(3000);
 
  // Меняем направление вращения
  digitalWrite(directionPin, LOW);
 
  // Включаем двигатель на полную мощность
  digitalWrite(enablePin, HIGH);
 
  // Делаем 50 шагов
  for (int i = 0; i < 50; ++i) {
    digitalWrite(stepPin, HIGH);
    delay(delayTime);
 
    digitalWrite(stepPin, LOW);
    delay(delayTime);
  }
 
  // Ничего не делаем без отключения двигателя
  delay(3000);
 
  // Отключаем двигатель
  digitalWrite(enablePin, LOW);
 
  // Ничего не делаем до перезагрузки
 
  while (true) {
    ;
  }
 
}

Характеристики модуля

Номинальное напряжение питания двигателя 4,5–25 В
Пиковое напряжение на контактах Vin 35 В
Напряжение питания логической части 3,3–5 В
Длительно допустимый ток до 600 мА
Пиковый ток 1200 мА

Ресурсы