Миниатюрный шаговый двигатель

Иногда мне в руки попадают различные устройства, которые необходимо отладить и протестить их работу. В некоторых случаях это не так просто, так как тяжело найти какую либо информацию по устройству. Приходится изучать большое количество ресурсов. Поэтому буду «складировать» полученную информацию на Хабре. Возможно, она кому-то пригодится.

С чем я работал

Для отладки работы миниатюрного шагового двигателя мне понадобилось:

  • Плата расширения для драйверов шаговых двигателей и, собственно, сам драйвер. Я взял A4988.

Плата расширения с драйвером

Плата расширения с драйвером

Шаговый двигатель

Шаговый двигатель

Отладка (подключение)

Моя задача была не сложной, мне необходимо было добиться точного позиционирования (движение на задаваемый угол), ведь это одно из преимуществ, ради которого мы используем шаговые двигатели.
Я не буду подробно рассказывать, что такое шаговый двигатель и принцип его работы, на просторах интернета этой информации предостаточно. Скажу только, что у меня 2-х фазный шаговик, а следовательно в его конструкции используется две обмотки.

Шаговичок

Шаговичок

Шаговые двигатели приходят в разной комплектации. Мне же пришел точь-в-точь как на картинке. Я бы сказал полусырой. Любителям пайка понравится работать с таким. Корпус, из которого торчат миниатюрные штырьки. При перегреве эти штырьки грациозно вылетают из пластикового корпуса, после чего их обратный монтаж почти не реален. Поэтому рекомендую сразу искать с напаянным переходником, сохраните большую часть нервной системы.
Кстати, эта картинка все, что у меня было по данным шаговичкам, а больше и не надо. Знаю где вход и выход каждой фазы. Но всё же, прозвоните на всякий случай и найдите эти самые вход и выход каждой фазы.

Теперь разберемся, куда подключать в плату расширения, припаянные к шаговичку провода.

Контакты

Контакты

Думаю, у кого есть мультиметр, легко определит эти контакты. Почему важно их определить, потому что на картинке с шаговичком есть А+ А- В+ В-, а на драйвере и плате расширения обозначение А2 А1 В2 В1. Это было самое сложное, с чем мне предстояло столкнуться. Сиди, думай, куда и что подключать.
Ниже будет очень важная картинка, которая мне помогла решить данную задачку.

Как мы видим в пины 2В и 2А необходимо подключать одну обмотку, а в 1А и 1В — другую. И это самое главное, что нам необходимо знать при подключении.

Пины драйвера

Пины драйвера

Итог подключения:

Подключение

Подключение

Отладка (программа)

Я не стал изобретать велосипед, ведь у Гувера (AlexGyver) есть отличная библиотека для работы с шаговыми двигателями. Хотя, там мне тоже пришлось много чего попробовать и почитать, чтобы программа заработала, как мне надо.

#define DRIVER_STEP_TIME 2 

#include "GyverStepper.h"
GStepper< STEPPER2WIRE> stepper(22, 2, 3);  //Точно калибруется тут (1-ый параметр)

void setup() {
  stepper.setMaxSpeed(50);   // установка максимальной скорости по модулю в шагах/секунду, тип данных float.
  stepper.setTargetDeg(180);  // отправляем на 180 градусов
}
void loop() {
  while (stepper.tick());     // ждём, когда мотор доедет
  stepper.setTargetDeg(0);    // отправляем на 0 градусов
  while (stepper.tick());     // ждём, когда мотор доедет
  stepper.setTargetDeg(270);  // отправляем на 270 градусов
}

Так как мне нужно было именно позиционировать, то вся загвоздка была тут:

GStepper< STEPPER2WIRE> stepper(22, 2, 3);

Первый параметр в скобочках, это количество шагов на один оборот. А данный параметр нужно брать из документации на двигатель. Эту самую документацию на мой шаговичок я нигде не нашел. Поэтому этот параметр я подобрал эмпирически. Возможно он ±1, угол я измерял на глаз.
Стоит отметить, что данный параметр будем меняться при изменение микрошага на плате расширения (красная коробочка с переключателями).

Конец

Надеюсь данная статья упростит путь новичка в освоении шаговых двигателей.

Экспресс отладка

Экспресс отладка

Habrahabr.ru прочитано 2743 раза