Страница 11 из 16

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

Добавлено: 04.12.2019{, 22:24}
AlexCrane
Бок управления шаговым двигателем на библиотеке AccelStepper

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

Работает на библиотеке 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 КБ) 746 скачиваний
- здесь блоки старые оставил просто как пример (новые внизу)
------------------------------------------------
ТЕСТ ШД v6.flp
(225.63 КБ) 684 скачивания
- здесь блоки старые оставил просто как пример (новые внизу)
------------------------------------------------
Обновил 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 КБ) 1082 скачивания

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

Добавлено: 24.01.2021{, 09:45}
Vadimbol
Добрый день. Спасибо за блок. Не могли бы Вы подсказать в чем может быть проблема - при использовании 6 шаговых моторов происходит полный ужас, моторы начинают прыгать и пропускать шаги. Но если использовать 3 ШД то все плавно и без пропусков. Плата MEGA питание 24 вольта, 10 ампер. Межет быть проблема с библиотекой TIMERONE ? с прерыванием? Или только на каких-то определенных выводах нужно работать ? Я подключил на следующие STEP - 44,45,46,6,7,8 и DIR- 26,27,28,29,30,31.

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

Добавлено: 12.02.2021{, 01:25}
Wadim77
Ребята, доброго времени суток. Помогите пожалуйста! Не могу сообразить ((( Нужна блок-схема основанная на данной теме (Шаговый двигатель на AccelStepper). суть очень простая - при запуске шаговик крутит назад (лево) пока не упрется в концевой датчик. ЗАмыкается контакт концевика и Устанавливается как нулевая позиция. Затем количество оборотов от нулевой точки меняться относительно значений со входа с потенциометра. Большое спасибо! Буду примного признателек если выложите здесь такой блок-программу. МИР.

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

Добавлено: 12.02.2021{, 17:09}
AlexCrane
Wadim77, Это частный случай примера из 1 топика
Тест ШД 06 test.flp
(420.76 КБ) 77 скачиваний

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

Добавлено: 21.02.2021{, 22:07}
AndrewPan
Здравствуйте.
Прошу извинить - вроде как вопрос уже звучал, однако я так и не понял как работает (работает ли вообще параметр ускорения)
Пытался ставить различные значения, но результата не увидел.

Пришлось делать костыль в виде постепенного увеличения скорости до заданного в меню значения (картинка во вложении)
flprog.jpg

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

Добавлено: 22.02.2021{, 08:13}
AlexCrane
AndrewPan, Вход SpeedContinuous не использует ускорения, ускорение используется только через вход Steps

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

Добавлено: 24.02.2021{, 14:24}
AndrewPan
AlexCrane писал(а):
22.02.2021{, 08:13}
ускорение используется только через вход Steps
Спасибо за ответ.
В соответствии с этим возник еще вопрос - можно ли остановить без ускорения (учитывая, что стартует с ускорением) ?

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

Добавлено: 24.02.2021{, 19:22}
AlexCrane
AndrewPan, На входе Acceleration значение можно менять на ходу, т.е. стартовать с одним ускорением, а останавливаться с другим (вплоть до нулевого). Ну или наоборот...

А вообще задача какая стоит?

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

Добавлено: 24.02.2021{, 20:21}
AndrewPan
AlexCrane писал(а):
24.02.2021{, 19:22}
А вообще задача какая стоит?
из того что есть сделать управление шаговиком, к сожалению мощи стартануть сразу на нужной скорости не хватает, а если останавливаться с замедлением то получаются рывки ((
Пробовал менять на ходу значение ускорения - вроде бы и меняется на 0 (вывел значение на экран) при выключении, но программа этого не учитывает (подцепил вторую ардуинку в качестве счетчика импульсов и вижу что при выключении идет плавное затухание от значения ускорителя что было при включении мотора)

Конечно можно отключать сам драйвер напрямую, но хотелось бы понять в чем допускаю ошибку при компиляции схемы в FLProg
SoftForMoscow4-test.flp
(1.32 МБ) 49 скачиваний
flprog2.jpg

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

Добавлено: 13.03.2021{, 10:23}
nehilo
Помогите пожалуйста решить проблему с работой шаговика на esp8266. Вращение прерывисто как бы импульсами. Пробовал ставить скорость постоянной переменной так же без изменений(

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

Добавлено: 13.03.2021{, 16:58}
AlexCrane
nehilo, Этот блок не использует прерывания, и esp8266 чем то сильно занят что прерывает работу шаговика.
Я бы не рекомендовал использовать ШД на esp8266.

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

Добавлено: 17.03.2021{, 17:44}
Ardudue
AlexCrane, почему блок делали на AccelStepper , а не на библиотеке GyverStepper ?

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

Добавлено: 17.03.2021{, 20:09}
AlexCrane
Ardudue, Не знал такую библиотеку при написании этих блоков. Есть потребность на библиотеке Гайвера?

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

Добавлено: 18.03.2021{, 15:01}
Ardudue
AlexCrane писал(а):
17.03.2021{, 20:09}
Не знал такую библиотеку при написании этих блоков. Есть потребность на библиотеке Гайвера?
Да я тут инфракрасную паяльную станцию делаю и в качестве привода хочу использовать шаговый от DVD Sony , есть драйвер A4988 вот, и штудирую почву.
Ну и как всегда заглянул к Гайверу.
Гайвер то всегда говорит, что его самое лучшее ))).
Подумал, может, Вы сравнивали в работе разные библиотеки перед созданием блока.
Ну ,и вдруг уже делали блок с бибилиотекой Гайвера.

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

Добавлено: 18.03.2021{, 15:59}
ingener
Когда-то вопрос поднимался
viewtopic.php?f=63&t=6802
как отдельный код только для шаговика эта библиотека работает быстрее - частоты в десятки кГц - можно организовать деление шагов с очень плавным движением.
Но в проекте недопустимо наличие дисплея и прочих тяжелых блоков - скорость сразу на порядки падает.
Блоки же на AccelStep работают в любых громоздких проектах.
Приходится ограничиваться частотой 3800Гц - немного грубее работает мотор.

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

Добавлено: 19.03.2021{, 17:08}
EgorKa
ingener писал(а):
18.03.2021{, 15:59}
Но в проекте недопустимо наличие дисплея и прочих тяжелых блоков - скорость сразу на порядки падает.
Gayver пишет что у него там на аппаратных таймерах все организовано.
По сути все что крутится в loop не должно влиять на работу аппаратного таймера.
Что Вы смотрите на дисплее? Подключение дисплея по i2C?

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

Добавлено: 19.03.2021{, 17:36}
AlexCrane
EgorKa, В этом блоке тоже на первом таймере все крутится....

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

Добавлено: 19.03.2021{, 17:46}
EgorKa
AlexCrane писал(а):
19.03.2021{, 17:36}
В этом блоке тоже на первом таймере все крутится....
да, я знаю. Я у ingener, хотел выяснить как отчего тормозит библиотека Гайвера.
По описанию Гайвера вроде его библиотека так же как и библиотека в Вашем блоке не должна тормозить.

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

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

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

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

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

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