Olrait.ru

Позиция шагового двигателя калина

«Плавный» ход шагового двигателя

Стандартный шаговый двигатель от 5-дюймового дисковода
можно заставить вращаться плавно и использовать, например, для привода секундной стрелки в часах.
Тока, отдаваемого микросхемой PSoC, оказывается достаточно для прямого подключения обмоток двигателя к выводам микросхемы.

Для «плавного» вращения шагового (синхронного) двигателя обычно используется микрошаговый режим. Это означает, что токи в обмотках по мере их переключения меняются не скачком, а достаточно плавно – ток в одной обмотке постепенно замещается током в другой. Ротор, следуя за магнитным полем, проходит при этом все промежуточные положения. Приставка «микро-» отражает невозможность получения в цифровых системах бесконечно малых приращений. Конечная величина дробления шага задает лишь иллюзию «плавности».

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

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

Такой двигатель имеет 6 проводов (две обмотки с отводами от середин, хотя попадаются экземпляры и с 5 проводами, у которых средние точки соединены внутри), и на нем написано: 1.8 deg./step, 0.16A/phase. Это означает, что подавая последовательно на каждую полуобмотку ток (в данном случае 0,16 А максимум, а средние точки обычно подключаются к «+» питания), мы заставим его каждый раз поворачиваться на угол 1,8 о . Сопротивления полуобмоток составляют 75 ом и легко «вызваниваются» мультиметром. Обычно средним точкам соответствуют провода красного цвета. Чтобы совершить полный оборот, надо сделать цепочку из 50 х 4 = 200 переключений.

Если при отсоединенных обмотках попробовать вручную провернуть вал, то рука почувствует едва ощутимое сопротивление в виде дрожи. Это – так называемое «магнитное залипание», явление, обусловленное неоднородностью взаимодействия магнитных систем ротора и статора, а также наличием остаточной намагниченности статора (магнитопровода, на котором расположены обмотки). Это «залипание» не только ухудшает линейность перемещения внутри шага, но и создает определенный порог по току, ниже которого двигатель не удается привести во вращение даже на холостом ходу.

Ставя эксперименты, мне хотелось решить два вопроса:
1. Хватит ли тока, генерируемого микроконтроллером, чтобы вращать вал на малой нагрузке или, хотя бы, на холостом ходу?
2. Так ли уж необходим классический закон синуса-косинуса для равномерного вращения?

Для экспериментов была собрана схема, показанная на рисунке. Собственно «собираться» было нечему, т.к. была использована плата Программатора микросхем PSoC, имеющая панельку под микросхему в корпусе DIP8 и 6-контактный разъем для макетирования простейших устройств. Ввиду отсутствия на плате кварца, отладка производилась без него, с использованием внутреннего тактового генератора микросхемы. Следует отметить, что цепи возбуждения кварца у микросхем PSoC очень капризные, и следует руководствоваться рекомендациями AN2027 «Using the PSoC Microcontroller External Crystal Oscillator» (использовать несимметричную схему включения и подключение конденсаторов к «плюсу» питания). Также учтите, что при так называемом «программировании в устройстве» емкость С4 может оказаться чересчур большой для программатора (для 8-выводных чипов используется специальный режим программирования – «по подаче питания»), и потребуется ее временное отключение.

В схеме не используются отводы от середин, и полуобмотки работают как единая обмотка. Это сделано по двум соображениям. Во-первых – для универсальности (двигатели от 3-дюймовых дисководов отводов не имеют). Второе – уменьшить до приемлемых величин управляющий ток (сопротивление возрастает вдвое). Импульсы самоиндукции (шаговый двигатель – индуктивная нагрузка) гасятся встроенными в микросхему диодами.

При 3-вольтовом питании через обмотку сопротивлением 150 ом потечет ток 20 мА, что ниже максимально допустимых 25 мА для цифровых выходов PSoC. При питании от 5 вольт ток не достигнет ожидаемых 33 мА и ограничится на уровне 25 мА. У выходов же, сконфигурированных как аналоговые, допустимый ток составляет 50 мА, и они будут работать в штатном режиме во всем диапазоне питающих напряжений.

Вначале была создана Конфигурация 1 (см. рисунок). Ток через обмотки задается с помощью ШИМ (широтно-импульсной модуляции), которую вырабатывает единственный модуль PWM8_1. Частота ШИМ постоянна и составляет 7,8 кГц, а вот скважность меняется от 0 до 100% по линейной зависимости программным путем (прямой записью в соответствующий регистр модуля). Выход модуля через блоки LUT0. LUT3 («LookUp Table» – блоки с программируемой передаточной функцией) распределяется по ножкам микросхемы в соответствии с приведенной диаграммой. Смена функций LUT также осуществляется программно. Учтите, что на диаграммах показано не текущее значение счетного регистра PWM8_1, а то, как относительно медленно меняется скважность (т.е. ток через обмотки) на разных фазах вращения ротора.

Технические подробности. Каждые 1/512 секунды (используются прерывания от «спящего таймера») значение регистра ШИМ увеличивается в среднем на 1,666 (цель – получить требуемый темп вращения 1 оборот за 60 сек). «В среднем» означает, что использован некий трюк («Dithering») для реализации дробного исчисления, заключающийся в варьировании приращения (1 или 2) в зависимости от состояния вспомогательной переменной [cnt], циклически меняющей значения от 1 до 3. Сделать именно так мне показалось проще.

Читать еще:  Чем заделать трещину в блоке двигателя

И начальная инициализация, и тело обработчика прерывания находятся в файле main.asm. Сам проект находится в папке /TestSMotor-lin/ прилагаемого архива (ссылка дана в конце статьи). Готовый файл прошивки testsmotor.hex находится в папке /output/ этого проекта. Порог срабатывания встроенного в микросхему «детектора напряжения» выставлен 2,92 В, что соответствует минимально возможному снижению напряжению питания.

Визуальные впечатления: стрелка, прикрепленная к валу двигателя, вращается достаточно равномерно. Рывки, конечно, заметны, если на них акцентировать внимание. Посмотрим, что даст классическое управление с помощью синуса-косинуса.

Для этого была создана Конфигурация 2 (см. рисунок). Ток через обмотки задается с помощью двух модулей ЦАП DAC9_1 и DAC9_2 (оба модуля имеют разрядность 9 бит). 8-битное значение выбирается из таблицы размером 256 байт, в которой содержатся значения синуса за 1/4 периода. Остальные значения вычисляются путем зеркальных переворотов этой «четвертинки» относительно осей X и Y, причем к 8-битовому значению добавляется 9-ый знаковый бит. Выходные аналоговые буферы микросхемы, в отличие от внутренних аналоговых блоков, не являются «rail-to-rail» узлами (т.е. работающими «от края до края» питающих напряжений). Чтобы предотвратить связанное с этим ограничение выходного сигнала, размах табличного синуса взят не на полную шкалу, а с некоторым запасом. В качестве опорного напряжения для ЦАП выбрана опция «1/2 от питающего напряжения» (при снижении напряжения питания, выходные напряжения будут также пропорционально снижаться). Проект находится в папке /TestSMotor-sin/.

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

В заключение приведу средние токи потребления привода в зависимости от питающих напряжений (в скобках даны токи, потребляемые только микросхемой). Видно, что вовлечение в работу аналоговых блоков увеличивает токопотребление микросхемы. Сам шаговый двигатель в конфигурации «Sin-Cos» также потребляет больше, поскольку в момент равенства токов через обмотки их суммарное значение в корень из двух раз больше, чем в конфигурации «Линейный режим» (хотя это и сказывается положительно на крутящем моменте), а сам ток потребления из-за этого становится пульсирующим.

Шаговые двигатели и моторы Ардуино 28BYJ-48 с драйвером ULN2003

В этой статье мы поговорим о шаговых двигателях в проектах Ардуино на примере очень популярной модели 28BYJ-48. Так же как и сервоприводы, шаговые моторы являются крайне важным элементом автоматизированных систем и робототехники. Их можно найти во многих устройствах рядом: от CD-привода до 3D-принтера или робота-манипулятора. В этой статье вы найдете описание схемы работы шаговых двигателей, пример подключения к Arduino с помощью драйверов на базе ULN2003 и примеры скетчей с использованием стандартной библиотеки Stepper.

Шаговый двигатель – принцип работы

Шаговый двигатель – это мотор, перемещающий свой вал в зависимости от заданных в программе микроконтроллера шагов и направления. Подобные устройства чаще всего используются в робототехнике, принтерах, манипуляторах, различных станках и прочих электронных приборах. Большим преимуществом шаговых двигателей над двигателями постоянного вращения является обеспечение точного углового позиционирования ротора. Также в шаговых двигателях имеется возможность быстрого старта, остановки, реверса.

Шаговый двигатель обеспечивает вращения ротора на заданный угол при соответствующем управляющем сигнале. Благодаря этому можно контролировать положение узлов механизмов и выходить в заданную позицию. Работа двигателя осуществляется следующим образом – в центральном вале имеется ряд магнитов и несколько катушек. При подаче питания создается магнитное поле, которое воздействует на магниты и заставляет вал вращаться. Такие параметры как угол поворота (шаги), направление движения задаются в программе для микроконтроллера.

Упрощенные анимированные схемы работы шагового двигателя

Основные виды шаговых моторов:

  • Двигатели с переменными магнитами (применяются довольно редко);
  • Двигатели с постоянными магнитами;
  • Гибридные двигатели (более сложные в изготовлении, стоят дороже, но являются самым распространенным видом шаговых двигателей).

Где купить шаговый двигатель

Самые простые двигатели Варианты на сайте AliExpress:

Драйвер для управления шаговым двигателем

Драйвер – это устройство, которое связывает контроллер и шаговый двигатель. Для управления биполярным шаговым двигателем чаще всего используется драйверы L298N и ULN2003.

Работа двигателя в биполярном режиме имеет несколько преимуществ:

  • Увеличение крутящего момента на 40% по сравнению с униполярными двигателями;
  • Возможность применения двигателей с любой конфигурацией фазной обмотки.

Но существенным минусов в биполярном режиме является сложность самого драйвера. Драйвер униполярного привода требует всего 4 транзисторных ключа, для обеспечения работы драйвера биполярного привода требуется более сложная схема. С каждой обмоткой отдельно нужно проводить различные действия – подключение к источнику питания, отключение. Для такой коммутации используется схема-мост с четырьмя ключами.

Драйвер шагового двигателя на базе L298N

Этот мостовой драйвер управляет двигателем с током до 2 А и питанием до 46В. Модуль на основе драйвера L298N состоит из микросхемы L298N, системы охлаждения, клеммных колодок, разъемов для подключения сигналов, стабилизатора напряжения и защитных диодов.

Читать еще:  Симптомы порванной подушки двигателя

Драйвер двигателя L298N

Драйвер шагового двигателя ULN2003

Шаговые двигателями с модулями драйверов на базе ULN2003 – частые гости в мастерских Ардуино благодаря своей дешевизне и доступности. Как правило, за это приходится платить не очень высокой надежностью и точностью.

Другие драйвера

Существует другой вид драйверов – STEP/DIR драйверы. Это аппаратные модули, которые работают по протоколу STEP/DIR для связи с микроконтроллером. STEP/DIR драйверы расширяют возможности:

  • Они позволяют стабилизировать фазные токи;
  • Возможность установки микрошагового режима;
  • Обеспечение защиты ключа от замыкания;
  • Защита от перегрева;
  • Оптоизоляция сигнала управления, высокая защищенность от помех.

В STEP/DIR драйверах используется 3 сигнала:

  • STEP – импульс, который инициирует поворот на шаг/часть шага в зависимости от режима. От частоты следования импульсов будет определяться скорость вращения двигателя.
  • DIR – сигнал, который задает направление вращения. Обычно при подаче высокого сигнала производится вращение по часовой стрелке. Этот тип сигнала формируется перед импульсом STEP.
  • ENABLE – разрешение/запрет работы драйвера. С помощью этого сигнала можно остановить работу двигателя в режиме без тока удержания.

Одним из самых недорогих STEP/DIR драйверов является модуль TB6560-V2. Этот драйвер обеспечивает все необходимые функции и режимы.

Подключение шагового двигателя к Ардуино

Подключение будет рассмотрено на примере униполярного двигателя 28BYj-48 и драйверов L298 и ULN2003. В качестве платы будет использоваться Arduino Uno.

Подключение шагового двигателя к Ардуино

Еще один вариант схемы с использованием L298:

Подключение шагового двигателя к Ардуино на базе L298

Схема подключения на базе ULN2003 изображена на рисунке ниже. Управляющие выходы с драйвера IN1-IN4 подключаются к любым цифровым контактам на Ардуино. В данном случае используются цифровые контакты 8-11. Питание подключается к 5В. Также для двигателя желательно использовать отдельный источник питания, чтобы не перегрелась плата Ардуино.

Подключение шагового двигателя к Ардуино

Принципиальная схема подключения.

Принципиальная схема подключения шагового двигателя

Еще одна схема подключения биполярного шагового двигателя Nema17 через драйвер L298 выглядит следующим образом.

Обзор основных моделей шаговых двигателей для ардуино

Nema 17 – биполярный шаговый двигатель, который чаще всего используется в 3D принтерах и ЧПУ станках. Серия 170хHSхххА мотора является универсальной.

Основные характеристики двигателя:

  • Угловой шаг 1,8°, то есть на 1 оборот приходится 200 шагов;
  • Двигатель – двухфазный;
  • Рабочие температуры от -20С до 85С;
  • Номинальный ток 1,7А;
  • Момент удержания 2,8 кг х см;
  • Оснащен фланцем 42 мм для легкого и качественного монтажа;
  • Высокий крутящий момент – 5,5 кг х см.

28BYJ-48 – униполярный шаговый двигатель. Используется в небольших проектах роботов, сервоприводных устройствах, радиоуправляемых приборах.

  • Номинальное питание – 5В;
  • 4-х фазный двигатель, 5 проводов;
  • Число шагов: 64;
  • Угол шага 5,625°;
  • Скорость вращения: 15 оборотов в секунду
  • Крутящий момент 450 г/сантиметр;
  • Сопротивление постоянного тока 50Ω ± 7% (25 ℃).

Описание библиотеки для работы с шаговым двигателем

В среде разработки Ардуино IDE существует стандартная библиотека Strepper.h для написания программ шаговых двигателей. Основные функции в этой библиотеке:

  • Stepper(количество шагов, номера контактов). Эта функция создает объект Stepper, которая соответствует подключенному к плате Ардуино двигателю. Аргумент – контакты на плате, к которым подключается двигатель, и количество шагов, которые совершаются для полного оборота вокруг своей оси. Информацию о количестве шагов можно посмотреть в документации к мотору. Вместо количества шагов может быть указан угол, который составляет один шаг. Для определения числа шагов, нужно разделить 360 градусов на это число.
  • Set Speed(long rpms) – функция, в которой указывается скорость вращения. Аргументом является положительное целое число, в котором указано количество оборотов в минуту. Задается после функции Step().
  • Step(Steps) –поворот на указанное количество шагов. Аргументом может быть либо положительное число – поворот двигателя по часовой стрелке, либо отрицательное – против часовой стрелки.

Пример скетча для управления

В наборе примеров библиотеки Stepper.h существует программа stepper_oneRevolution, в которой задаются все параметры для шагового двигателя – количество шагов, скорость, поворот.

Заключение

В этой статье мы с вами узнали, что такое шаговый двигатель, как можно его подключить к ардуино, что такое драйвер шагового двигателя. Мы также рассмотрели пример написания скетча, использующего встроенную библиотеку Stepper. Как видим, ничего особенно сложного в работе с шаговыми моторами нет и мы рекомендуем вам обязательно поэкспериментировать самостоятельно и попробовать включить его в своих проектах Arduino.

Популярные заблуждения о шаговых электродвигателях и их разъяснения

Даже опытные инженеры часто имеют не совсем верное представление о шаговых электродвигателях и способах управления ими. В данной статье мы разберем лишь несколько основных заблуждений что, надеюсь, поможет и новичкам и бывалым инженерам при выборе драйверов управления. Было бы хорошо разобрать все особенности, но тогда эта статья превратилась бы в книгу.

Читать еще:  Сколько лить масло в 129 двигатель

В этой статье речь пойдет о биполярных шаговых электродвигателях, поскольку они являются наиболее популярными в использовании на сегодняшний день. Униполярные шаговые электродвигатели все еще используются в некоторых устройствах, однако их популярность с каждым годом снижается. Это снижение обуславливается преобладанием относительно недорогих драйверов для биполярных двигателей. Учитывая снижение стоимости управления, почему бы не использовать биполярные шаговые электродвигатели? В конце концов у них есть еще один плюс – больший крутящий момент.

Температура

Многие инженеры ошибочно полагают, что если шаговый электродвигатель имеет небольшой размер, значит, его температура тоже должна быть небольшой. Этот миф легко развеять, взяв документацию на электрическую машину, пирометр, и произвести замер. То, что при касании может показаться «очень горячим», на самом деле не будет даже подходить к максимально допустимой температуре машины. Шаговые электродвигатели обычно имеют повышенную температуру, это связано с внутренними процессами в самой машине. Даже когда они не вращаются они также подвержены потерям. Тем не менее, если вы сомневаетесь – перестрахуйтесь и проверьте температуру. Естественно, если температура превысит предельно допустимую, указанную в паспорте, это может привести к необратимым последствиям (выход из строя или значительное сокращение срока службы).

В случаях, когда есть необходимость снизить потребление электроэнергии в режиме простоя, можно использовать специальные драйверы, в которые данная функция включена. Однако это повлияет не только на значение тока в обмотках, но и на удерживающий момент, что в определенных механизмах тоже важно.

Микрошаговый режим

Микрошаги это не магия. Существуют специальные драйверы для микрошагового управления. Это позволяет увеличить точность позиционирования, однако достигается за счет значительного крутящего момента. Кроме того, наличие драйвера, обеспечивающего шаг 1/32, не значит, что ваш электродвигатель сможет это реализовать. После определенного порога (1/10 и иногда 1/16) требуются высококачественные драйверы и двигатели. Даже если ваш шаговый электродвигатель и драйвер смогут реализовать микрошаг в 1/32, возможно ли это интегрировать в общую систему управления?

Рассмотрим следующий пример. Линейное перемещение с 10 шагами на дюйм ходового винта напрямую соединенного с типичным шаговым двигателем, имеющим 200 шагов на оборот. Каждый полный шаг электрической машины будет переведен в 0,0005 дюйма линейного движения. Казалось бы, что, якобы, та же система микрошагов 1/32 сможет уменьшить линейный шаг до 0,000015. Но в реальности реализации данной системы практически не возможна, так как упругость и силы трения не позволят преобразовать настолько миниатюрные шаги к линейному движению.

Микрошаговый режим реально полезен при проверке системы с шаговой электрической машиной на резонанс. Это дает определенные возможности для избегания резонанса. Как известно, любая механическая система имеет резонансную частоту. Для шаговых электродвигателей достижение этой частоты, как правило, происходит на определенной скорости, после чего двигатель начнет сильно шуметь. Эти шумы могут привести к «пропусканию шагов», что чревато серьезными последствиями для определенных систем. В некоторых случаях это может привести к слишком большим вибрациям. В случаях с режущими машинами, такими как токарные станки, этот звук можно спутать с рабочим звуком обработки поверхности заготовки. Микрошаговый режим уменьшает расстояние пройденное валом между шагами (на появление шумов тратится меньше энергии).

Номинальное напряжение и напряжение питания

Наверное, одним из самых запутанных моментов является несоответствие напряжения на обмотке, указанного в паспорте машины, и реального напряжения источника питания, используемого для питания электрической машины. Если в техпаспорте указывается напряжение обмотки равное 3,4 В, то как получается, что электродвигатель подключается к источнику 48 В постоянного тока? Или иногда и к 80 В.

Номинальное напряжение не настолько критично, обратите внимание на ток.

Такое подключение стало возможным благодаря тому, что большинство современных драйверов имеют встроенное ШИМ управление выходным напряжением. Драйверы контролируют ток обмотки. Когда ток доходит до максимального значения (определяется максимальным током электрической машины), драйвер отключает питание, или снижает значение тока. При этом превышать максимальное напряжение драйвера нельзя.

Рассмотрим небольшой пример на основе шагового электродвигателя с номинальными данными: Uн = 12 В, Iн = 0,33 А, активное сопротивление обмотки R = 32,6 Ом, реактивное сопротивление обмотки L = 48 мГн.

12 В – это не максимально допустимое напряжение. Это напряжение нормальной работы, при котором в обмотке будет протекать ток равный 0,33 А.

Если вы управляете электрической машиной с помощью очень простого или Н-мостового драйвера, то вам необходимо ограничивать напряжение 12 В для предотвращения превышения номинального тока.

В случае использования драйвера с прерывателем (chopper drive), превышение номинального напряжения не является проблемой. Чем выше будет напряжение – тем быстрее машина достигнет магнитного насыщения. Приведенная ниже формула это иллюстрирует:

Приведенная формула вычисляет ток обмотки электродвигателя за определенный промежуток времени.

Ток, через катушку индуктивности 50 мГн, в течении 1 мс увеличивается пропорционально напряжению.

Если двигатель «перешагнет» прежде, чем сможет достаточно насытиться для развития необходимого момента, он начнет «терять» шаги. Если вы обнаружите, что такое происходит с вашей машиной на большом ходу – рассмотрите вариант повышения напряжения питания.

Ссылка на основную публикацию
Adblock
detector