Содержание

Драйвер шагового двигателя (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-проводных шлейфов:

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

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

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

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

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 мА

Ресурсы