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

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

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

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

#1

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

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

Наименование блока: ШагДвиг_mod (step/dir) INT_v2
ШД.png

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

texbez
Сержант
Сообщения: 268
Зарегистрирован: 20.11.2016{, 19:57}
Репутация: 6
Откуда: Ростов на дону

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

#221

Сообщение texbez » 20.03.2021{, 23:26}

Wadim77 писал(а):
20.03.2021{, 16:49}
я удивлен - почему автор программы FL не интегрирует нормальные рабочие блоки от тогоже гайвера. Например - по умолчанию блок в программе управления шаговиком - древний и на нафиг никому не нужных моторчиках и драйвере ULN2003. я вообще не понимаю кто этим унынием пользуется. Очевидно же , сейчас сейчас все используют драйвера step/dir. Так же и с серво приводом. В программе дреняя библиотека управления сервой.хотя можно сделать по умолчанию блок с управлением ускорением. В общем - лично от меня просьба - сделайте пожалуйста блок управления ШД на основе библы от Гайвера. БОЛЬШИЕ ВАМ СПАСИБО.
Просто у автора не хватает на это времени,он об этом как то писал.....

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

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

#222

Сообщение viktorz1 » 27.03.2021{, 17:20}

Доброго времени! Не подскажите на ESP32 не пробовали, будет блок работать?
У меня с проектом проблемы по скорости Ардуины. Три мотора, четыре аналоговых входа, два счётчика импульсов и два концевика ну, и дисплей, куда без него. В общем на маленькой скорости ещё работает, а вот чуть побыстрее и счётчики начинают пропускать импульсы.
Как это всё оптимизировать я без понятия, "написатель кода" ещё тот ... :(
Решил попробовать на ЕСПшке.

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

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

#223

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

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

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

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

#224

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

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

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

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

#225

Сообщение 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

#226

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

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


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

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

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

#227

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

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

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

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

#228

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

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

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

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

#229

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

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

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

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

#230

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

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

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

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

#231

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

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

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

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

#232

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

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

Ответить

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