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

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

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

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

#1

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

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

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

Работает на библиотеке 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 - Текущая позиция двигателя
-

-
Небольшой пример:
------------------------------------------------
Тест ШД 04 test.flp
(752.64 КБ) 509 скачиваний
- здесь блоки старые оставил просто как пример (новые внизу)
------------------------------------------------
ТЕСТ ШД v6.flp
(225.63 КБ) 465 скачиваний
- здесь блоки старые оставил просто как пример (новые внизу)
------------------------------------------------
Обновил 15.12.2019. Не включалось повторно бесконечное вращение
Обновил 14.01.2020. После остановки "бесконечного вращения" продолжал медленно шагать
Обновил 29.01.2020 до версии 1.2. Пофиксил обнаруженные баги.
Обновил 06.04.2020 до версии 1.3. Некорректно работал вход CCW
Обновил 12.11.2020 Добавил блоки для DUE и для драйверов на базе ULN2003, L298N и пр.

Примеры предоставленные участниками форума:
viewtopic.php?t=5919#p80991

Библиотеки
Accel_libraries.zip
(118.27 КБ) 636 скачиваний
Вложения
ШД AlexCrane v1.3.ubl
(780.74 КБ) 598 скачиваний
Последний раз редактировалось AlexCrane 12.11.2020{, 18:48}, всего редактировалось 9 раз.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

jah
Рядовой
Сообщения: 5
Зарегистрирован: 13.08.2019{, 19:09}
Репутация: 0
Имя: yura

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

#261

Сообщение jah » 13.01.2022{, 22:34}

да последний

noanylag
Рядовой
Сообщения: 36
Зарегистрирован: 24.04.2017{, 02:18}
Репутация: 0

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

#262

Сообщение noanylag » 03.02.2022{, 15:34}

AlexCrane писал(а):
04.12.2019{, 22:24}
работает как сервопривод от 0 до 90 гр
viewtopic.php?t=5919#p80991
Простите,но это рабочий пример или что то перепутано? Скачивается блок ШД1_v1.3_UNI... А как реализовать управление?
Интересует именно управление переменником, а-ля сервопривод. Не пойму как реализовать.

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

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

#263

Сообщение AlexCrane » 03.02.2022{, 16:17}

noanylag, Вот в закромах нашел
Тест ШД 06 пропорциональное.flp
(812.97 КБ) 39 скачиваний
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

noanylag
Рядовой
Сообщения: 36
Зарегистрирован: 24.04.2017{, 02:18}
Репутация: 0

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

#264

Сообщение noanylag » 04.02.2022{, 00:34}

Очень рад быстрому ответу.Спасибо.
Появились вопросы, но кажется разобрался. Частично.

noanylag
Рядовой
Сообщения: 36
Зарегистрирован: 24.04.2017{, 02:18}
Репутация: 0

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

#265

Сообщение noanylag » 09.02.2022{, 23:40}

AlexCrane писал(а):
03.02.2022{, 16:17}
в закромах нашел
А нет ли в закромах... Что то запутался.
Алгоритм такой :
Включаем питание , Выставляем некое положение мотора ,переменником в пропорциональном режиме.
Выключаем питание схемы.
Включаем. Если резистор не трогали,двигатель остается неподвижным. Если в обесточенном состоянии , резистор смещали в другое положение, то мотор занимает это,новое положение. Дальше так же следит за положением резистора.

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

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

#266

Сообщение AlexCrane » 10.02.2022{, 15:22}

noanylag, Подправил блок для 1 ШД, добавил вход установки текущей позиции ШД. Перед выключением позицию ШД сохраняем в EEPROM. При включении записываем позицию в блок. И если позиция резистора не совпадает с позицией ШД то он установится в нужное положение.
Вложения
ШД1_v1.3a_(Code_-_Basic).ubi
(292.52 КБ) 18 скачиваний
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

noanylag
Рядовой
Сообщения: 36
Зарегистрирован: 24.04.2017{, 02:18}
Репутация: 0

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

#267

Сообщение noanylag » 11.02.2022{, 00:32}

AlexCrane писал(а):
10.02.2022{, 15:22}
Подправил блок для 1 ШД
Работает! То что надо. Боялся ,что не смог достаточно понятно описал потребности. Спасибо!
Ну и , вопрос, вдогонку: с 2-мя моторами работать будет?

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

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

#268

Сообщение AlexCrane » 11.02.2022{, 09:12}

noanylag, Подправил для двух, первый тоже замени, в основных изменений нет.
Вложения
ШД1_v1.3a_(Code_-_Basic).ubi
(295.91 КБ) 32 скачивания
ШД2_v1.3a_(Code_-_Basic).ubi
(294.82 КБ) 23 скачивания
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

jah
Рядовой
Сообщения: 5
Зарегистрирован: 13.08.2019{, 19:09}
Репутация: 0
Имя: yura

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

#269

Сообщение jah » 13.04.2022{, 13:31}

AlexCrane,
да блоки последние

Vadim483
Рядовой
Сообщения: 1
Зарегистрирован: 17.06.2022{, 19:26}
Репутация: 0
Имя: Вадим

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

#270

Сообщение Vadim483 » 19.06.2022{, 10:15}

Добрый день, Всем! Подскажите помогите пожалуйста ! как сделать что бы ШД при нажатии КНОПКИ двигался в одну сторону до концевика, а при повторном нажатии КНОПКИ он двигался в обратную сторону тоже до концевика. И так при каждом нажатии в одну сторону потом в другую сторону! Спасибо всем!

ggen4ik
Рядовой
Сообщения: 11
Зарегистрирован: 09.02.2022{, 17:34}
Репутация: 0
Имя: Evgeny

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

#271

Сообщение ggen4ik » 19.06.2022{, 12:04}

Vadim483 писал(а):
19.06.2022{, 10:15}
Добрый день, Всем! Подскажите помогите пожалуйста ! как сделать что бы ШД при нажатии КНОПКИ двигался в одну сторону до концевика, а при повторном нажатии КНОПКИ он двигался в обратную сторону тоже до концевика. И так при каждом нажатии в одну сторону потом в другую сторону! Спасибо всем!
Screenshot_1.jpg
Вероятно как то так.

Аватара пользователя
Dryundel
Полковник
Сообщения: 1759
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 542
Откуда: Ярославль
Имя: Андрей
Контактная информация:

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

#272

Сообщение Dryundel » 19.06.2022{, 14:25}

ggen4ik писал(а):
19.06.2022{, 12:04}
Вероятно как то так.
А если во время движения надо поменять направление?
:)

Отправлено спустя 4 минуты 14 секунд:
А если ещё надо остановить во время движения?
И все это одной кнопкой.
Слабо? :)
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

ggen4ik
Рядовой
Сообщения: 11
Зарегистрирован: 09.02.2022{, 17:34}
Репутация: 0
Имя: Evgeny

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

#273

Сообщение ggen4ik » 19.06.2022{, 15:47}

Dryundel писал(а):
19.06.2022{, 14:29}
ggen4ik писал(а):
19.06.2022{, 12:04}
Вероятно как то так.
А если во время движения надо поменять направление?
:)

Отправлено спустя 4 минуты 14 секунд:
А если ещё надо остановить во время движения?
И все это одной кнопкой.
Слабо? :)
так есть тз, согласно которому и накидал схему. Но отвечая на ваш вопрос, на форуме выкладывали блоки Т триггеров с входом сброса, и они идеально решат данную задачу.
Но все же в случае с движением лучше использовать, как мне кажется, RS Триггер, а не ТТ. Так как RS у нас намертво подвязан к концевикам, и даже после перезагрузки питания в конечном положении двигатель поймёт, куда ему крутиться. А вот в случае с ТТ триггером может произойти выход за границы регулирования.

Ответить

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