Шаговый двигатель на 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 КБ) 41159 просмотров

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

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

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

#221

Сообщение AlexCrane » 27.03.2021{, 19:01}

viktorz1, Именно эти нет, т.к. используют прерывания от ардуино. Могу попробовать конечно повесить на прерывания ESP32. На ней каждую 1 микросекунду можно без проблем вызывать прерывания...
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

viktorz1
Рядовой
Сообщения: 11
Зарегистрирован: 24.09.2020{, 00:08}
Репутация: 0
Имя: Виктор

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

#222

Сообщение viktorz1 » 27.03.2021{, 19:23}

AlexCrane, было бы очень здорово. За практически те же деньги, что и Ардуина, ESP32 выглядит более аппетитней по возможностям.
Думаю, что многим пригодится такой блок.

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

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

#223

Сообщение AlexCrane » 28.03.2021{, 20:53}

viktorz1, Попробуй запустить на ESP32
ШД1 ESP32.flp - не работает

У меня пока нет возможности
Последний раз редактировалось AlexCrane 06.04.2021{, 22:20}, всего редактировалось 1 раз.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

viktorz1
Рядовой
Сообщения: 11
Зарегистрирован: 24.09.2020{, 00:08}
Репутация: 0
Имя: Виктор

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

#224

Сообщение viktorz1 » 29.03.2021{, 01:02}

AlexCrane, Блок опробовал, к сожалению мотор не запустился. Завтра попробую ещё пины Еспешки перепроверить и программу упростить, чисто старт/стоп и константы по скорости.


Нет, блок к сожалению не работает. Собрал простенькую программу, что бы запустить мотор и убедиться, что всё прошивается и пины верны. Мотор запустился.

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

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

#225

Сообщение ingener » 30.03.2021{, 21:49}

У меня тоже не заработал. Не стартует при подаче сигнала на EnSteps...

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

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

#226

Сообщение AlexCrane » 30.03.2021{, 22:06}

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

anahaevazik
Рядовой
Сообщения: 1
Зарегистрирован: 07.06.2021{, 22:16}
Репутация: 0
Имя: Азамат

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

#227

Сообщение anahaevazik » 07.06.2021{, 22:52}

Подскажите пожалуйста, можно ли используя данный блок задать отдельно замедление двигателя?

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

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

#228

Сообщение AlexCrane » 08.06.2021{, 07:36}

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

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

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

#229

Сообщение ingener » 25.08.2021{, 11:10}

AlexCrane, есть одна хотелка к данному блоку - маловероятно, что осуществимая, но вдруг :)
Для использования блоков в ответственных применениях - где очень важна точность угла поворота ротора ШД независимо от нагрузки - хорошо было бы иметь вход для сигнала энкодера.
То есть, счетчик пройденных шагов блока использовал бы не внутренний генератор, а сигнал с внешнего энкодера ШД.
Невозможно?

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

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

#230

Сообщение edyapd » 27.08.2021{, 09:58}

ingener, если я вас правильно понял, то для реализации вашей идеи не обязательно переделывать данный блок. Вы можете сделать это самостоятельно. Заводите на вход энкодер, Вешаете на него счётчик. Делаете предустановку этого счётчика и пока с него есть разрешающий сигнал подаёте Степ на вход блока шагового двигателя. Как только энкодер повернулся на нужное количество счёт остановился и остановил двигатель.

promiks111
Рядовой
Сообщения: 19
Зарегистрирован: 14.04.2018{, 18:50}
Репутация: 4
Имя: Артур

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

#231

Сообщение promiks111 » 08.10.2021{, 10:12}

ingener писал(а):
25.08.2021{, 11:10}
AlexCrane, есть одна хотелка к данному блоку - маловероятно, что осуществимая, но вдруг :)
Для использования блоков в ответственных применениях - где очень важна точность угла поворота ротора ШД независимо от нагрузки - хорошо было бы иметь вход для сигнала энкодера.
То есть, счетчик пройденных шагов блока использовал бы не внутренний генератор, а сигнал с внешнего энкодера ШД.
Невозможно?
Для этих целей лучше использовать ШД с замкнутым контуром. Их сейчас полно на Али.Он дешевле серводвигателя, разрешение встроенного энкодера до 4000 на оборот.

AlexandrP
Рядовой
Сообщения: 13
Зарегистрирован: 08.12.2020{, 07:02}
Репутация: 0
Откуда: Байкалово(Свердл. обл.)
Имя: Александр

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

#232

Сообщение AlexandrP » 12.11.2021{, 20:22}

Доброго времени суток! Скажите почему в описании блоков написано использовать EnStep через Rtrig, а в примерах используется без?

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

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

#233

Сообщение AlexCrane » 12.11.2021{, 22:19}

AlexandrP, Видимо в примере используется абсолютные координаты (к примеру повторение положения ШД повороту ручки потенциометра). При относительных - то только через RTrig.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Palmal269
Рядовой
Сообщения: 37
Зарегистрирован: 10.06.2019{, 07:21}
Репутация: 0
Имя: Vitaliy

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

#234

Сообщение Palmal269 » 21.11.2021{, 09:38}

День добрый ,Какие строки убрать в блоке что-бы убрать из блока steps и position
Версия для esp

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

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

#235

Сообщение AlexCrane » 21.11.2021{, 13:08}

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

Palmal269
Рядовой
Сообщения: 37
Зарегистрирован: 10.06.2019{, 07:21}
Репутация: 0
Имя: Vitaliy

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

#236

Сообщение Palmal269 » 22.11.2021{, 09:13}

Мне надо что бы крутился без ограничения

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

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

#237

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

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

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

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

#238

Сообщение AlexCrane » 26.11.2021{, 21:29}

Для тестов блок ШД без использования прерываний (подходит для ESP8266)
ШД на AccelStepper без прерываний.flp
(540.39 КБ) 70 скачиваний
Сам не тестировал !!!

НовыйUser
Сержант
Сообщения: 154
Зарегистрирован: 26.11.2015{, 22:05}
Репутация: 8

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

#239

Сообщение НовыйUser » 05.12.2021{, 20:31}

Подскажите, что лучше выбрать под 17hs4401 + A4988 из представленных на форуме блоков?
Из опыта вашего...

задача стоит ТИХО :smile469: вращать
Vref A4988=0.95в
питание бп 12в (2А)
радиатор на чипе 3см
кондер электролитический по питанию 16в 1500uf

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

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

#240

Сообщение AlexCrane » 05.12.2021{, 21:06}

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

Ответить

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