Шаговый двигатель на AccelStepper

Шаговый двигатель на AccelStepper

Пользовательские блоки для управления шаговыми двигателями и сервоприводами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
Аватара пользователя
AlexCrane
Сержант
Сообщения: 280
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 61
Откуда: Ульяновск
Имя: Александр

Шаговый двигатель на AccelStepper

#1

Сообщение AlexCrane » 04.12.2019{, 22:24}

Бок управления шаговым двигателем на библиотеке AccelStepper

Наименование блока: ШагДвиг_mod (step/dir) INT_v2
ШД.png
ШД.png (4.42 КБ) 157 просмотров

Работает на библиотеке AccelStepper.h и TimerOne.h (Не будет работать ШИМ на выходах завязанных на первое прерывание)
http://www.airspayce.com/mikem/arduino/ ... index.html

Параметры пользователя:
period - Период прерывания, мкс, Менять Оторожно
Step - Пин управления шагами контроллера
Dir - Пин направления вращения контроллера

Входы:
Continuous - При true постоянно шагаем, имеет больший приоритет перед EnSteps
SpeedContinuous - Скорость ШД для "постоянно шагаем"
Эти два входа можно использовать для поиска концевика и просто чтобы покрутить двигателем, но без ускорений

SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig

EnSteps - при переднем фронте начинаем шагать. Использовать через RTrig
MaxSpeed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения (hint: можно и отрицательные)
CCW - true крутить против часовой, иначе по

AbsSteps - Если true то шагаем по абсолютным координатам от нулевой позиции, иначе идем относительно последней позиции

StopAccel - Остановка с использованием текущей скорости и ускорения

Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
-
ШагДвиг_mod_(stepdir)_INT_v2_(CODE).ubi
(126.96 КБ) 18 скачиваний
-
Небольшой пример:
Платы с блоком управления ШД включать по одной
-
Тест ШД 02.flp
(485.39 КБ) 12 скачиваний
-
Последний раз редактировалось AlexCrane 04.12.2019{, 22:37}, всего редактировалось 1 раз.
Если не знаю, то не скажу. Если скажу, то сначала проверю...

Аватара пользователя
AlexCrane
Сержант
Сообщения: 280
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 61
Откуда: Ульяновск
Имя: Александр

Шаговый двигатель на AccelStepper

#2

Сообщение AlexCrane » 04.12.2019{, 22:24}

Добавил блоки для управления до 6 ШД
Для нужного количества ШД выберите свой основной блок
6х ШД.flp
(345.3 КБ) 4 скачивания
6х ШД AlexCrane.ubl
(268.91 КБ) 4 скачивания
Последний раз редактировалось AlexCrane 05.12.2019{, 19:08}, всего редактировалось 1 раз.
Если не знаю, то не скажу. Если скажу, то сначала проверю...

Ingwar
Капитан
Сообщения: 704
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 29
Откуда: Ленобласть
Имя: Игорь

Шаговый двигатель на AccelStepper

#3

Сообщение Ingwar » 04.12.2019{, 23:01}

Код не смотрел, спрошу так - частота шагов меняется кратно таймеру? Или реально например можно получить 10000, 10001, 10002 и т. д. шагов в секунду?
С точки зрения геометрической прогрессии, если посмотреть сверху,
то снизу покажется, что сбоку ничего не видно.

Аватара пользователя
AlexCrane
Сержант
Сообщения: 280
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 61
Откуда: Ульяновск
Имя: Александр

Шаговый двигатель на AccelStepper

#4

Сообщение AlexCrane » 05.12.2019{, 05:45}

Ingwar писал(а):
04.12.2019{, 23:01}
Код не смотрел, спрошу так - частота шагов меняется кратно таймеру? Или реально например можно получить 10000, 10001, 10002 и т. д. шагов в секунду?
Ардуино нано, мега, уно вряд-ли даст столько шагов в сек... Пробовал 4000 - работало. Количество шагов в секунду любое.
Если не знаю, то не скажу. Если скажу, то сначала проверю...

Sanbi4
Рядовой
Сообщения: 23
Зарегистрирован: 30.10.2019{, 17:58}
Репутация: 0
Имя: Сергей

Шаговый двигатель на AccelStepper

#5

Сообщение Sanbi4 » 05.12.2019{, 13:57}

Подскажите, есть возможность использования нескольких таких блоков в 1 проекте?

Аватара пользователя
AlexCrane
Сержант
Сообщения: 280
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 61
Откуда: Ульяновск
Имя: Александр

Шаговый двигатель на AccelStepper

#6

Сообщение AlexCrane » 05.12.2019{, 15:01}

Sanbi4, Пока нет. Несколько для одного ШД или для нескольких ШД???
Если не знаю, то не скажу. Если скажу, то сначала проверю...

Sanbi4
Рядовой
Сообщения: 23
Зарегистрирован: 30.10.2019{, 17:58}
Репутация: 0
Имя: Сергей

Шаговый двигатель на AccelStepper

#7

Сообщение Sanbi4 » 05.12.2019{, 16:27}

Мне надо управлять 6ю ШД. С разными режимами работы. То есть выполнять разные задачи, соответственно, делать разные шаги при определенных условиях. Можно, чтобы в проекте было 6 блоков, остальное "прикрутим"

Аватара пользователя
AlexCrane
Сержант
Сообщения: 280
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 61
Откуда: Ульяновск
Имя: Александр

Шаговый двигатель на AccelStepper

#8

Сообщение AlexCrane » 05.12.2019{, 17:49}

Sanbi4, Тяжко будет ардуинке на этой библиотеке, попробуем...
Если не знаю, то не скажу. Если скажу, то сначала проверю...

Ответить

Вернуться в «Управление шаговыми двигателями и сервоприводами»

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

Сейчас этот форум просматривают: Слимпер и 0 гостей