Для управления шаговым двигателем при помощи микроконтроллера нужно не только управлять большой нагрузкой, но и обеспечить необходимую последовательность управляющих импульсов. Драйвер шагового двигателя из линейки Troyka-модулей позволяет микроконтроллеру управлять биполярным и униполярным шаговым двигателем.
На контакты 1, 2 подключается первая обмотка биполярного шагового двигателя. На контакты 3, 4 — вторая обмотка. Униполярный двигатель подключается точно также, просто не используются выводы из середин обмоток.
На колодки Vin подаётся напряжение 4,5–25 В постоянного тока. Для питания двигателя рекомендуется использовать отдельный контур питания, не связанный с цепью питания управляющего контроллера.
К примеру, если вы используете Arduino, не рекомендуется использовать питание с пина 5V Arduino. Это может привести к перезагрузке управляющего контроллера, или к перегрузке регулятора напряжения Arduino. В некоторых случаях допускается использовать для питания шагового двигателя пин Vin Arduino. Например, если Arduino запитана от мощного внешнего источника питания 7–12 В, напряжение которого при включении двигателя не падает ниже 7 В.
Troyka-Stepper подключается к управляющей электронике по трём 3-проводным шлейфам. Назначение контактов 3-проводных шлейфов:
Для управления модулем используется от одного до трёх сигнальных контакта:
Светодиодный индикатор. Горит зелёным при шаге в одну сторону, красным - при шаге в другую сторону.
// 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 мА |