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

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

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

Сообщение AlexCrane »

[ref]Sanbi4[/ref], Хорошо, сделаю
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Scrabler
Рядовой
Сообщения: 9
Зарегистрирован: 20 июл 2019, 18:16
Имя: Михаил

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

Сообщение Scrabler »

Уважаемый автор модуля для ESP. Погонял ваш модуль и выяснилось следующее - поиск концевика работает изумительно, но есть проблемы с EnStep... Что бы двигатель отработал заданное количество шагов нужно на EnStep подать не передний фронт импульса а испульс длиной больше времени исполнения этого количества шагов... Как это можно исправить? Заранее благодарю
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref]Sanbi4[/ref], [ref]Scrabler[/ref], Испытайте, блоков кидайте на сколько пинов хватит :smile171:
ШД1_ESP_v1.3_(CODE).ubi
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Scrabler
Рядовой
Сообщения: 9
Зарегистрирован: 20 июл 2019, 18:16
Имя: Михаил

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

Сообщение Scrabler »

Спасибо. Пока не работает перемещение на заданное количество шагов после поиска концевика. Разбираюсь.. Есть вопрос - должен ли появляться сигнал Ready01 после того как непрерывное вращение нашло концевик? или этот сигнал только выставляется после отработки движения двигателя на заданное количество шагов?

Отправлено спустя 25 минут 36 секунд:
Да и еще проблема в следующем... Двигатель у меня не быстрый - 400 шагов на оборот. И при подаче через Rtrigger сигнала на движение - он начинает шагать, но не отрабатывает их все... Не знаю с чем это связано... Пробовал меня скорость и ускорение но не помогло.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref]Scrabler[/ref], А если так
ШД1_ESP_v1.5_(CODE).ubi
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось AlexCrane 18 апр 2020, 18:52, всего редактировалось 1 раз.
Scrabler
Рядовой
Сообщения: 9
Зарегистрирован: 20 июл 2019, 18:16
Имя: Михаил

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

Сообщение Scrabler »

нет что-то стало все виснуть... Предыдущая версия в принципе рабочая. Только можно в нее добавить выставление флага Ready01 в 1 при условии нахождения концевика. А так все хорошо. шаги не все выполнялись по причине кривизны моего драйвера - на нем нельзя выставить полный шаг как оказалось... Извиняюсь за то что вснес смуту.. Спасибо вам за ваш труд))
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref]Scrabler[/ref], Попробуй viewtopic.php?f=75&t=5919&p=88430#p88430
Жаль проверить не на чем :(

[ref]Scrabler[/ref], спасибо за тестирование, проверю сам и исправлю...
Последний раз редактировалось AlexCrane 18 апр 2020, 22:17, всего редактировалось 1 раз.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Scrabler
Рядовой
Сообщения: 9
Зарегистрирован: 20 июл 2019, 18:16
Имя: Михаил

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

Сообщение Scrabler »

Хорошо спасибо потестирую

Отправлено спустя 1 час 13 минут 25 секунд:
В общем описываю ситуацию как работает последняя версия... Все собрано на макетке только двайвер, мотор и кнопки - одна на continues, одна на Enstep и одна на StopAccel и висит светодиод на Ready. В Flprog имеем Enstep через Rtrig и триггер заведен Ready на Zeroposition. Имеем в итоге при старте программа реагирует только на сигнал Continues и при его прерывании не останавливается двигатель. Не останавливается он и при последующей подаче сигнала на StopAccel. Через долгое нажатие на Enstep все-таки двигатель останавливается, но шаги выполняет не все... Да сигнал Ready висит все время в 1 с начала вращений, а не появляется как должно быть после отработки перемещения
Sanbi4
Рядовой
Сообщения: 76
Зарегистрирован: 30 окт 2019, 17:58
Имя: Сергей

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

Сообщение Sanbi4 »

Scrabler писал(а): 18 апр 2020, 18:24 Только можно в нее добавить выставление флага Ready01 в 1 при условии нахождения концевика
а зачем? чем вас не устраивает использование сигнала с самого концевика? Ready нужен для того, чтобы говорить о том, что мотор отработал заданное количество шагов.

Zeroposition должен брать сигнал с концевика, а не с Ready. отчет шагов как раз начинается с этой точки. на Ensteps - прикручивайте симметричный генератор длит импульса 1мкс. и на ABS - ставите 1. тогда у вас мотор будет отрабатывать то количество шагов, которое подадите на степс от концевика.

у меня так сделано: через континиус - ищем концевик. доехали до концевика - остановили мотор, задали нулевую точку (zeroposition), далее открутили мотор в рабочее положение, далее работаем по координатам.( по количеству шагов) - в таком случае мы отчитываем количество шагов от нуля. то есть если рабочее от нуля(концевика) 500 шагов, то при шагании нужно учитывать шаги от концевика!!! это правильнее, чем отчитывать от рабочего положения (РП) в 500 шагов от концевика, принимая это за ноль. В моем предложении можно реализовать минимальное и максимальное количество шагов, за которые мотор не шагнет (блок лимита в помощь). допустим, нам надо отъехать на 200 шагов от РП, то нам нужно сделать 300 шагов от нуля, и собственно это значение и подаем на вход шагов. блок сам определит в какую сторону двинуть, так как сейчас 500 шагов, а надо 200 шагов назад от РП, то мотор отмотает 200 шагов назад и блок будет считать,что мотор сделал 300 шагов, и собственно, 300 шагов и надо подавать на вход steps


По мне, это самый правильный блок для шаговиков на step/dir, все, что нужно - он умеет. все остальное приделывается другими блоками и логикой работы! этот блок не должен думать за другую логику, он нужен только для того, чтобы правильно управлять мотором, и не нужно прикручивать лишнее к нему, лишнее, что можно реализовать на других блоках!!!! иначе, можно сломать изначальную задумку!
Scrabler
Рядовой
Сообщения: 9
Зарегистрирован: 20 июл 2019, 18:16
Имя: Михаил

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

Сообщение Scrabler »

Понятно. Спасибо. Буду пробовать
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

AlexCrane писал(а): 06 апр 2020, 17:23 Обновил блоки до версии 1.3 скачать здесь в самом низу
Написано, что некорректно работал вход выбора направления (CCW). Столкнулся с этой проблемой в одном проекте, где есть необходимость с высокой частотой менять направление вращения мотора. И действительно была некорректная работа, пришлось отдельно делать выход с контроллера мимо блока.
Т.е. теперь такое исключено?
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref]ingener[/ref], Что мешает попробовать?
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
noahi1977
Рядовой
Сообщения: 8
Зарегистрирован: 03 май 2020, 19:50
Имя: Эдуард

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

Сообщение noahi1977 »

[ref]AlexCrane[/ref],
Попробовал Ваши блоки.
Спасибо Вам большое за них.
Подскажите пожалуйста. Возможно ли добавить
скорости работы .
Max speed 80000
Ускорение 40000.
У меня сервоприводы моторы с большой редукцией.

Блоки рассматриваю на меге.нано.

Отправлено спустя 50 секунд:
Это мои настройки.Но не хватает немного
XENOMAN
Рядовой
Сообщения: 56
Зарегистрирован: 05 окт 2015, 18:03

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

Сообщение XENOMAN »

[ref]noahi1977[/ref], 80000 шагов в секунду - недостижимая скорость. Даже для DUE 40000 - потолок.
Пруф
Performance
The fastest motor speed that can be reliably supported is about 4000 steps per second at a clock frequency of 16 MHz on Arduino such as Uno etc. Faster processors can support faster stepping speeds. However, any speed less than that down to very slow speeds (much less than one per second) are also supported, provided the run() function is called frequently enough to step the motor whenever required for the speed set. Calling setAcceleration() is expensive, since it requires a square root to be calculated.
Gregor Christandl reports that with an Arduino Due and a simple test program, he measured 43163 steps per second using runSpeed(), and 16214 steps per second using run();
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref]noahi1977[/ref], Попробуйте ESP32, думаю его возможностей хватит
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
noahi1977
Рядовой
Сообщения: 8
Зарегистрирован: 03 май 2020, 19:50
Имя: Эдуард

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

Сообщение noahi1977 »

Не успел написать..
Пишу сейчас.
Скорость снизил до 10000.Пока подгонял настройки с ускорением обратил внимание,что после 10000 реакции на увеличение скорости нет.
Дело в том,что при ручном управлении(continuous)скорость очень приличная.Но в авто режиме она маловата для меня.Я так понимаю,это связано с тем,контроллер не успевает считать?

Ещё не могу понять ,как работает stopAsel.Как не пытался понять ,реакции нет.
Так же обратил внимание.
Если не стоит чисел в скорости и ускорении то обычное перемещение continuous не активируется.
Идет какой то такт на период в 1секунду
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

попробуйте на контроллер установить только один блок ШД и более ничего, может, тогда реальная частота повысится.
Аватара пользователя
Davit07
Сержант
Сообщения: 175
Зарегистрирован: 05 янв 2020, 03:39
Откуда: Краснодар
Имя: Давит
Благодарил (а): 7 раз

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

Сообщение Davit07 »

Доброго времени суток .
До какой скорости можно разогнать ШД с помощью данного блока ?
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

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

Сообщение Ingwar »

Davit07 писал(а): 19 май 2020, 23:10 До какой скорости можно разогнать ШД с помощью данного блока ?
Мало вводных или вопрос не корректен.
Контроллер/делитель/напряжение/драйвер ну и двигатели разные бывают...
Разгонял типовой nema17 ардуиной до 2000+ об/мин в качестве эксперимента (но не этим блоком).
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
Аватара пользователя
Davit07
Сержант
Сообщения: 175
Зарегистрирован: 05 янв 2020, 03:39
Откуда: Краснодар
Имя: Давит
Благодарил (а): 7 раз

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

Сообщение Davit07 »

Ingwar писал(а): 20 май 2020, 00:17
Davit07 писал(а): 19 май 2020, 23:10 До какой скорости можно разогнать ШД с помощью данного блока ?
Мало вводных или вопрос не корректен.
Контроллер/делитель/напряжение/драйвер ну и двигатели разные бывают...
Разгонял типовой nema17 ардуиной до 2000+ об/мин в качестве эксперимента (но не этим блоком).
Каким блоком можно разогнать ?
К примру : Mega , Драйвер DM542, Питание 24в, ШД Nema 23(23hd10002y-20p). Из того что есть в наличии.
Разгонял Mach3 до 2200 об\мин. Но хотелось бы в Flprog создать программу управления ШД.
К примру сделать, что-то такое :
https://www.youtube.com/watch?v=WovIx-DNj90&t=3s

Благодарю за ответ
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость