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

Работает на библиотеке 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 КБ) 736 скачиваний
- здесь блоки старые оставил просто как пример (новые внизу)
------------------------------------------------
ТЕСТ ШД 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

#261

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

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

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

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

#262

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

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

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

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

#263

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

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

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

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

#264

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

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

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

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

#265

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

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

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

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

#266

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

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

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

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

#267

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

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

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

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

#268

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

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

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

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

#269

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

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

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

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

#270

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

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

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

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

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

#271

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

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

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

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

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

#272

Сообщение Di123 » 27.07.2022{, 10:31}

Ingwar, а как вы подключали tmc2209 ?
я подал на степ с есп32 управление
ну и питание 12в на верхнее плечо и 5в на нижнее собственно как у 4988
мс не трогал там по умолчанию вроде должно быть 1/8 тогда
ен тоже не трогал по идее должен разрешать работу в таком виде
уарт не трогал
слк тоже не трогал что то неизвесное

в итоге моторы не работают даже потребления по 12в никакого нет

Отправлено спустя 5 часов 54 минуты 14 секунд:
AlexCrane, у вас будет время посмотреть код ?
https://github.com/bigtreetech/BIGTREETECH-TMC2209-V1.2
может получится сделать блок под 2209

ANDREI1707
Рядовой
Сообщения: 5
Зарегистрирован: 02.07.2021{, 17:14}
Репутация: 0
Имя: Андрей

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

#273

Сообщение ANDREI1707 » 10.01.2023{, 15:46}

Здравствуйте! А можно ли сделать так чтобы блок (мотор) не стартовал при изменении скорости. Ну например когда цепляешь потенциометр через блок масштабирования. То при таком соединении на потенциометре есть "дрожжание" и это дрожжание провоцирует постоянное вращение и ни на какие "Р- триггеры" на стоп и тд не реагирует вообще. Возможно ли вывести кнопку для разрешения запуска, например пока не придет 1 на определенный "пин" мотор стоит?

vovka1973
Майор
Сообщения: 1060
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 42
Откуда: kazahstan

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

#274

Сообщение vovka1973 » 10.01.2023{, 17:34}

ANDREI1707 писал(а):
10.01.2023{, 15:46}
Ну например когда цепляешь потенциометр через блок масштабирования. То при таком соединении на потенциометре есть "дрожжание" и это дрожжание провоцирует постоянное вращение и ни на какие "Р- триггеры" на стоп и тд не реагирует вообще. Возможно ли вывести кнопку для разрешения запуска, например пока не придет 1 на определенный "пин" мотор стоит?
все работает как надо смотрите свою логику работы ,у меня схема работает на моторе нема 17 , для изготовления филамента с бутылок и пока я стоп не отпущу он на концевике у меня, хоть закрутись скоростью стоит как вкопанный.
Изображение

ANDREI1707
Рядовой
Сообщения: 5
Зарегистрирован: 02.07.2021{, 17:14}
Репутация: 0
Имя: Андрей

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

#275

Сообщение ANDREI1707 » 10.01.2023{, 17:58}

vovka1973, при задействованном ENABLE? мне не нужно чтобы питание отключалось. Мне нужно чтобы ротор удерживался, а при включении ENABLE питание двигателя отключается и вал в свободном вращении. Логика там простая только пуст и стоп и ВСЕ!Точно также и при изменении скорости с помощью кнопок и стартует и останавливается, но как только ты меняешь значение скорости он запускается без команды пуск. Мои наблюдения- любые изменени скорости приводят к запуску двигателя( без ENABLE повторюсь мне не нужно отключать питание двигателя, ибо нужно его удержание)

vovka1973
Майор
Сообщения: 1060
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 42
Откуда: kazahstan

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

#276

Сообщение vovka1973 » 10.01.2023{, 19:44}

ANDREI1707 писал(а):
10.01.2023{, 17:58}
ибо нужно его удержание)
он и в удержании постоянно но для меня это минус .приходится все питание гасить для прокрутки руками
Изображение

ANDREI1707
Рядовой
Сообщения: 5
Зарегистрирован: 02.07.2021{, 17:14}
Репутация: 0
Имя: Андрей

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

#277

Сообщение ANDREI1707 » 11.01.2023{, 02:39}

9EMvRy5O.jpg
x462JrYV.jpg
84DeFoIP.jpg
BSv0GpoU.jpg
вот в этих вариантах происходит самопроизвольный старт движка при изменении скорости двигателя. Там где есть потенциометр есть "дрожжание" а значит скорость меняется постоянно и начинает он вращаться дрыгаясь в такт с дрожжанием потенциометра

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

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

#278

Сообщение AlexCrane » 11.01.2023{, 10:10}

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

ANDREI1707
Рядовой
Сообщения: 5
Зарегистрирован: 02.07.2021{, 17:14}
Репутация: 0
Имя: Андрей

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

#279

Сообщение ANDREI1707 » 11.01.2023{, 13:34}

AlexCrane, ENDLES_Rotation_Speed

ANDREI1707
Рядовой
Сообщения: 5
Зарегистрирован: 02.07.2021{, 17:14}
Репутация: 0
Имя: Андрей

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

#280

Сообщение ANDREI1707 » 14.01.2023{, 13:54}

С другим блоком таких проблем нет. Из двух один собрать и цены бы ему не было)
Вложения
111.jpg
2222.jpg

Ответить

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