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

Версия не ниже FLP7.3.4

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

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

#1

Сообщение AlexCrane » 24.03.2021{, 22:49}

Блок для управления ШД на основе библиотек Gyver'а
    ШД ГайверЛиб.png
    ШД ГайверЛиб.png (40.2 КБ) 12184 просмотра
      Используемые библиотеки (в блок не интегрированы, скачивать по ссылкам ниже):
      GyverStepper (https://alexgyver.ru/gyverstepper/)
      GyverTimers (https://alexgyver.ru/gyvertimers/)

      В блоке реализована поддержка всех функций библиотеки gyverstepper!

      Особенности использования данных блоков:Показать
      Первым на холст программирования нужно вытаскивать блок ШД AlexCrane GyverLIB и лишь затем блок ШД Конечный.
      Если вытащили еще один блок ШД AlexCrane GyverLIB, то удалите блок ШД Конечный и вытащите его заново.
      Если удалите самый последний блок ШД AlexCrane GyverLIB то удалите и блок ШД Конечный и начните заново.


      Возможно автор программы Сергей что-то подправил, но сейчас компилируется нормально и без ШД блок конечный... Пока оставил...
      Блоки бета-версия от 17.06.2021: - исправлена ошибка изменения скорости в режиме постоянного вращения на лету

      Обозначения:Показать
      _|¯ - постоянная подача true, отработка по переднему фронту
      _|_ - Подача сигнала через RTrig на один цикл
      Входы:Показать
      _|_ EnableMotor - Подать питание на мотор, через RTrig
      _|_ DisableMotor - Снять питание с мотора, через RTrig
      Endless_Rotation_Speed - Скорость постоянного вращения, шаг/сек
      Endless_Rotation_Smooth - Режим ускорения для бесконечного вращения На данный момент используется вход Acceleration
      _|_ Start_Endless_Rotation - Пуск постоянного вращения, через RTrig
      _|_ Stop - Плавная остановка ШД, через RTrig
      _|_ Brake - Резкая остановка ШД, через RTrig
      _|_ Reset - Резкая остановка и сброс координат в 0, через RTrig
      MaxSpeed - Максимальная скорость шаг/сек, указывать обязательно
      Acceleration - Ускорение в шаг/сек за сек, указывать обязательно
      Steps - Установка шагов
      _|_ Start_Steps - Пуск шагов, через RTrig
      _|¯ Absolute - Режим абсолютных координат true, Режим относительных координат - false
      _|¯ CCW - Направление вращения
      _|_ CurrentPosition - Текущая позиция мотора
      _|_ setCurrentPosition - Установка текущей позиции мотора, через RTrig
      _|¯ AutoPower - Управление питанием
      _|_ getSpeed - Просмотр целевой скорости мотора на выходе curSpeed, через RTrig
      Выходы:Показать
      _|¯ Ready - На выходе высокий уровень, если мотор стоит или остановился
      Position - На выходе текущая позиция в шагах
      curSpeed - На выходе текущая целевая скорость мотора
      Параметры блоки описаны внутри блока.

      Ненужные режимы, входы отключаются.
      Выявленные недостатки библиотеки gyverstepper: пока не проверено…Показать
      1. В режиме бесконечного вращения с включенным режимом SMOOTH (плавный разгон и торможение) если во время плавного ускорения вызвать плавную остановку stop, то мотор резко останавливается и продолжает медленно шагать! Как решение использовать резкую остановку break или reset. Все вопросы к Гайверу (в тестовом примере с его сайта у меня наблюдаются такие-же глюки).
      2. В режиме бесконечного вращения с включенным режимом SMOOTH (плавный разгон и торможение) если во время плавного ускорения вызвать плавную остановку stop и тут же включить опять бесконечное вращение то мотор ускоряется не с нуля а с момента остановки (может стартануть вообще без ускорения)... Решение см. п.1.
      Примеры (внимание в примерах используются и старые и новые блоки…Показать
      Бесконечное вращение -
      ШД G бесконечное вращение.zip
      (90.63 КБ) 169 скачиваний
      Бесконечное вращение с реверсом - Шагаем в режиме относительных координат -
      ШД G шагаем относительно.zip
      (51.17 КБ) 166 скачиваний
      Крутим мотор туда сюда на определенное количество шагов бесконечно viewtopic.php?t=7245&start=40#p103761[/color]
      Протестировал базовые функции. НЕ удалось достичь высоких скоростей на моем ШД (максимум 2500 при питании 50В Nema23)

      ТРЕБУЕТСЯ ТЕСТИРОВАНИЕ ВСЕХ РЕЖИМОВ....
      Можете отблагодарить на кофе, ну или хотя-бы лайкните пост.
      Последний раз редактировалось AlexCrane 01.07.2021{, 23:00}, всего редактировалось 11 раз.
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      Axel
      Рядовой
      Сообщения: 20
      Зарегистрирован: 08.05.2018{, 12:25}
      Репутация: 0

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

      #161

      Сообщение Axel » 24.04.2023{, 01:10}

      Столкнулся с двумя проблемами. Не понятно, особенности блока такие или что-то неправильно делаю.

      1. При смене сигнала на входе CCW направление вращение не меняется до выключения и включения контроллера. Например, на CCW подается 1 и двигатель вращает по часовой стрелке. Меняю на 0, двигатель продолжает вращать по часовой стрелке. Значение направления записывается в EEPROM. Если выключить и включить контроллер, то начинает вращать против часовой стрелки, как и должно быть. В обратном направлении тоже самое. В чем может быть проблема?

      2. Двигатель вращает поворотный стол. Количество шагов ШД для оборота стола на 360 градусов почему то отличается от направления вращения. По часовой стрелке надо меньше шагов (примерно на 200), чем против часовой. Это нормально?

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

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

      #162

      Сообщение AlexCrane » 24.04.2023{, 17:49}

      Axel писал(а):
      24.04.2023{, 01:10}
      1. При смене сигнала на входе CCW направление вращение не меняется до выключения и включения контроллера
      Поставьте последнюю версию v2.6.3 - reverse() в step-dir драйвере теперь применяется сразу
      Axel писал(а):
      24.04.2023{, 01:10}
      Это нормально?
      Это не нормально. Возможно в проекте что-то не так.
      Если не знаю, то не скажу. Если скажу, то сначала проверю...
      Если нет возможности отблагодарить материально, хотя бы оцени пост....

      Аватара пользователя
      Rovki
      Полковник
      Сообщения: 4771
      Зарегистрирован: 22.04.2016{, 17:25}
      Репутация: 264
      Откуда: Чехов
      Имя: Анатолий
      Контактная информация:

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

      #163

      Сообщение Rovki » 27.05.2023{, 16:35}

      Подскажите есть ли где блоки для работы с ШД (3 шт) на базе ESP8266(32)- управление драйвером (step/dir) , спасибо ?
      Электронщик до мозга костей и не только

      Ответить

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