Управление несколькими шаговиками по протоколу Step, Dir
-
- Сообщения: 5
- Зарегистрирован: 13 ноя 2016, 17:36
Управление несколькими шаговиками по протоколу Step, Dir
Здравствуйте. А как решить задачу управления двумя или тремя шаговыми двигателями одновременно но с разными скоростями протоколом Step, Dir ?
Re: Управление несколькими шаговиками по протоколу Step, Dir
Создаем несколько объектов типа StepDirDriver:
Для каждого вызываем свои функции установки режимов и скорости вращения:
В обработчике прерывания вызываем:
Для управления используем функцию step():
Все как в уроке 35, только для нескольких экземплярах класса StepDirDriver
Код: Выделить всё
StepDirDriver myMotor1(10, 11, 12);
StepDirDriver myMotor2(7, 8, 9);
Для каждого вызываем свои функции установки режимов и скорости вращения:
Код: Выделить всё
myMotor1.setMode(0, false); // режим без фиксации при остановке
myMotor1.setDivider(10); // делитель частоты 10 (1 оборот в сек)
myMotor2.setMode(0, true); // режим c фиксацией при остановке
myMotor2.setDivider(20); // делитель частоты 20 (0,5 оборотов в сек)
В обработчике прерывания вызываем:
Код: Выделить всё
void timerInterrupt() {
myMotor1.control(); // управление двигателем
myMotor2.control(); // управление двигателем
}
Для управления используем функцию step():
Код: Выделить всё
myMotor1.step(100); // сделать двигателю 1 100 шагов против часовой стрелки
myMotor2.step(-50); // сделать двигателю 2 50 шагов по часовой стрелке
Все как в уроке 35, только для нескольких экземплярах класса StepDirDriver
-
- Сообщения: 5
- Зарегистрирован: 13 ноя 2016, 17:36
Re: Управление несколькими шаговиками по протоколу Step, Dir
Здравствуйте!
Разрешено ли для нескольких шаговых приводов использовать один пин для сигнала ENABLE (для экономии пинов ARDUINO)?
Разрешено ли для нескольких шаговых приводов использовать один пин для сигнала ENABLE (для экономии пинов ARDUINO)?
Re: Управление несколькими шаговиками по протоколу Step, Dir
Можно его на драйверах оставить не подключенным. На драйверах будут разрешающие уровни.
-
- Сообщения: 5
- Зарегистрирован: 13 ноя 2016, 17:36
Re: Управление несколькими шаговиками по протоколу Step, Dir
Добрый день. Пока с двумя осями получается. В библиотеки разгон движков не предусмотрен? каким образом реализовать?
Re: Управление несколькими шаговиками по протоколу Step, Dir
Здравствуйте! Да разгон не реализован. Библиотека простая, компактная, очень быстрая.
Наверное, можно скорость ступенями менять. Хотя, по хорошему надо другую библиотеку с такой функцией сделать.
Наверное, можно скорость ступенями менять. Хотя, по хорошему надо другую библиотеку с такой функцией сделать.
-
- Сообщения: 5
- Зарегистрирован: 13 ноя 2016, 17:36
Re: Управление несколькими шаговиками по протоколу Step, Dir
Здравствуйте.
Есть желание заменить в библиотеке кол-во шагов на long, что может помешать?
Есть желание заменить в библиотеке кол-во шагов на long, что может помешать?
Re: Управление несколькими шаговиками по протоколу Step, Dir
В принципе ничего не мешает. Только выполнение кода будет требовать больше времени. Я бы лучше этого не делал. Если вызывать метод contorl() в быстром цикле и с несколькими двигателями, то это может привести к неприятностям. Я старался сделать библиотеку максимально быстрой.
-
- Сообщения: 5
- Зарегистрирован: 13 ноя 2016, 17:36
Re: Управление несколькими шаговиками по протоколу Step, Dir
А DUE не использовали в своей практике?
Re: Управление несколькими шаговиками по протоколу Step, Dir
Я думаю, такие процессоры надо использовать только в крайних случаях, когда без высокой производительности не обойтись. Высокая цена, большие размеры, напряжение 3,3 В, а значит и пониженная помехозащищенность и т.д.
Re: Управление несколькими шаговиками по протоколу Step, Dir
Здравствуйте Эдуард!
Подскажите пожалуйста, а куда и какой надо добавить код, для того, чтобы можно было изменять скорость вращения двигателей в реальном времени.
Спасибо!
Подскажите пожалуйста, а куда и какой надо добавить код, для того, чтобы можно было изменять скорость вращения двигателей в реальном времени.
Спасибо!
Re: Управление несколькими шаговиками по протоколу Step, Dir
Забыл указать, скорость двигателей должна быть разная
Re: Управление несколькими шаговиками по протоколу Step, Dir
Здравствуйте!
Скорость двигателей устанавливается функцией setDivider().
Скорость двигателей устанавливается функцией setDivider().
Код: Выделить всё
myMotor1.setDivider(10); // делитель частоты двигателя 1 (1 оборот в сек)
myMotor2.setDivider(20); // делитель частоты двигателя 2 (0,5 оборотов в сек)
Re: Управление несколькими шаговиками по протоколу Step, Dir
Спасибо.
А как мне тогда можно командой AT изменить скорость с начало одного двигателя потом другого, никак не могу понять (
А как мне тогда можно командой AT изменить скорость с начало одного двигателя потом другого, никак не могу понять (
Re: Управление несколькими шаговиками по протоколу Step, Dir
Если я пишу ATD = 10 то двигатели меняют скорость одновременно
Re: Управление несколькими шаговиками по протоколу Step, Dir
Если вы имеете в виду драйвер шагового двигателя с AT командами из уроков 31 и 35, то там поддерживается только один двигатель. Надо изменять протокол и программу.
Re: Управление несколькими шаговиками по протоколу Step, Dir
Да я про это и имел в виду, пытаюсь изменить, пока ничего не получается
Re: Управление несколькими шаговиками по протоколу Step, Dir
Начните с протокола. Там должен добавиться номер двигателя. Лучше его совместить с командами. Например, не ATS, а ATS1 и ATS2.
Re: Управление несколькими шаговиками по протоколу Step, Dir
Понял, спасибо
Re: Управление несколькими шаговиками по протоколу Step, Dir
Всем здравствуйте!
При управлении 3 двигателями в режиме без фиксации при остановке(myMotor_x.setMode(0, false);), двигатели останавливаются одновременно после остановки двигателя, который был запущен первым. При myMotor_x.setMode(0, true); все работает нормально, двигатели управляются не зависимо. В чем причина?
При управлении 3 двигателями в режиме без фиксации при остановке(myMotor_x.setMode(0, false);), двигатели останавливаются одновременно после остановки двигателя, который был запущен первым. При myMotor_x.setMode(0, true); все работает нормально, двигатели управляются не зависимо. В чем причина?
Re: Управление несколькими шаговиками по протоколу Step, Dir
Добрый вечер.
Кто нибудь может поделится со школьником библиотекой StepDirDriver???
Заранее спасибо!!!
Кто нибудь может поделится со школьником библиотекой StepDirDriver???
Заранее спасибо!!!
Re: Управление несколькими шаговиками по протоколу Step, Dir
Здравствуйте!
Напишите в контакты сайта mypractic.ru. Я вам на месяц доступ открою.
Напишите в контакты сайта mypractic.ru. Я вам на месяц доступ открою.
Re: Управление несколькими шаговиками по протоколу Step, Dir
Хорошо, Спасибо.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей