- Схема управления шаговым двигателем от кнопок
- Подключение шагового двигателя к Ардуино
- Принцип работы шагового двигателя
- Драйвер шагового двигателя Ардуино
- Как подключить шаговый двигатель к Ардуино
- БИБЛИОТЕКА ДЛЯ ШАГОВОГО ДВИГАТЕЛЯ ARDUINO
- БИБЛИОТЕКА GYVERSTEPPER
- ДОКУМЕНТАЦИЯ
- Документация
- Инициализация
- Время шага [NEW!]
- Медленные скорости (new!)
- Тик и тайминги
- Смена направления
- Режимы работы
- Режим FOLLOW_POS
- Режим KEEP_SPEED
- Алгоритм планировщика скорости
- Остановка и сброс
- Управление питанием
Схема управления шаговым двигателем от кнопок
Материал перевел и подготовил RA3TOX (сайт «Радиофанат»)
В данной статье описывается простой способ ручного управления четырехполюсным однополярным шаговым двигателем. Для этого необходим галетный переключатель, восемь недорогих выпрямительных диодов и несколько других компонентов.
Полная схема для ручного управления шаговым электродвигателем показана на рисунке 1. Поворачивая галетный переключатель S1 по часовой стрелке, шаговый двигатель вращается также по часовой стрелке. Поверните поворотный переключатель против часовой стрелки, а шаговый двигатель вращается против часовой стрелки. Поверните поворотный переключатель, и шаговый двигатель остановится с полным крутящим моментом (называемым удерживающим моментом). Это имитирует базовые функции управления, доступные со стандартного контроллера шагового двигателя — за исключением того, что ручной контроллер шагового двигателя работает полностью вручную. С помощью светодиода и геркона можно контролировать состояние двигателя, когда он завершит один полный оборот.
Рис.1. Схема устройства.
Возможные аврианты применения устройства — это позиционирование световых или вентиляционных отверстий, ручное вращение стрелок настенных часов, дистанционное управление роботами и роботизированными игрушками, видеокамерами. Для радиолюбителей возможно его применение в поворотных устройствах антенн, вращении конденсаторов в магнитных рамочных антеннах и т.п.
Четырехполюсный униполярный шаговый двигатель может, как правило, управляться четырьмя различными способами — каждый из которых имеет свои преимущества и недостатки:
- Управление волной (Wave control) — это самая простая форма управления, так как она возбуждает только одну обмотку (или фазу) за раз. Его главный недостаток — плохой крутящий момент.
- Полношаговое управление (Full-step control) — это простое средство управления с хорошим крутящим моментом, использующее одновременно две обмотки двигателя.
- Полушаговое управление (Half-step control) . Это более сложная форма управления,имеющая по сравнению с предыдущим методов в два раза больше шагов. Он имеет хороший крутящий момент и стабилизирует работу двигателя. Однако этот метод не подходит при ручном управлении.
- Микрошаговый контроль (Micro-steppping control) — это комплексная форма управления со сложной схемой, которая обеспечивает бесчисленные «промежуточные шаги» и высокую точность. Он часто используется в промышленности.
Для наших целей нам лючше всего подходит полношаговый контроль, так как он прост в реализации и имеет хороший крутящий момент. Для этого необходимо, чтобы 4-х битная управляющая последовательность двигалась вправо или влево по обмоткам шагового двигателя. Однополюсный четырехпозиционный галетный переключатель будет выполнять эту задачу с помощью мультиплексирования восемью диодами. Однако, поскольку такие переключатели обычно не имеют вращения на 360 градусов, вместо них используется тройной четырехпозиционный переключатель.
Следует отметить, что стандартный переключатель здесь не подходит , так как в момент переключения происходит кратковременная потеря питания на выводах двигателя во время вращения, что неблагоприятно скажется на крутящем моменте, особенно, если мотор установлен вертикально. Поэтому здесь используется переключатель ( make-before-break rotary switch ), который создает новый контакт перед тем как разорван предыдущий. Контакты переключаются как-бы в нахлест. Электролитический конденсатор C1 сглаживает мгновенный всплеск напряжения, когда переключатель перемещается. Если не требуется удерживающий крутящий момент, цепь питания может быть отключена, как только шаговый двигатель достигнет нужного положения. Момент затяжки (остаточный крутящий момент, когда шаговый двигатель выключен) обычно составляет одну десятую от состояния удержания крутящего момента. Красный светодиод. D9 указывает наличие питающего напряжения (состояние выключателя S3 — On/Off ).
Идентификация обмоток двигателя
Как известно, нет стандартного цветового кодирования для идентификации проводов четырехфазного униполярного шагового двигателя. Автор опробовал шесть шаговых двигателей, из которых только два имели одинаковую цветовую маркировку проводов! Такие двигатели иногда имеют пять выводов, иногда шесть, а иногда и восемь выводов (для каждой из четырех обмоток). К счастью, задача идентификации не слишком сложна. Первый шаг — найти общий провод или выводы. Шестивыводный четырехобмоточный шаговый двигатель имеет два общих провода, которые, скорее всего, находятся в центре двух рядов по три (они часто используются в принтерах или факсимильных аппаратах). Пятипроводный двигатель имеет один общий вывод. Эти двигатели обычно используется в 5-дюймовых дисководах.
Обмотки легко протестировать с помощью мультиметра: Если имеется шесть проводов — измерьте сопротивление на всевозможные комбинации выводов (например, зелено-белое, зелено-красное, бело-красное . ). Большое сопротивление указывает на последовательное соединение двух обмоток, а малое на отдельную обмотку. Когда определите центральные выводы — соедините их вместе.
В случае пяти проводов, находим только один провод, при котором измеряются самые низкие сопротивления. Это и будет общий провод.
Большинство четырехполюсных однополярных шаговых двигателей питаются напряжением 12 вольт или что-то около этого. Рекомендуется использовать регулируемый источник питания на 12 В, так как нерегулируемое питание может существенно повышаться 12 В, что может привести к чрезмерному нагреву двигателя или даже к перегоранию. Источник питания должен обеспечить мощность 6 Вт или 500 мА для небольших двигателей (диаметром от 3 до 4 см).
Следующим шагом является подключение общего провода двигателя к положительной клемме источника питания 12 В. Теперь возьмите отрицательный провод источника 12 В и поочередно подключите его к четырем выводам в различных последовательностях. После того, как вы нашли последовательность, которая продвигает двигатель небольшими шагами по часовой стрелке, обозначьте эти провода от А до D. То, что вы только что достигли — это управление волной (Wave Control), см. Таблицу 1.
Таблица 1: Wave Control
Наконец, обмотки А-D должны быть под напряжением в последовательности, которая показанная в таблице 2, и которая является полношаговым управлением (Full-step Control).
Таблица 2: Full-step Control
Таблица, нарисованная здесь, является наиболее логически последовательным способом, и вы сможете оценить смещение двоичной последовательности 1-0-0-1 по проводам шагового двигателя.
Графическое подключение обмоток (или фаз) от А до D показано на рисунке 2.
Рис.2 Униполярный привод.
Устройство собрано на макетной плате. Элементы переключения — галетник и тумблер включения питания монтируются на передней панеле прибора. Также на корпусе прибора установлено гнездо для подключения источника питания.
Рис.3. Компоновка элементов.
На галетном переключателе необходимо убрать ограничитель перемещения ползунка, чтобы он проворачивался по кругу.
В конструкции использованы резисторы мощностью 0.25W 5%, электролитический конденсаторы 1000 мкф на 16 В. Полупроводниковые диоды D1. D8 типа 1N4001 50V 1A . Светодиод D9 — 5 мм красный, D10 — 5 мм зеленый. Для контроля оборотов используется маленький магнит, который устанавливается на подвижной планке, закрепленной на валу шагового двигателя. Геркон фиксируется в подходящем месте и будет замыкаться в момент прохождения около него магнита.
Рис.4. Размещение элементов в корпусе.
В случае использования мощного шагового двигателя рекомендуется увеличить емкость электролитического конденсатора. При этом понадобится и более мощный исочник питания.
Хотя большинство 12 вольтовых однополярных шаговы двигателей рассчитаны на непрерывное питание, они могут достаточно ощутимо нагреваться. Если полный крутящий момент не требуется, простым решением является установка 15-омного проволочного резистора в одну из линий питания обмоток.
Тяговое усилие маленького четырехфазного униполярного шагового двигателя довольно сильно ощущается пальцами, и такие двигатели могут найти большое применений. Как видите, затраты на изготовление такого привода во много раз меньше, чем у обычной системы управления шаговым двигателем на микроконтроллерах или микросхемах. Примечание от RA3TOX.
На мой взгляд, самый дефицитный элемент в этом приводе — это галетный переключатель. Можно попытаться найти его на AliExpress по названию » make-before-break rotary switch » или переделать (расширить) подвижную пластину стандартного галетника. Есть керамические галетник с широким контактом, как показано на левом рисунке. На среднем рисунке галетник с узким коммутирующим контактом (самый распространенный вариант). Проще всего переделать контакты на коричневых открытых галетниках (правый рисунок). Из представленных образцов наиболее применим средний галетник (2 направления на 5 положений), но надо поискать такой с широким ползунковым контактом, при этом два крайних положения 4 и 5 следует замкнуть.
Несколько конструкций переключателей.
Подключение шагового двигателя к Ардуино
Шаговый двигатель 28byj-48 Arduino ► предназначен для перемещения объекта на заданное количество шагов вала. Рассмотрим управление шаговым двигателем от Ардуино
Шаговый двигатель (stepper motor) предназначен для точного позиционирования или перемещения объекта на заданное количество шагов вала. Плата Arduino может управлять шаговым двигателем с помощью драйвера и библиотеки stepper.h или accelstepper.h. Рассмотрим принцип работы и схему подключения шагового двигателя к Arduino Uno / Nano, а также разберем скетч для управления шаговым мотором.
Принцип работы шагового двигателя
В зависимости от конструкции, сегодня применяются три вида шаговых двигателей: с постоянным магнитом, с переменным магнитным сопротивлением и гибридные двигатели. У двигателей с постоянным магнитом число шагов на один оборот вала доходит до 48, то есть один шаг соответствует повороту вала на 7,5°. Гибридные двигатели обеспечивают не меньше 400 шагов на один оборот (угол шага 0,9°).
Фото. Устройство шагового мотора в разрезе
Подсчитав количество сделанных шагов, можно определить точный угол поворота ротора. Таким образом, шаговый двигатель является сегодня идеальным приводом в 3D принтерах, станках с ЧПУ и в другом промышленном оборудовании. Это лишь краткий обзор устройства и принципа работы stepper motor, нас больше интересует, как осуществляется управление шаговым двигателем с помощью Ардуино.
Драйвер шагового двигателя Ардуино
Шаговый двигатель — это бесколлекторный синхронный двигатель, как и все двигатели, он преобразует электрическую энергию в механическую. В отличие от двигателя постоянного тока в которых происходит вращение вала, вал шаговых двигателей совершает дискретные перемещения, то есть вращается не постоянно, а шагами. Каждый шаг вала (ротора) представляет собой часть полного оборота.
Фото. Виды драйверов для управления шаговым двигателем
Вращение вала двигателя осуществляется с помощью сигнала, который управляет магнитным полем катушек в статоре драйвера. Сигнал генерирует драйвер шагового двигателя. Магнитное поле, возникающее при прохождении электрического тока в обмотках статора, заставляет вращаться вал, на котором установлены магниты. Количество шагов задаются в программе с помощью библиотеки Arduino IDE.
Схема подключения шагового двигателя 28BYJ-48 к Arduino Uno через драйвер ULN2003 изображена на рисунке ниже. Основные характеристики мотора 28BYJ-48: питание от 5 или 12 Вольт, 4-х фазный двигатель, угол шага 5,625°. Порты драйвера IN1 — IN4 подключаются к любым цифровым выводам платы Arduino Mega или Nano. Светодиоды на модуле служат для индикации включения катушек двигателя.
Как подключить шаговый двигатель к Ардуино
Для этого занятия нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- драйвер шагового двигателя ULN2003;
- шаговый двигатель 28BYJ-48;
- провода «папа-мама».
БИБЛИОТЕКА ДЛЯ ШАГОВОГО ДВИГАТЕЛЯ ARDUINO
Для подключения шаговых моторов к Arduino нужно использовать драйверы. Очень дешёвые и популярные моторы 28byj-48-5v часто продаются вместе со своим драйвером (транзисторная сборка ULN2003), подключить можно к любым 4-м пинам Ардуино и использовать.
Для работы с большими шаговиками (типа Nema 17) нужно использовать специализированные драйверы, ниже вы найдёте описания и схемы подключения для A4988, DRV8825 и TMC2208, драйверы такого формата подключаются и работают практически одинаково, т.к. разработаны для CNC шилдов и взаимозаменяемы. У этих драйверов нужно настроить ток при помощи крутилки на плате. Это можно сделать “на глаз”, заставив мотор вращаться и регулируя крутилку. Мотор должен вращаться, но не вибрировать как перфоратор и сильно не нагреваться. Лучше настроить ток по опорному напряжению Vref, у каждого драйвера оно считается по своей формуле (см. картинки ниже). Берём ток своего мотора из описания, подставляем в формулу вместо current, считаем, и накручиваем полученное напряжение крутилкой. Для измерения опорного напряжения нужно подключить щупы вольтметра к самой крутилке и пину GND.
Главное преимущество дорогущих драйверов TMC – отсутствие шума/свиста/вибраций при работе, так как драйвер своими силами интерполирует сигнал до микрошага 1/256.
БИБЛИОТЕКА GYVERSTEPPER
GyverStepper v1.8
GyverStepper – производительная библиотека для управления шаговыми моторами
- Поддержка 4х фазных (шаг и полушаг) и STEP-DIR драйверов
- Автоматическое отключение питания при достижении цели
- Режимы работы:
- Вращение с заданной скоростью
- Следование к позиции с ускорением и ограничением скорости
- Следование к позиции с заданной скоростью (без ускорения)
- Быстрый алгоритм управления шагами
- Два алгоритма плавного движения:
- Модифицированный планировщик из библиотеки AccelStepper: максимальная плавность и скорость до 7’000 шагов/сек с ускорением (для активации пропиши дефайн SMOOTH_ALGORITHM )
- Мой планировщик обеспечивает максимальную производительность: скорость до 30’000 шагов/сек с ускорением (активен по умолчанию). Т.е. на небольшой скорости экономит кучу процессорного времени для других задач.
Поддерживаемые платформы: все Arduino (используются стандартные Wiring-функции)
Версия 1.1: добавлена возможность плавно менять скорость в режиме KEEP_SPEED. Добавлены примеры multiStepper и accelDeccelButton
v1.2 – добавлена поддержка ESP8266
v1.3 – изменена логика работы setTarget(, RELATIVE)
v1.4 – добавлена задержка для STEP, настроить можно дефайном DRIVER_STEP_TIME
v1.5 – пофикшен баг для плат есп
v1.6 – Исправлена остановка для STEPPER4WIRE_HALF, скорость можно задавать во float (для медленных скоростей)
ДОКУМЕНТАЦИЯ
Документация
Инициализация
Библиотека поддерживает два типа драйверов:
- STEPPER2WIRE – специализированный 2-х проводной драйвер для шагового мотора с протоколом STEP-DIR, например A4988, DRV8825, TMC2208 и прочие.
- STEPPER4WIRE и STEPPER4WIRE_HALF – 4-х проводной драйвер, т.е. полномостовой (например L298N) или транзисторная сборка (например ULN2003).
- STEPPER4WIRE управляет мотором в полношаговом режиме (выше скорость и момент).
- STEPPER4WIRE_HALF – в полушаговом (меньше скорость и момент, но больше шагов на оборот и выше точность).
При инициализации указывается тип драйвера, количество шагов на оборот и пины:
- GStepper stepper(steps, step, dir); // драйвер step-dir
- GStepper stepper(steps, step, dir, en); // драйвер step-dir + пин enable
- GStepper stepper(steps, a1, a2, b1, b2); // драйвер 4 пин
- GStepper stepper(steps, a1, a2, b1, b2, en); // драйвер 4 пин + enable
- GStepper stepper(steps, a1, a2, b1, b2); // драйвер 4 пин полушаг
- GStepper stepper(steps, a1, a2, b1, b2, en); // драйвер 4 пин полушаг + enable
Где steps – количество шагов на один оборот вала для расчётов с градусами, step , dir , a1 , a2 , b1 , b2 – любые GPIO на МК, en – пин отключения драйвера EN, любой GPIO на МК. Пин en опциональный, можно не указывать.
Для 4-х пиновых драйверов: a1 и a2 – первая обмотка (первая фаза), b1 и b2 – вторая обмотка (вторая фаза). При использовании мотора 28byj-48 с родным драйвером нужно поменять крайние пины местами (например, подключаем D2-IN1, D3-IN2, D4-IN3, D5-IN4, но в программе меняем 5 и 2: stepper(2048, 5, 3, 4, 2); , потому что на драйвере фазы выведены через одну, вот картинка). При подключении через мостовой драйвер – подключать и указывать пины по порядку выхода фаз из мотора (см. последнюю схему выше).
Количество шагов на оборот нужно для работы функций, которые устанавливают или читают параметр в градусах. Если они не нужны – количество шагов можно поставить любое (единичку). Если нужно – количество шагов нужно указывать с учётом редукторов и микрошагов:
- Пример 1: есть мотор NEMA 17, он имеет 200 полных шагов на оборот (по документации). Подключен через драйвер с настроенным микрошагом 1/16. При создании объекта библиотеки нужно указать 200*16 шагов.
- Пример 2: есть мотор 28byj-48-5v, имеет 32 полных шага на оборот и редуктор с соотношением 63.68395:1. Подключен через микросхему ULN2003. Итоговое количество шагов на оборот составляет 63.68395*32 == 2038 для режима полного шага ( STEPPER4WIRE ).
- Пример 3: подключим тот же самый мотор 28byj-48-5v, но в режиме полушага ( STEPPER4WIRE_HALF ). Количество шагов на оборот удвоится (32*2 == 64) и, с учётом редуктора, станет равным 4076 .
Время шага [NEW!]
Для драйверов STEP-DIR сделана задержка между переключением состояния пина STEP, эта задержка является минимальной, т.е. она может быть больше, чем нужно, но если будет меньше – возможна нестабильная работа драйвера. По умолчанию она составляет 4 микросекунды, но разным драйверам она нужна разная (для других драйверов см. даташит):
- A4988 – 1 мкс
- DRV8825 – 4 мкс
- TB6500 – 1 мкс
Также увеличение задержки может повысить стабильность работы при использовании длинных неэкранированных проводов от микроконтроллера к драйверу (к пину STEP).
Для изменения величины задержки сделай дефайн DRIVER_STEP_TIME перед подключением библиотеки:
Медленные скорости (new!)
В версии 1.6 скорость во всех режимах может быть задана в виде десятичной дроби (тип float ), то есть меньше одного шага в секунду. Минимальная скорость ограничена разрешением используемой в библиотеке micros() и составляет 1 шаг в час. Для удобного задания медленных скоростей появились макросы degPerMinute() и degPerHour() , которые нужно использовать совместно с setSpeedDeg() и setMaxSpeedDeg() :
Тик и тайминги
Самый главный метод библиотеки – tick() , при активной работе мотора его нужно вызывать как можно чаще. Тик имеет встроенный таймер на micros() и работает по нему. Если в коде программы присутствуют задержки на большее время, чем нужно мотору на текущей скорости, скорость мотора будет ограничена этой задержкой.
Узнать минимальный период вызова tick() (при установленной скорости) можно при помощи getMinPeriod() , который вернёт его в микросекундах. Также можно напрямую опрашивать переменную stepTime , в которой хранится текущий период. Эти инструменты можно использовать для организации работы шаговика в прерывании таймера (см. пример timerISR).
Также .tick() возвращает true , если мотор движется к цели или крутится по KEEP_SPEED и false , если мотор остановлен или приехал.
Метод getState() возвращает текущее состояние мотора аналогично tick() .
Смена направления
Можно глобально (для всех режимов) сменить направление вращения мотора при помощи reverse(true) .
Режимы работы
Библиотека имеет два режима работы с мотором, устанавливается при помощи setRunMode(mode) , где mode :
- FOLLOW_POS – режим плавного движения к заданной позиции с ускорением и ограничением скорости.
- KEEP_SPEED – режим вращения с заданной скоростью (знак скорости задаёт направление вращения).
Режим FOLLOW_POS
В этом режиме мотор следует на указанную позицию в шагах или градусах. Для её установки есть следующие методы:
- setTarget(pos) – установка абсолютной целевой позиции в шагах, принимает положительные и отрицательные значения (тип данных long ).
- setTarget(pos, type) – то же самое, но можно указать тип позиции type – абсолютная ABSOLUTE или относительная RELATIVE .
- setTargetDeg(pos) – установка абсолютной целевой позиции в градусах, принимает положительные и отрицательные дробные значения (тип данных float ).
- setTargetDeg(pos, type) – то же самое, но можно указать тип позиции type – абсолютная ABSOLUTE или относительная RELATIVE .
Примечание: абсолютная позиция – говоришь мотору повернуться на 300 шагов, он повернётся на позицию 300. При повторном вызове ничего не произойдёт. Относительная – говоришь повернуться на 300 – он повернётся на 300 относительно текущей позиции. Если вызвать ещё раз через некоторое время – цель сместится относительно текущей позиции вала.
Установленную целевую позицию можно прочитать:
- getTarget() – возвращает тип данных long
- getTargetDeg() – возвращает тип данных float
Дополнительно можно настроить максимальную скорость и ускорение при движении к целевой позиции:
- setMaxSpeed(speed) – установка максимальной скорости по модулю в шагах/секунду, тип данных float . По умолчанию 300.
- setMaxSpeedDeg(speed) – установка максимальной скорости по модулю в градусах/секунду, тип данных float .
- setAcceleration(accel) – установка ускорения по модулю в шагах/сек/сек, тип данных float . По умолчанию 300.
- setAccelerationDeg(accel) – установка ускорения по модулю в градусах/сек/сек, тип данных float .
Примечание: при установке ускорения в ноль 0 мотор будет двигаться к позиции с максимальной скоростью, заданной в setMaxSpeed() .
Также можно вручную установить текущую позицию мотора в шагах и градусах при помощи:
- setCurrent(long pos);
- setCurrentDeg(float pos);
Режим KEEP_SPEED
В этом режиме мотор просто крутится с заданной скоростью. Скорость задаётся при помощи
- setSpeed(speed) – в шагах/секунду, положительные и отрицательные целые значения, тип данных float .
- setSpeedDeg(speed) – в градусах/секунду, положительные и отрицательные дробные значения, тип данных float .
(New!) Вторым аргументом можно передать включение плавного изменения скорости, по умолчанию стоит false ( NO_SMOOTH ). Смотри пример accelDeccelButton
- setSpeed(speed, smooth) – в шагах/секунду, положительные и отрицательные целые значения, тип данных float . smooth – SMOOTH или NO_SMOOTH
- setSpeedDeg(speed, smooth) – в градусах/секунду, положительные и отрицательные дробные значения, тип данных float . smooth – SMOOTH или NO_SMOOTH
Установленную скорость можно прочитать:
- getSpeed() – возвращает тип данных float
- getSpeedDeg() – возвращает тип данных float
Алгоритм планировщика скорости
В библиотеке реализовано два алгоритма планирования скорости для режима плавного движения к позиции с ненулевым ускорением:
- Мой алгоритм: скорость планируется с фиксированным периодом, что сильно разгружает процессор и позволяет работать на скоростях до 30’000 шагов в секунду (полностью загрузив процессор) без наличия посторонних задержек в коде. Сильная экономия процессорного времени оставляет возможность спокойно выполнять параллельно другой код и управлять несколькими моторами в разных режимах на хороших скоростях, и “ещё останется”. Немного “резковат” при торможении. Активен по умолчанию.
- Модифицированный алгоритм из библиотеки AccelStepper: скорость планируется каждый шаг, что очень сильно нагружает процессор и ограничивает скорость до 7’000 шагов в секунду (полностью загрузив процессор) без наличия посторонних задержек в коде (в оригинальной библиотеке – 5’000 шагов/сек). Разгоняется и тормозит максимально плавно. Для активации нужно прописать дефайн #define SMOOTH_ALGORITHM перед подключением библиотеки в коде (см. пример smoothAlgorithm) или раскомментировать данный дефайн в файле библиотеки GyverStepper.h, находится сразу после описания.
Остановка и сброс
- stop() – плавная остановка с заданным в setAcceleration() ускорением от текущего положения мотора. Можно вызвать в режиме KEEP_SPEED для плавной остановки вращения! Смотри пример accelDeccelButton
- brake() – резкая остановка мотора. Если активен autoPower(true) – мотор будет отключен.
- reset() – brake() + сброс текущей позиции в 0 . Удобно для остановки и калибровки начала координат по концевику (смотри пример endSwitch).
Управление питанием
Питанием мотора/драйвера можно управлять вручную при помощи enable() и disable() . Данные методы включают и выключают пин Enable (если он указан при инициализации), а также снимают и возвращают питание на управляющие выводы (для 4х пинового драйвера).
Поведением пина EN (если он указан при инициализации) можно управлять при помощи invertEn(true) и invertEn(false) . По умолчанию установлено enable(false) переводит пин en в низкое состояние.
В библиотеке реализовано автоматическое управление питанием, включается при помощи autoPower(true) , по умолчанию оно отключено. В режиме FOLLOW_POS при достижении целевой позиции мотор будет автоматически отключен (будет вызван disable() ). При дальнейшей установке новой позиции мотор будет автоматически включен (будет вызван enable() ).