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

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

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

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

#1

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

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

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

Работает на библиотеке 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 КБ) 737 скачиваний
- здесь блоки старые оставил просто как пример (новые внизу)
------------------------------------------------
ТЕСТ ШД v6.flp
(225.63 КБ) 677 скачиваний
- здесь блоки старые оставил просто как пример (новые внизу)
------------------------------------------------
Обновил 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 КБ) 1070 скачиваний
Вложения
ШД AlexCrane v1.3.ubl
(780.74 КБ) 1028 скачиваний
Последний раз редактировалось AlexCrane 12.11.2020{, 18:48}, всего редактировалось 9 раз.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Oleg1345140
Лейтенант
Сообщения: 539
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

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

#21

Сообщение Oleg1345140 » 24.01.2020{, 16:23}

Sanbi4 писал(а):
24.01.2020{, 16:20}
-Oleg1345140, ensteps = 0, steps = 0 выставьте
эффекта не принесло (

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

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

#22

Сообщение Sanbi4 » 24.01.2020{, 16:32}

-Oleg1345140 Странно, у меня 4 мотора на этом блоке и все четко работает! и бесконечное вращение и по координатам.

Отправлено спустя 7 минут 4 секунды:
Вложения
Безымянный.jpg
Последний раз редактировалось Sanbi4 24.01.2020{, 16:59}, всего редактировалось 1 раз.

Oleg1345140
Лейтенант
Сообщения: 539
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

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

#23

Сообщение Oleg1345140 » 24.01.2020{, 16:40}

Sanbi4 писал(а):
24.01.2020{, 16:32}
Странно, у меня 4 мотора на этом блоке и все четко работает! и бесконечное вращение и по координатам.
у меня такая схема (на время теста)
Изображение
Вложения
ifu.png

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

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

#24

Сообщение Sanbi4 » 24.01.2020{, 16:52}

Oleg1345140, попробуй
Вложения
1,1.flp
(262.01 КБ) 151 скачивание

Oleg1345140
Лейтенант
Сообщения: 539
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

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

#25

Сообщение Oleg1345140 » 24.01.2020{, 17:03}

Sanbi4 писал(а):
24.01.2020{, 16:52}
Oleg1345140, попробуй
При нажатии на кнопку делает один шаг в соответствующую сторону, при удержании развивает скорость предельную для генераторов включаемых кнопками, но после окончания движения не куда больше не ходит. Спасибо, буду думать как в таком включении его применить. Жаль что задуманные входы для вращения не отрабатывают, идеальный способ поиска нуля получился бы.

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

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

#26

Сообщение Sanbi4 » 24.01.2020{, 17:08}

Oleg1345140, фото выше - поиск нуля работает! изучай логику моей схемы. блоки реально классные и работают стабильно и правильно! по вашей схеме - на видео не увидел мотора! протестируйте с мотором вашу же схему.

развитие скорости не от генераторов зависит, а от параметра ускорения в блоке. выстави 5000 и увидишь изменения

Oleg1345140
Лейтенант
Сообщения: 539
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

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

#27

Сообщение Oleg1345140 » 24.01.2020{, 17:50}

Sanbi4 писал(а):
24.01.2020{, 17:08}
Oleg1345140, фото выше - поиск нуля работает! изучай логику моей схемы. блоки реально классные и работают стабильно и правильно! по вашей схеме - на видео не увидел мотора! протестируйте с мотором вашу же схему.

развитие скорости не от генераторов зависит, а от параметра ускорения в блоке. выстави 5000 и увидишь изменения
Про блоки согласен классные. Похоже я неправильно понял логику из описания блока автором. С мотором тестировал результат точно такой же. По поводу скорости на 12 вольтах для 17HS4401s максимальная расчетная скорость 1000 шагов. позднее попробую заменить на 19-24 вольта. с блоками поэкспериментирую, если можно скинь тот кусок проекта который рулит ШД.

XENOMAN
Рядовой
Сообщения: 49
Зарегистрирован: 05.10.2015{, 18:03}
Репутация: 6

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

#28

Сообщение XENOMAN » 24.01.2020{, 17:58}

На ESP8266(NodeMCU) будет работать? В своё время делал блок для себя на этой библиотеке(в основном использовал runToNewPosition()), столкнулся с проблемой что на ESP передача данных через Wi-Fi прерывается, а если использовать moveTo() или run() двигатель "подлагивает" в момент общения через Wi-Fi.

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

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

#29

Сообщение AlexCrane » 24.01.2020{, 19:05}

Sanbi4, Oleg1345140, Был косяк в блоках первой версии, обновил в первом посту, протестируйте лучше их
XENOMAN, скорее всего будет то что вы описываете...
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Oleg1345140
Лейтенант
Сообщения: 539
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

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

#30

Сообщение Oleg1345140 » 24.01.2020{, 20:50}

AlexCrane писал(а):
24.01.2020{, 19:05}
Sanbi4, Oleg1345140, Был косяк в блоках первой версии, обновил в первом посту, протестируйте лучше их
XENOMAN, скорее всего будет то что вы описываете...
Вращение работает как и планировалось, есть сигнал вращает, нет стоит. Но теперь сломалось вращение на определенное количество шагов EnSteps, при подключении через RTrig делает только один шаг (на вход Steps подано значение 100), без триггера крутит пока держишь.

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

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

#31

Сообщение Sanbi4 » 24.01.2020{, 22:48}

Генератор на EnSteps прикрути, как в моем 1.1 файле, или убери 1 со входа abssteps.

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

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

#32

Сообщение AlexCrane » 26.01.2020{, 14:50}

Oleg1345140, Sanbi4, Обкатайте блоки, поправил
ТЕСТ ШД v5.flp
(219.52 КБ) 153 скачивания
Sanbi4 писал(а):
24.01.2020{, 22:48}
Генератор на EnSteps прикрути
не нужен, если подавать постоянно лог.ед. на EnSteps и AbsSteps то включится пропорциональное управление
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

IgorShamparov
Рядовой
Сообщения: 3
Зарегистрирован: 06.07.2018{, 20:51}
Репутация: 0
Имя: Игорь

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

#33

Сообщение IgorShamparov » 29.01.2020{, 20:14}

AlexCrane
подскажите пожалуйста, в режиме следования за импульсной последовательностью блок выдает импульсы от о шагов до х шагов (х - заданное кол-во шагов). При реверсе выдает импульсы до -х... А можно останавливаться в 0? Как решить такую задачу?

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

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

#34

Сообщение AlexCrane » 29.01.2020{, 20:31}

IgorShamparov, Немного не понял хотелку, поподробнее если можно...
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

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

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

#35

Сообщение AlexCrane » 29.01.2020{, 21:22}

Прошу перекачать блоки из первого поста, пофиксил проблемы выявленные при тестировании
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

IgorShamparov
Рядовой
Сообщения: 3
Зарегистрирован: 06.07.2018{, 20:51}
Репутация: 0
Имя: Игорь

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

#36

Сообщение IgorShamparov » 30.01.2020{, 10:04}

IgorShamparov, Немного не понял хотелку, поподробнее если можно...


Если мы ездим по заданному количеству шагов Х, то мы стартуем изначально в точке "0" затем можем поехать в точку Х (или в точку -Х). Затем меняя сигнал направления вращения мы едем в точку -Х (или в точку Х).
А хотелка двигаться в диапазоне 0-Х. В отрицательные значения не заезжать.
И еще. У меня выход блока "движение окончено" появляется только в момент торможения ( снижения скорости).
Вот как то так

Аватара пользователя
Davit07
Сержант
Сообщения: 119
Зарегистрирован: 05.01.2020{, 03:39}
Репутация: 5
Имя: Давит

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

#37

Сообщение Davit07 » 30.01.2020{, 12:06}

Есть ли функция у данного блока увеличение скорости при старте ?

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

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

#38

Сообщение AlexCrane » 30.01.2020{, 20:05}

Davit07, Да, движение по шагам начинается с ускорением, бесконечное вращение идет с постоянной скоростью
IgorShamparov, Вы используете относительные или абсолютные шаги? Можно программно считать шаги и соответственно не заезжать за ноль.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Аватара пользователя
Davit07
Сержант
Сообщения: 119
Зарегистрирован: 05.01.2020{, 03:39}
Репутация: 5
Имя: Давит

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

#39

Сообщение Davit07 » 30.01.2020{, 22:50}

AlexCrane писал(а):
30.01.2020{, 20:05}
Davit07, Да, движение по шагам начинается с ускорением, бесконечное вращение идет с постоянной скоростью
IgorShamparov, Вы используете относительные или абсолютные шаги? Можно программно считать шаги и соответственно не заезжать за ноль.
Доброе время суток
Спасибо Вам за ответ и интерес к вопросу.
С FLprog познакомился чуть больше месяца и многое для меня не понятно.

Желание сделать : вращение ШД с кнопки без фиксации до момента удержания кнопки, после размыкание контактов остановка, точно также с реверсом. Управление будет происходить с 2х кнопок. В момент не задействованных кнопок управление ШД буде происходить с поморью энкодера ( коррекция положения)
Ну это все в будущем, а сейчас у меня не получается раскрутить двигатель.
По поводу Вашего блока, не разобрался, надо ли скачивать библиотек или все идет с блоком ?
Спасибо Вам за ответ

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

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

#40

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

Davit07, Разгоняться с ускорением? Останавливаться как? ШД будет работать как мотор я понимаю

Библиотеки нужно скачивать отдельно.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Ответить

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