Точное позиционирование шагового двигателя на оси

Вопросы об управлении шаговыми двигателями
Red_Lion
Сообщения: 1
Зарегистрирован: 08 авг 2018, 17:33

Точное позиционирование шагового двигателя на оси

Сообщение Red_Lion » 08 авг 2018, 19:43

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

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

С первым было 2 варианта: 1. организовать ещё одно прерывание с плавающей частотой
2. изменение значения divider (использовать его?)

С первым всё хорошо , кроме того, что это уже третье прерывание в программе и я как-то не знаю как они все будут дружить и кто кого будет прерывать :? , да и т.к. control() будет вызываться каждые 40мс(кстати, сколько мс этот метод съедает?),второй вариант даёт более-менее приемлемое изменение скорости, но... скорее всего недостаточное т.к. скорость перемещения каретки должна быть строго согласована со скоростью вращения двигателя, а дискретизация на 100-200оборотах весьма приличная

Со вторым сложнее, опять же: 1. Тупо плюсовать каждый шаг в переменную uint32_t
2. Перед тем как отправить двигатель из одной стороны в другую считать за сколько он должен дойти и каждые 40мс проверять истекло ли это время.

Второй вариант мне казался интереснее до тех пор пока я не подумал сколько же раз придётся пересчитывать время при добавлении ускорений, причём не только на концах участка, но и по пути

ps шаговик нема 23 с шагом 1,8 градуса


Вернуться в «Шаговые двигатели и драйверы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость