Уважаемые пользователи! Наш сайт и форум содержится на средства полученные от рекламы. Если вы хотите и дальше продолжать общаться, скачивать, и т.п. пожалуйста отключите блокировку рекламы для нашего сайта/форума. Можно и покликать по рекламным ссылкам, так будут больше выплаты. Спасибо за понимание!

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

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

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

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

#1

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

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

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

Работает на библиотеке 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 КБ) 205 скачиваний
- здесь блоки старые оставил просто как пример (новые внизу)
------------------------------------------------
ТЕСТ ШД v6.flp
(225.63 КБ) 176 скачиваний
- здесь блоки старые оставил просто как пример (новые внизу)
------------------------------------------------
Обновил 15.12.2019. Не включалось повторно бесконечное вращение
Обновил 14.01.2020. После остановки "бесконечного вращения" продолжал медленно шагать
Обновил 29.01.2020 до версии 1.2. Пофиксил обнаруженные баги.
Обновил 06.04.2020 до версии 1.3. Некорректно работал вход CCW
Вложения
6х ШД AlexCrane v1.3.ubl
(498.89 КБ) 182 скачивания
ШД AlexCrane v1.2.ubl
(498.83 КБ) 222 скачивания
Последний раз редактировалось AlexCrane 06.04.2020{, 17:19}, всего редактировалось 6 раз.
Если не знаю, то не скажу. Если скажу, то сначала проверю...

Wadim77
Рядовой
Сообщения: 3
Зарегистрирован: 20.08.2020{, 19:23}
Репутация: 0
Имя: Wadim

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

#121

Сообщение Wadim77 » 03.09.2020{, 23:27}

AlexCrane писал(а):
22.08.2020{, 20:09}
Wadim77, Попробуй Тест ШД 05 test.flp
Благодарю. к сожалению не заработала программа. у меня такая ситуация. 1. Запускаю ардуину, замыкаю контакты поиска концевика. экран показывает, что он меняет позицию в минус. 2. Замыкаю контакты концевика. Концевик сработал. Экран показывает - обнулилось. 3. Дальше ничего не происходит. На экране все нули. П.С. подключил к переменной вход аналоговый (с потенциомера вместе уарта для проверки) - ничего не меняется в графе позиция (верхняя строка). И значение программа - тоже все время в нуле. Переменник работает - значения на экране меняются нормально. Если это важно - экран подключени по i2C

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

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

#122

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

Wadim77, Прошу прощения, забыл в примере подать импульс для начала движения ШД (как только получили данные по UART)
Тест ШД 05.3 test.flp
(597.1 КБ) 6 скачиваний
Если не знаю, то не скажу. Если скажу, то сначала проверю...

Wadim77
Рядовой
Сообщения: 3
Зарегистрирован: 20.08.2020{, 19:23}
Репутация: 0
Имя: Wadim

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

#123

Сообщение Wadim77 » 05.09.2020{, 02:00}

AlexCrane писал(а):
04.09.2020{, 10:18}
Wadim77, Прошу прощения, забыл в примере подать импульс для начала движения ШД (как только получили данные по UART)
Тест ШД 05.3 test.flp
ДОБРОГО ВРЕМЕНИ СУТОК!

Я немного заменил вход (плата №6), теперь там не уарт вход, а приемник DMX512. Что то совсем все перестало работать. в принципе немного изменил - приходит значение от 0 до 255, затем масштабируется до 2550 шагов. Это поидее понятно. Наверное я что то напортачил с сигналом поступления значения? Взгляние, ПОЖАЛУЙСТА. Хотелось бы довести этот проект до конца. П.С. (если не сложно) подскажите - 1. какую переменную или просто ПРИЕМ в ком порт надо принимать? 2. Пункт - сигнал по приему я не нашел? как он правильно реализуется? 3. Что надо отправляться в ком порт ардуинки с компа (МОНИТОРА ПОРТа), что бы заставить делать шаги? ОГРОМНОЕ ВАМ СПАСИБО за помощь! П.С.С - проект свой я приложил к этому письму)
Вложения
Тест ШД 05.3 testDMX.flp
(512.36 КБ) 5 скачиваний

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

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

#124

Сообщение AlexCrane » 05.09.2020{, 07:47}

Wadim77, Не знаю что такое DMX512, сделал прием шагов в виде строки из UART
Тест ШД 05.4 testDMX.flp
(671.12 КБ) 6 скачиваний
Если не знаю, то не скажу. Если скажу, то сначала проверю...

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

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

#125

Сообщение Sanbi4 » 09.09.2020{, 10:28}

Доброго времени суток. Подскажите такую вещь, как реализовать: нужно минимизировать ошибки шагания от нулевой точки. Дело в том, что скорость изменения количества шагов может меняться быстрее, чем шаговик отработает, в связи с этим могут накапливаться ошибки позиционирования. я думаю так сделать: запись переменной количества шагов разрешать через rtrig с выхода ready блока. будет ли это нормально работать?

железо пока не собрано, протестировать нет возможности.
Вложения
Безымянный.jpg

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

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

#126

Сообщение AlexCrane » 09.09.2020{, 14:49}

Sanbi4 писал(а):
09.09.2020{, 10:28}
скорость изменения количества шагов может меняться быстрее, чем шаговик отработает
Просто не нужно такого допускать
Sanbi4 писал(а):
09.09.2020{, 10:28}
запись переменной количества шагов разрешать через rtrig с выхода ready блока
Так обычно и делают
Если не знаю, то не скажу. Если скажу, то сначала проверю...

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

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

#127

Сообщение ingener » 15.09.2020{, 12:28}

AlexCrane, что-то не получается с плавной остановкой в ручном режиме.
если нажать и держать любую кнопку до прохода заданного кол-ва шагов, то тормозит плавно.
Если же бросить кнопку раньше, то встает резко.
Хотя, по идее, при подаче сигнала с RS триггера на вход StopAccel должен отрабатывать замедление?
Схема такая -
Вложения
hd1.PNG

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

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

#128

Сообщение AlexCrane » 15.09.2020{, 21:18}

ingener, RS триггер тут лишний, после FTrig подключите к StopAccel. Возможно просто нужно убавить ускорение...
Если не знаю, то не скажу. Если скажу, то сначала проверю...

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

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

#129

Сообщение Davit07 » Вчера{, 23:34}

Доброго дня .
Подскажите пожалуйста . При загрузке данного блока на плату DUE, пишет ошибку , несколько библиотек не найдено TimerOne.h. . Библиотеку загружаю, но все равно её не видно . При загрузке в UNO проблем нет . Подскаже в чем беда ?
Всем спасибо
Вложения
2020-09-23_23-50-59.png

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

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

#130

Сообщение viktorz1 » Сегодня{, 00:24}

Подскажите пожалуйста, на этом блоке можно собрать просто крутилку с регулировкой скорости вращения? Хочу собрать станочек свивки провода. Так как диаметр провода будет разный то скорее всего нужно будет подстраивать соотношение скоростей двух моторов (тип Nemo 17). Второе, это плавный старт с начальной скоростью вращения и если всё устраивает то по необходимости увеличение оборотов до номинальной.
Может есть у кого подходящий пример нечто похожего? Был бы очень признателен в помощи.

Ответить

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