Перейти к содержанию
    

Управление шаговым двигателем через STEP/DIR-интерфейс

Есть задача: управлять шаговиком через драйвер со STEP/DIR-интерфейсом.

Крайне полезно уметь плавное ускорение и замедление (с заданным ограничением по ускорению и замедлению).

 

Имею спросить: нет ли где готовой реализации модуля управления шаговиком с плавным ускорением и замедлением?

Не совсем понятно, что имеется в виду под "готовой реализацией" ?

Исходники программ или готовый модуль? Если готовый модуль, так их в сети 1001 штука.

Мы для выставки, когда механика нового прибора уже была готова, а платы управления к ней я еще и не начинал делать, купили по-быстрому модуль 1063 - PhidgetStepper Bipolar 1-Motor

http://www.phidgets.com

там драйвер Allegro A3979

И забабахали для выставки имитацию прибора на нем :biggrin:

 

Ну а потом я уже глядя на описание API к этой плате, написал свои функции на хиленьком MSP430 на 8 МГц.

Разгон и торможение делал по-простому без всех этих умных слов ("без разрыва функции скорости во второй производной").

Конечно без разрыва то лучше, но быстродействие MSP430 не позволяло вычислять новый период шага на каждый шаг

(макс.частота шагов управления движком у меня была 2 кГц), так что я реализовал кусочно-линейный разгон и торможение:

Пересчет периода проводился 64 раза в секунду, между ними постоянная скорость.

Получились кусочки от одного до 30 шагов длиной (при разной скорости).

Ну и еще при разгоне проходит последовательно все 4-е режима работы драйвера:

от микрошага 1/16 через 1/4 и 1/2 до полного шага на максимальной скорости.

 

На глаз и слух никаких рывков при работе нет, хотя рабочий ток (ограничение) приходится подбирать,

так как эффект заклинивания от электромеханического резонанса проявиться может.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Думаю у вас не получиться сделать фрезерный станок 4х координатный на нескольких к155 с таблицами или кордиком. Этот код от станка он управляет скоростью подач, для линейных или круговых перемещений. Достаточно задать шаг винта, количество шагов на оборот, ускорение. После вызова функции с координатами xyza станок фрезерует всеми координатами радиус или линию. Там только не доделано 3d две плоскости они не были нужны. Микроконтроллер не простой выше постом было название двух ядерный. lpc4337 зтот код замечательно на нем работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем и целом, я решил пока не париться, а просто заказать драйвер L6470. Туда, пишут, можно задать максимальное ускорение, и он сам будет его отрабатывать. Безо всякого сложного кода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем и целом, я решил пока не париться, а просто заказать драйвер L6470. Туда, пишут, можно задать максимальное ускорение, и он сам будет его отрабатывать. Безо всякого сложного кода.

Прикольный драйвер. Когда пару лет назад занимался шаговиками, таких монстров "все-в-одном" еще не было.

Делал на Allegro A3979.

Хотя посмотрел функционал - все это почти один-в-один пришлось реализовывать программно.

Но, конечно, 1/128 микрошаг с макс. частотой полных шагов в 15.6 кГц (это 2 МГц входного сигнала STEP) на обычном МК не выдашь.

Тут DSP нужен или что-то на жесткой логике.

 

Хотя необходимость режима микрошага больше чем 1/16 вызывает вопросы.

На мой взгляд при этом возможность проскальзывания значительно возрастает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...