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

Аналогично библиотеке stepper, не тормозит программу

Пользовательские блоки для управления шаговыми двигателями и сервоприводами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
RedSky
Лейтенант
Сообщения: 574
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 72
Откуда: Днепропетровск
Имя: Алексей

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

#1

Сообщение RedSky » 09.09.2018{, 13:46}

Блок управления шаговым двигателем по 4-м проводам (драйвер L298N и аналогичные). Не останавливает выполнение программы. Используется прерывание по таймеру1, поэтому не будет корректно работать ШИМ на выводах 9 и 10. Есть возможность работы в двух режимах: шаговый и полушаговый. Есть возможность удержания ротора при отсутствии движения (тормоз).
Работает таким образом: на входе steps задаётся количество шагов на которое необходимо выполнить вращение, на входе interval задаётся время в мс, через которое выполняются шаги. Для начала вращения на вход start подать короткий импульс (через Rtrigger) - будет произведено вращение на заданное количество шагов. Для постоянного вращения на вход start подавать единицу непрерывно. Для досрочной остановки на вход stop подать короткий импульс (через Rtrigger) - двигатель будет остановлен, счётчик шагов сброшен. После отработки заданного числа шагов на выходе end будет единица.
Параметры пользователя:
In1, 2, 3, 4 - номера пинов для соответствующих входов драйвера.
brake - удержание (тормоз) вкл/выкл.
mode - режим работы: 0 - шаговый; 1 - полушаговый.
Входы:
start - начать вращение (через Rtrigger).
stop - остановить вращение (через Rtrigger).
steps - задание на количество шагов.
interval - интервал между шагами, мс.
Выходы:
down - остаток шагов.
up - пройдено шагов.
end - вращение завершено (шаги закончились).
Библиотеки включены в блок, также есть отдельно в архиве.
Вложения
StepMotor.zip
(31.05 КБ) 466 скачиваний
Последний раз редактировалось RedSky 08.06.2023{, 15:35}, всего редактировалось 1 раз.

vfv
Сержант
Сообщения: 283
Зарегистрирован: 22.03.2018{, 12:35}
Репутация: 0
Откуда: Самара
Имя: Валерий

Шаговый двигатель на простом драйвере

#21

Сообщение vfv » 07.03.2020{, 19:25}

Интересно что внутри этого блока пользователя.
Последний раз редактировалось vfv 24.11.2020{, 21:06}, всего редактировалось 1 раз.

vfv
Сержант
Сообщения: 283
Зарегистрирован: 22.03.2018{, 12:35}
Репутация: 0
Откуда: Самара
Имя: Валерий

Шаговый двигатель на простом драйвере

#22

Сообщение vfv » 24.11.2020{, 17:53}

На основе блока пользователя,выложенного RedSky в этой теме - *Шаговый двигатель на простом драйвере*,сделал проект - шаговый двигатель

для работы туда сюда с автоматической коррекцией пропущенных шагов в случае кратковременных превышающих нагрузок, сбивающих шаги -

для возврата в заданную рание область перемещения и с возможностью разной установки количества шагов от центра до левой точки и от

центра до правой.

Укладка используется не виток к витку, а в навал.

При нажатии кнопки Пуск движение каретки начинается всегда слева и заканчивается всегда слева.

Алгоритм работы такой:
При нажатии кнопки Пуск движение каретки начинается всегда с левой точки с любым заданным взарание количеством шагов, лишь бы

привышающим все установи сейчас и в дальнейшем, у меня 600 и -600. При прохождении средней точки выдаётся сигнал на остановку

двигателя и сброс шагов и сразу же устанавливаются шаги согласно положительной уставке до правой, у меня 150.При достижении правой

начинается движение в обратную сторону на отрицательную уставку к центру, у меня -100 и т. д.

Всё работает.Однако есть небольщой недостаток - на средней точке подаётся сигнал на остановку и смену уставки.Происходит не большой

толчок.
Как можно убрать этот сигнал на остановку, а оставить только на смену установки,тем более движение продолжается в ту же сторону.

Может кто сможет, что нибудь подправить, упростить.

Может у кого есть раскрыв этого блока пользователя, чтобы там подправить.

Не могу найти,кто создал этот блок пользователя.

LProg - 6.3.1
Шаговый - униполярный.
Arduino Uno
Униполярный шаговый двигатель соединён с червячным редуктором.
Мой проект:

Ответить

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