Высказывания и цитаты:

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

  • 01Ноя
    AVR

    Доброго всем времени суток!

    Сегодня я хочу рассказать о том, как управлять шаговым драйвером с помощью микроконтроллера. Возьмем для примера драйвер PLD545. Все остальные, я думаю, работают аналогично, этот драйвер продавался в purelogic, а там цена выше аналогов на aliexpress в два раза.PLD545

    Его описание PLD545.pdf.

    Именно такой стоит на установке сухой лед в количестве двух штук на Уссурийском локомотиворемонтном заводе. Эта установка обеспечивает очистку поверхности деталей перед покраской. Сухой лед — это условное название установки, которая стреляет шариками из углекислоты. Один привод обеспечивает перемещение пистолета с помощью шагового двигателя по вертикали через редуктор, другой — поворачивает пистолет в нужном оператору направлении. Управление установкой осуществляется в ручном режиме с помощью джойстика (вверх, вниз, влево,вправо) и кнопки на джойстике для стрельбы углекислотой.

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

    Шаговых приводов выпущено производителями большое разнообразие, чтобы в этом убедиться надо зайти на сайт aliexpress.com и ввести в поиске товаров Step driver. Шаговые привода управляют соответственно шаговыми моторами. В зависимости от конфигурации обмоток двигатели делятся на биполярные и униполярные. Биполярный двигатель имеет одну обмотку в каждой фазе, которая для изменения направления магнитного поля должна переполюсовывается драйвером. Всего биполярный двигатель имеет две обмотки и, соответственно, четыре вывода. Униполярный двигатель также имеет одну обмотку в каждой фазе, но от середины обмотки сделан отвод. Это позволяет изменять направление магнитного поля, создаваемого обмоткой, простым переключением половинок обмотки. Таким образом, в униполярном двигателе используется другой способ изменения направления магнитного поля. step motor

    Но это не мешает подключать к данному приводу различные по конструкции двигателя:подключение ШД

    Некоторые уникальные свойства шагового двигателя делают их порой исключительно удобными и даже незаменимыми для применения. Шаговый двигатель — это разновидность синхронного двигателя, поэтому он имеет высокий крутящий момент на низких оборотах. Но величина момента, помноженная на скорость вращения вала ШД — величина постоянная. С увеличением скорости вращения крутящий момент на валу падает пропорционально. Большинство моторов делает 200 или 400 шагов на оборот, однако конструкция ШД позволяет фиксировать ротор в промежуточных положениях, что позволяет добиться дробления шага до 800-10000(и даже более) шагов/оборот. Подавляющее производимых ШД имеют погрешность при выполнении установки ротора в размере плюс-минус 5% от величины шага, т.е. для двигателя с шагом 1.8 град погрешность составит плюс-минус 5.4 минуты

    Преимущества шаговых двигателей

    • Угол поворота ротора определяется числом импульсов, которые поданы на двигатель
    • Двигатель обеспечивает полный момент в режиме остановки (если обмотки запитаны)
    • Возможность быстрого старта/остановки/реверсирования
    • Высокая надежность, связанная с отсутствием щеток, срок службы шагового двигателя фактически определяется сроком службы подшипников
    • Однозначная зависимость положения от входных импульсов обеспечивает позиционирование без использования обратной связи
    • Возможность получения очень низких скоростей вращения для нагрузки, присоединенной непосредственно к валу двигателя без редуктора
    • Большой диапазон скоростей
    • Низкая стоимость(по отношению к сервоприводам)

    Главное преимущество шаговых приводов — точность. При подаче потенциалов на обмотки шаговый двигатель повернется строго на определенный угол.
    К приятным моментам можно отнести стоимость шаговых приводов, в среднем в 1,5-2 раза дешевле сервоприводов. Шаговый привод, как недорогая альтернатива сервоприводу, наилучшим образом подходит для автоматизации отдельных узлов и систем, где не требуется высокая динамика.

    Недостатки шаговых двигателей

    • Резонанс
    • Возможен пропуск шагов, и как следствие — потеря контроля положения(ввиду отсутствия обратной связи)
    • Потеря момента и стабильности на высоких скоростях
    • Невысокая удельная мощность

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

    Сам проект

    Проект сделан на микроконтроллере Mega16 несколько лет назад в программе Code Vision AVR. Структурная схема:
    driverПри нажатии кнопки L или R происходит вращение двигателя в какую-либо сторону, и при этом на дисплее отображается направление >>> или <<<. В программе не реализован плавный пуск — тогда он мне был не нужен, для этого при нажатии кнопки необходимо плавно увеличивать частоту, а при отпускании — плавно уменьшать. При нажатии Up или Down меняем скорость вращения от 1 до 9  (сколько это в герцах зависит от кварца и самого текста программы). Значение сразу сохраняется в eeprom, поэтому при последующем включении оно останется тем, которое было. В этом проекте дисплей можно исключить — без него также будет работать. В файле led.c приведены комментарии к строкам программы.

    А теперь самое важное: сперва я написал проект, в котором подавал меандр на вход Step драйвера аппаратно (у контроллера есть вывода от таймера напрямую), где просто заносил разные значения в регистр OCRA или TCNT, таким образом менялась частота. Но на драйвере мигал красный светодиод Error, после чего приходилось выключать питание. Оказывается, сигнал на входе Step должен иметь определенную длительность положительного уровня порядка 20-40 мкС (лучше прогоните в отладчике этот файл, а то я мог забыть) и ни в большую и ни в меньшую сторону.

    Теперь принцип работы программы: здесь использован кварц на 7.37 Мгц, но вы можете поставить 8 без переделывания программы. В прерывании по TimerO осуществляется опрос кнопок и выдача сигналов на драйвер, в цикле основной программы осуществляется выдача информации на дисплей и сохранение значений в eeprom, если было изменение скорости. Архив driver.rar содержит только исходный файл на си, файл проекта и структурную схему в RusPlan, чтобы получить hex — проект необходимо откомпилировать.

    Вот и всё! Успехов Вам в работе.

1 комментарий

WP_Cloudy
  • Михаил Николаевич Мищенко пишет:

    А ты что, дома это собираешь? И как, не тяжело писать программы для контроллеров мега 16 в таких установках? С удовольствием бы весь процесс посмотрел от проекта в протеусе до сборки в реальном виде.

Ваш ответ

Внимание: Модератор оставляет за собой право редактировать или удалять комментарии.

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой: