AccelStepper и несколько ШД

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

Это давно и достоверно известно - производительности процессоров с тактовой частотой 16 Мгц недостаточно для привода шаговых двигателей, тем более не одного, а больше.
Библиотека AccelStepper довольно требовательна к тактовой частоте процессора.
Решение простое - сделать отдельный контроллер на более быстром и недорогом процессоре, например ESP8266, и передавать в него команды по Com порту с очередными параметрами для AccelStepper. Поставьте в ESP8266 тактовую частоту 160 Мгц и ваш вопрос решится положительно. Решение проверено на реальном проекте, результат положительный.

Есть и иное решение - используйте отдельный процессор с GRBL для управления шаговиками, до трех штук. И отправляйте в него команды по Com порту из основного процессора. Можете сразу тремя моторами управлять, с разной скоростью. Получится кастом ЧПУ.

Есть ещё третий вариант, взять сразу кастом ЧПУ у китайцев, не сильно дорого выходит.
Да, не Fanuc, и об интерполяции можно забыть, зато и цена не лям.

Ужость! Как жить-то?

2 лайка

А если кварц на 20МГц поставить? :laughing:

Сказано же тебе - 160МГц ))

1 лайк

Не просто сказано, а ещё и

1 лайк

и как 4-ре двигателя крутились на станке CNC на Меге ума не приложу, и точность была сотки
ЗЫ даже на UNO, фото шильда не прикладываю

Дык куда там нам с Вами … нам же ш нечего просто прикладывать-то! То ли дело, вот человек:

В граните отлил!

Вопрос решил. Теперь два движка летают с 3ей космической скоростью одновременно.
Ушел от библиотеки AccelStepper в сторону вами любимого GyverStepper.
Станок стал летать + выраженная плавность в разгоне/торможении.