Введение в устройство шаговых двигателей
Если вы когда-либо имели удовольствие демонтировать старый принтер, чтобы сохранить электронные компоненты, то можете столкнуться с множеством цилиндрических загадочных моторов с 4 или более проводами, выступающими из сторон. Возможно, вы слышали характерное жужжание настольного 3D-принтера или глючную электромеханическую симфонию дисков в CD приводе? Если так, то вы столкнулись с шаговым двигателем!
Шаговые двигатели заставляют электромеханический мир вращаться ( с более высоким крутящим моментом!), но в отличие от обычного двигателя постоянного тока, управление шаговым двигателем требует чуть больше, чем ток через два провода. В этой статье будет рассказано о теории проектирования и эксплуатации шагового двигателя. Как только рассмотрим основы, автор данного руководства покажет, как построить простые схемы для управления шаговыми двигателями, а затем как использовать специальные микросхемы драйверов.
Шаг 1: Что делает мотор шаговым двигателем?
Кому может понадобиться более двух проводов и Н-мост? Зачем? Ну, в отличие от обычных щеточных двигателей постоянного тока, построенных для максимального числа оборотов (или кВ для RC), шаговые двигатели представляют собой бесщеточные двигатели, рассчитанные на высокий крутящий момент (впоследствии меньшую скорость) и более точное вращательное движение. В то время как типичный двигатель постоянного тока отлично подходит для вращения гребного винта на высокой скорости для достижения максимальной тяги, шаговый двигатель лучше подходит для прокатки листа бумаги синхронно со струйным механизмом внутри принтера или для осторожного вращения вала линейного рельса в мельнице с ЧПУ.
Внутри шаговые двигатели являются более сложными, чем простой двигатель постоянного тока, с несколькими катушками вокруг сердечника с постоянными магнитами, но с этой дополнительной сложностью обеспечивается больший контроль. Благодаря тщательному расположению катушек, встроенных в статор, ротор шагового двигателя может вращаться с заданным шагом, изменяя полярность между катушками и переключая их полярность в соответствии с установленной схемой зажигания. Шаговые двигатели не все сделаны одинаковыми, и для их внутреннего исполнения требуются уникальные (но базовые) схемы. Обсудим наиболее распространенные типы шаговых двигателей на следующем шаге.
Шаг 2: Типы шаговых двигателей
Есть несколько различных конструкций шаговых двигателей. К ним относятся однополярное, биполярное, универсальное и переменное сопротивление. Мы будем обсуждать конструкцию и работу биполярных и однополярных двигателей, так как это наиболее распространенный тип двигателя.
У однополярных двигателей обычно есть пять, шесть или восемь проводных выводов, идущих от основания, и одна катушка на фазу. В случае пятипроводного двигателя пятый провод представляет собой соединенные центральные отводы пар катушек. В шестипроводном двигателе каждая пара катушек имеет собственный центральный отвод. В двигателе с восемью проводами каждая пара катушек полностью отделена от других, что позволяет подключать ее в различных конфигурациях. Эти дополнительные провода позволяют приводить в действие однополярные двигатели непосредственно от внешнего контроллера с простыми транзисторами, чтобы управлять каждой катушкой отдельно. Схема зажигания, в которой приводится в действие каждая катушка, определяет направление вращения вала двигателя. К сожалению, учитывая, что за один раз подается только одна катушка, удерживающий момент однополярного двигателя всегда будет меньше, чем у биполярного двигателя того же размера. Обойдя центральные отводы однополярного двигателя, он теперь может работать как биполярный двигатель, но для этого потребуется более сложная схема управления. На четвертом шаге этой статьи мы приведем в действие однополярный двигатель, который должен прояснить некоторые из представленных выше концепций.
Биполярные двигатели, как правило, имеют четыре провода и являются более прочными, чем однополярный двигатель сравнительного размера, но поскольку у нас есть только одна катушка на фазу, нам нужно повернуть ток через катушки, чтобы перейти на один шаг. Наша потребность изменить ток означает, что мы больше не сможем управлять катушками напрямую с помощью одного транзистора, вместо этого — полная цепь h-моста. Построение правильного h-моста утомительно (не говоря уже о двух!), Поэтому мы будем использовать выделенный драйвер биполярного двигателя (см. Шаг 5).
Шаг 3: Понимание спецификаций шагового двигателя
Давайте поговорим о том, как определить технические характеристики двигателя. Если вы встречали двигатель квадратного сечения с определенной сборкой из трех частей (см. Рисунок три), скорее всего, это двигатель NEMA. Национальная ассоциация производителей электрооборудования имеет определенный стандарт для спецификаций двигателя, использующий простой буквенный код для определения диаметра лицевой панели двигателя, типа крепления, длины, фазного тока, рабочей температуры, фазного напряжения, шагов на оборот и проводки.
Чтение паспорта двигателя
Для следующего шага будет использован этот однополярный мотор. Выше приложена таблица данных. И хотя она краткая, она предоставляет нам все, что нам нужно для правильной работы. Давайте разберем, что в списке:
Фаза: это четырехфазный однополярный мотор. Внутренне двигатель может иметь любое количество реальных катушек, но в этом случае они сгруппированы в четыре фазы, которые могут управляться независимо.
Шаг угла: При приблизительном разрешении 1,8 градусов на шаг мы получим 200 шагов на оборот. Хотя это является механическим разрешением, с помощью микроперехода мы можем увеличить это разрешение без каких-либо изменений двигателя (подробнее об этом в шаге 5).
Напряжение: номинальное напряжение этого двигателя составляет 3 вольта. Это функция тока и номинальных сопротивлений двигателя (закон Ома V = IR, следовательно, 3V = 2A * 1,5Ω)
Ток: сколько тока нужно этому двигателю? Два ампера на фазу! Эта цифра будет важна при выборе наших силовых транзисторов для базовой схемы управления.
Сопротивление: 1,5 Ом на фазу ограничит то, какой ток мы можем подать на каждую фазу.
Индуктивность: 2,5 мГн. Индуктивная природа катушек двигателя ограничивает скорость зарядки катушек.
Удерживающий момент: это то, сколько фактической силы мы можем создать, когда на шаговый двигатель подано напряжение.
Момент удержания: это то, какой момент удержания мы можем ожидать от двигателя, когда он не находится под напряжением.
Класс изоляции: класс B является частью стандарта NEMA и дает нам рейтинг в 130 градусов Цельсия. Шаговые двигатели не очень эффективны, и постоянное потребление максимального тока означает, что они будут сильно нагреваться при нормальной работе.
Показатели обмотки: диаметр провода 0,644 мм., количество витков в диаметре 15,5, сечение 0,326 мм2
Определение пар катушек
Хотя сопротивление обмоток катушки может варьироваться от двигателя к двигателю, если у вас есть мультиметр, вы можете измерить сопротивление на любых двух проводах, если сопротивление Шаг 4: Непосредственное управление шаговыми двигателями
Благодаря расположению проводов в однополярном двигателе мы можем последовательно включать катушки, используя только простые силовые полевые МОП-транзисторы. На рисунке выше показана простая схема с МОП-транзистором. Такое расположение позволяет просто контролировать уровень логики с помощью внешнего микроконтроллера. В этом случае легче всего использовать плату Intel Edison с коммутационной платой в стиле Arduino, чтобы получить легкий доступ к GPIO (однако подойдет любой микро с четырьмя GPIO). Для этой схемы используется транзистор IRF510 N-канальный мощный MOSFET. IRF510, способный потреблять до 5,6 ампер, будет иметь достаточно свободной мощности, чтобы удовлетворить потребности двигателя в 2 амперах. Светодиоды не нужны, но они дадут вам хорошее визуальное подтверждение последовательности работы. Важно отметить, что IRF510 должен иметь логический уровень не менее 5 В, чтобы он мог потреблять достаточный ток для двигателя. Мощность двигателя в этой цепи будет 3 В.
Полное управление однополярным двигателем с помощью этой настройки очень простое. Для того, чтобы вращать двигатель, нам нужно включить фазы в заданном режиме, чтобы он вращался правильно. Чтобы вращать двигатель по часовой стрелке, мы будем управлять фазами следующим образом: A1, B1, A2, B2. Чтобы вращать против часовой стрелки, мы просто изменим направление последовательности на B2, A2, B1, A1. Это хорошо для базового контроля, но что, если вы хотите большей точности и меньше работы? Давайте поговорим об использовании выделенного драйвера, чтобы сделать всё намного проще!
Шаг 5: Платы драйверов шаговых двигателей
Если вы хотите приступить к управлению биполярными двигателями (или однополярными двигателями в биполярной конфигурации), вам нужно взять специальную плату управления драйвером. На фото выше изображен драйвер Big Easy Driver и плата-носитель драйвера шагового двигателя A4988. Обе эти платы являются печатными платами для микрошагового двухполюсного драйвера шагового двигателя Allegro A4988, который на сегодняшний день является одним из наиболее распространенных чипов для привода небольших шаговых двигателей. Помимо наличия необходимых двойных h-мостов для управления биполярным двигателем, эти платы дают много возможностей для крошечной недорогой упаковки.
Эти универсальные платы имеют удивительно низкое соединение. Вы можете начать управлять двигателем, используя только три соединения (только два GPIO) с вашим главным контроллером: общее заземление, шаг и направление. Ступенчатый шаг и его направление остаются плавающими, так что нужно привязать их к опорному напряжению с нагрузочным резистором. Импульс, посылаемый на вывод STEP, будет перемещать двигатель на один шаг с разрешением в соответствии с эталонными выводами микрошага. Логический уровень на выводе DIR определяет, будет ли двигатель вращаться по часовой стрелке или против часовой стрелки.
В зависимости от того, как установлены выводы M1, M2 и M3, вы можете добиться увеличения разрешения двигателя с помощью микрошагования. Микрошаг включает в себя посылку разнообразных импульсов, чтобы тянуть двигатель между электромагнитным разрешением физических магнитов в роторе, обеспечивая очень точное управление. A4988 может перейти от полного шага до разрешения шестнадцатого шага. С нашим двигателем 1,8 градуса это обеспечит до 3200 шагов за оборот. Поговорим о мелких деталях!
Подключение двигателей может быть легким, но как насчет управления ими? Посмотрите эти готовые библиотеки кода для управления шаговыми двигателями:
Stepper — классика, встроенная в Arduino IDE, позволяет выполнять базовый шаг и управление скоростью вращения.
AccelStepper — гораздо более полнофункциональная библиотека, которая позволяет лучше управлять несколькими двигателями и обеспечивает правильное ускорение и замедление двигателя.
Intel C ++ MRAA Stepper — библиотека более низкого уровня для тех, кто хочет углубиться в управление необработанным шаговым двигателем C ++ с помощью Intel Edison.
Этих знаний должно быть достаточно, чтобы вы поняли как работать с шаговыми двигателями в электромеханическом мире, но это только начало.
Изучаем миниатюрный шаговый двигатель
Шаговые двигатели нашли широкое применение в современной промышленности и самоделках. Их используют там, где необходимо обеспечить точность позиционирования механических узлов, не прибегая к помощи обратной связи и точным измерениям.
Сегодня хочу поговорить об особой разновидности шаговых моторов — миниатюрные шаговые двигатели, которые применяются в конструкциях оптических систем. Мы подробно рассмотрим их устройство и способы управления такими крошечными моторчиками.
Шаговый двигатель — бесколлекторный (бесщёточный) электрический двигатель с несколькими обмотками (фазами), расположенными на статоре и магнитами (часто постоянными) на роторе. Подавая напряжения на обмотки статора, мы можем фиксировать положение ротора, а подавая напряжение на обмотки последовательно можно получить перемещение ротора из одного положения в другое (шаг), причём этот шаг имеет фиксированную угловую величину.
Мы не будем останавливаться на рассмотрении каждого типа шагового двигателя. Об этом в сети написано довольно много и хорошо, например здесь.
Хочу поговорить об особой разновидности шаговых моторов — миниатюрные шаговые двигатели, которые применяются в конструкциях оптических систем. Такие малыши имеются в свободной продаже. Но в сети, особенно в русскоязычной, очень мало информации по таким моторчикам. Потому, когда мне потребовалось использовать их в своём проекте, пришлось изрядно поискать информации и провести пару экспериментов.
Результатами своих поисков и экспериментами я поделюсь в этой статье.
Мы рассмотрим вопросы управления такими маленькими моторчиками, а именно:
- драйвер L293D + микроконтроллер ATtiny44;
- драйвер TMC2208 + микроконтроллер ATtiny44;
- микроконтроллер ATtiny44 (без драйвера).
Собственно вопросы тут может вызвать только последний пункт. Поверьте, я тоже был удивлён, когда наткнулся на ролик (вот он), где парень просто берёт и напрямую цепляет шаговый мотор к пинам микроконтроллера! Но давайте обо всём по порядку.
Знакомство
Сначала немного посмотрим на внешний вид нашего героя:
Он действительно очень маленький! Согласно умной книжке Петренко С.Ф.
«Пьезоэлектрические двигатели в приборостроении», меньших размеров электромагнитные моторчики создать в принципе невозможно… то есть возможно, но с уменьшением диаметра проволоки, из которой изготавливают обмотки, всё больше энергии рассеивается в виде тепла в окружающую среду, что приводит к уменьшению КПД моторчика и делает их использование нерациональным.
Из примечательного, можно отметить, что его вал очень короткий и имеет специальную проточку для установки шестерни или рычага.
Отчётливо видны две обмотки, которые даже покрыты изоляцией разного цвета. Значит, наш моторчик относится, скорее всего, к классу биполярных шаговых двигателей.
Посмотрим как он устроен:
Считаю, наше знакомство с этими моторчиками будет не полным, если мы не посмотрим, что же у него внутри. Ведь всегда интересно заглянуть внутрь механизма! Разве нет?
Собственно, ничего необычного мы не увидели. Ротор намагничен. Подшипников нигде не наблюдается, всё на втулках. Задняя втулка запрессована в корпус двигателя. Передняя ничем не закреплена. Интересно, что корпус двигателя собирался точечной сваркой. Так что переднюю крышку корпуса пришлось спиливать.
Теперь перейдём к вопросу подключения и его электрическим характеристикам.
Убедимся, что он биполярный, прозвонив обмотки. Действительно биполярный, всё как на картинке выше. Сопротивление обмоток около 26Ом, хотя продавец указал 14Ом.
В описании сказано, что напряжение питания 5В. Хотя мы то с вами знаем, что для шагового двигателя важен ток, который будут потреблять его обмотки.
Пробуем подключить.
Эксперимент №1. L293D + ATtiny44
Как мы знаем, для управления биполярным шаговым двигателем необходимо не просто прикладывать напряжения к двум обмоткам в нужной последовательности, но и изменять направление тока в этих обмотках, причём делать это независимо друг от друга. Для этого на каждую обмотку нужен собственный Н-мост. Чтобы не городить его из транзисторов, был взят готовый в лице микросхемы L293D. Ещё одно её преимущество — у микросхемы имеются специальные выводы Enable1 и Enable2, который включают и выключают каждый мост. Их можно использовать чтобы подавать ШИМ сигнал, тем самым, возможно контролировать напряжения питания каждого моста. Зачем это может понадобиться, мы увидим дальше.
Кроме того, L293D может коммутировать напряжения до 36В и выдавать до 1,2А на каждый канал, чего вполне должно хватить для питания обмоток нашего моторчика.
Управляющие входы L293D подключены к выходам OC0A и OC0B, что позволит в будущем подавать на них ШИМ сигнал.
Прошивать контроллер будем через внутрисхемный программатор (на схеме не указан).
Вот как выглядит собранная схема на макетной плате:
И вот так расположен наш подопытный:
Теперь можно приступать к экспериментам.
Рассчитаем ток, который будет течь через обмотки двигателя при подключении их к напряжению 5В:
I=U/R = 5В/26Ом = 190мА
Совсем небольшой. Интересно как долго он сможет держать такой ток и не перегреться.
Включим в цепь одной из обмоток амперметр и вольтметр, и проведём замеры соответствующих величин при подачи питания на эту обмотку через драйвер.
При падении напряжения на обмотке 2.56В амперметр показывает ток 150мА, причём хорошо заметно, как начинает падать величина силы тока в процессе нагревания обмоток. Надо отметить, что не так уж и сильно он греется.
Убедившись, что напряжение 5В для моторчика опасности не представляет, попробуем покрутить им в разные стороны. И вот теперь пару слов мы скажем про режимы работы шагового двигателя.
Об этом довольно хорошо сказано здесь.
Не будем повторяться, но вспомним, что шаговый двигатель может работать в трёх режимах:
- Полношаговый однофазный это когда одновременно напряжение подаётся только на одну фазу двигателя, ротор делает шаг, затем текущая фаза выключается и включается следующая.
- Полношаговый двухфазный это когда напряжение подаётся одновременно на две фазы мотора, при этом, ротор притягивается одновременно к двум обмоткам, что создаёт больший крутящий момент.
- Микрошаговый режим в этом случае реализуется тот же принцип, что и на полношаговом двухфазном, то есть работают одновременно две обмотки, но напряжение (и как следствие ток) распределяется между ними неравномерно. Фактически, это означает, что мы можем поставить моторчик в неограниченное количество положений (на практике, разумеется, такого сделать нельзя). Увеличивается точность позиционирования.
Попробуем реализовать первые два режима на микросхеме L293D а для микрошагового режима оставим специальный драйвер из второго эксперимента.
Исходный код программы выглядит следующим образом:
Полношаговый режим. Одна фаза
Двигатель делает 16 шагов на один оборот. Причём шаги для двух фаз имеют не одинаковую угловую величину. Не знаю с чем это связано. Может конструкция двигателя такая?
Посмотрим на максимальную частоту шагов, которую он может обеспечить в таком режиме, не пропуская их.
Минимальная задержка между шагами 2мс, значит 500 шагов/секунду. Неплохо, это 31 об/сек = 1850 об/мин.
Полношаговый режим. Две фазы
Обратите внимание, что в этом случае шаги получаются ровнее, они одинаковы по величине (во всяком случае, более одинаковы, чем в предыдущем случае).
Естественно, в этом случае под напряжением находятся одновременно две обмотки и теплоотдача возрастает. Двигатель уже через несколько секунд нагревается достаточно сильно, потому эксперимент я прекратил.
Что с максимальной частотой шагов? 500 шагов/секунду; 31 об/сек = 1875 об/мин.
Надо сказать, что для шагового двигателя он довольно шустрый. Это связано с малым количеством магнитных полюсов на роторе.
Эксперимент №2. TMC2208 + ATtiny44
TMC2208 — название микросхемы-драйвера для управления биполярными шаговыми двигателями, аналогично называется модуль на её основе, который выпускается для установки в самодельные (и не только) 3D принтеры и имеет унифицированное расположение выводов.
Много и доходчиво сказано про этот модуль вот здесь.
В интернете много написано про то, как установить его в свой 3D принтер, но нас интересует как подключить модуль к микроконтроллеру, потому давайте разбираться.
Характеристики микросхемы впечатляют (только впечатлительных людей):
- напряжение питания логической части: 3-5В;
- напряжение питания двигателя 5.5-36В;
- пиковый ток 2А;
- настройка максимального тока двигателя;
- поддержка интерфейса UART как для управления, так и для конфигурирования внутренних регистров;
- автоматическое отключение питания;
- поддержка микрошагового режима управления двигателем вплоть до 1/16 шага.
Управлять ей очень просто, по сути нужно всего два пина микроконтроллера. Один подключаем к DIR — указываем направление вращения двигателя, другой подключаем к STEP — при подаче импульса микросхема производит необходимые манипуляции с токами и напряжениями на обмотках двигателя и тот делает один шаг.
Схема подключения будет выглядеть так:
Дополнительно я использовал пин EN, чтобы отключать моторчик и длительное время не держать обмотки под напряжением.
Перед тем как всё запустить нужно произвести предварительную настройку модуля. Во-первых, выставить желаемый режим микрошага. Во-вторых, выставить желаемый максимальный ток двигателя.
С микрошагом всё просто. За это отвечают пины MS1 и MS2.
Отмечу, что микросхема не скачкообразно меняет напряжение, а делает это «плавно», но так как микросхема цифровая, то на выходе у нас не гладкий сигнал, а сигнал с маленьким шагом, если верить документации, то каждый шаг она разбивает на 256 микрошагов. Сделано это для увеличения плавности хода, снижения шумов от двигателя и по идее не должно позволять конструкции, к которой он прикручен, входить в резонанс. Короче, всё для того, чтобы 3D принтер работал тише.
Чтобы выставить ток двигателя необходимо измерить напряжения на контакте Vref, который указан на рисунке. Изменить значение напряжения можно при помощи потенциометра, установленного рядом с контактом. Напряжение на контакте будет пропорционально току двигателя, и зависимость будет иметь следующий вид:
Нашему моторчику нужно примерно 150мА, потому Vref = 0,216В. Устанавливаем…
Подразумевается, что увеличение тока микросхема обеспечивает за счёт увеличения напряжения на обмотке. Потому, нужно позаботиться о том, чтобы этого напряжения хватило. Но, полагаю, для того маленького моторчика должно хватить и 5В.
Протестируем работу моторчика с различными режимами микрошага и посмотрим что получится (пауза между микрошагами 10мс):
Можно заметить, что движения моторчика стали более плавными (по сравнению с предыдущим экспериментом), однако характерные 16 шагов всё равно наблюдаются довольно чётко. Что же… видимо это черта шаговых двигателей с ротором из постоянных магнитов.
Ещё необходимо отметить, что моторчик в этом режиме нагревается почти также сильно, как в полношаговом режиме с двумя фазами. Оно и понятно, обмотки постоянно находятся под напряжением, непрерывно происходит выделение тепла.
Полагаю, для таких моторчиков использование такого драйвера, да и вообще режимов микрошага не очень целесообразно.
Эксперимент №3. ATtiny44-драйвер
Вернёмся ненадолго к первому эксперименту и вспомним, что входы EN1 и EN2 микросхемы драйвера подключены к пинам OC0A и OC0B микроконтроллера. Это значит, что мы можем подать туда ШИМ сигнал, генерируемый при помощи таймера TIMER0 и таким образом изменять напряжение, прикладываемое к обмоткам двигателя и соответственно регулировать ток, который будет протекать через них.
Согласно даташиту на микроконтроллер ATtiny44 максимальный ток, который может выдать один пин составляет всего 40мА. Причём не указано для какого вида тока (пульсирующего или постоянного) эта характеристика. Просто она есть и она вот такая…
Надо сказать, что я более 7 лет знаком с микроконтроллерами фирмы ATMEL. И ни разу у меня не возникло желания проверить эту строчку из даташита.
Возможно, производитель просто подстраховывается и на самом деле он может выдать больше, а может это действительно максимум, что может выдать один пин.
Мы это выясним. Но сначала нужно выяснить при каком минимальном токе моторчик вообще способен вращаться.
Используя схему из первого эксперимента, подгоняем значение тока через обмотки равное 40мА. Запускаем в полношаговом режиме с двумя фазами (так как будет выше крутящий момент):
Отлично! При 40мА двигатель успешно запустился! Был также выявлено минимальное значение тока обмоток, необходимое для устойчивой работы мотора, и равно оно 30мА.
Разумеется, крутящий момент будет значительно ниже, но для нас важен сам факт того, что удалось запустить моторчик с таким маленьким энергопотреблением.
Схема подключения шагового двигателя к микроконтроллеру будет следующей:
Поскольку каждый пин микроконтроллера работает как полумост (может коммутировать вывод микросхемы либо на Vcc, либо на GND), то для управления биполярным шаговым мотором нам понадобиться 4 пина микроконтроллера.
Немного поясню как работает эта программа. Это модифицированный код из первого эксперимента. Как я говорил выше, будет использован 8 битный TIMER0 для генерирования ШИМ сигнала на выходах OC0A и OC0B. Таймер настраивается в режим FastPWM с предделителем на 8 (частота сигнала при 8МГц тактового генератора микроконтроллера составляет 3906Гц).
Чтобы изменять полярности сигналов на обмотках происходит переключение пина микроконтроллера от Vcc к GND изменением соответствующего бита в регистре PORTx и изменением коэффициента заполнения ШИМ путём записи значений в регистры OCR0A и OCR0B (значения подбирались экспериментально).
Курс схемотехники, прослушанный на первом курсе института подсказывает, что мультиметр показывает среднеквадратическое значение напряжения и тока в двигателе.
Шаговый двигатель вращается от пинов микроконтроллера без драйверов!
Но здесь мы не выходим за пределы возможностей микроконтроллера, по крайней мере, если верить тому, что пишут в документации. В таком режиме микроконтроллер и моторчик могут работать долго. Действительно, эксперимент длился 20 минут. За это время не наблюдалось ни пропуска шагов, ни сброса контроллера, ни перегрева (ни у двигателя, ни у контроллера).
Отбросим все предосторожности
Уберём из эксперимента ШИМ и будем напрямую управлять пинами микроконтроллера при помощи регистров PORTx. Посмотрим что будет с микроконтроллером после этого.
Работает… с максимальным током в 51мА… Что же… неожиданно, похоже это и есть предельный ток, который может отдать один пин микроконтроллера? Если я ошибаюсь, поправьте меня.
В любом случае, ролик с ютуба не обманул. Действительно можно управлять этим моторчиком без всяких драйверов.
Выводы
Мы подробно изучили миниатюрные биполярные шаговые моторчики, их конструкцию и способы управления ими, для использования в собственных приложениях.
1. Миниатюрный биполярный шаговый мотор с ротором из постоянных магнитов действительно миниатюрный.
Его основные особенности:
- малое количество магнитных полюсов, как следствие, малое количество шагов (у моего, напомню, всего 16);
- относительно большая скорость вращения (следствие из предыдущего пункта), в эксперименте удалось достичь 1875 об/мин;
- неудовлетворительно работает в микрошаговых режимах (не удерживается промежуточное положение ротора);
2. Миниатюрный шаговый двигатель может управляться любыми драйверами, подходящими для работы с биполярными шаговыми моторами, необходимо только подобрать параметры тока обмоток.
3. Использование специализированного драйвера TMC2208 является спорным вопросом, так как микрошаговый режим не поддерживается самим двигателем, хотя переходы между шагами выполняются более плавно.
4. Возможно подключение шагового двигателя непосредственно к портам микроконтроллера. Но это только в рамках эксперимента, так как крутящий момент в данном случае совсем незначителен, да и малый ток не позволяет совершать шаги с большой скоростью.
В следующий раз расскажу, для чего именно нам потребовались такие маленькие шаговые моторчики.