Драйвер шагового двигателя (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 мА |