Управляем шаговым двигателем с помощью Arduino и контроллера Easy Driver
Управляем шаговым двигателем с помощью Arduino и контроллера Easy Driver
Существует куча двигателей. И порой возникает вопрос, какой именно выбрать для вашего проекта на Arduino.
В этой статье мы детально обсудим один из типов двигателей — шаговый двигатель. Разберемся, в каких случаях уместно его использование. Рассмотрим пример подключения с использованием драйвера Easy Driver.
Управление в разных режимах без библиотек
Существует несколько режимов управления биполярным шаговым двигателем при помощи Motor Shield:
Разницу между ними можно понять, протестировав на Motor Shield следующий скетч:
Скорость вращения шагового двигателя очень сильно влияет на развиваемый двигателем момент. Чтобы в этом убедиться, запустите этот скетч с разными значениями delayTime . Обратите внимание, что двигатель в однофазном полношаговом режиме позволяет развить гораздо меньший момент, чем в двухфазном полношаговом режиме.
Управление через готовую библиотеку
Легко управлять шаговым двигателем в своём проекте вам поможет библиотека StepperAmperka. С помощью неё можно управлять биполярным шаговым двигателем в однофазном, в двухфазном или полушаговом режиме.
Пример работы в двуфазном режиме
Пример работы в различных режимах
Управление положением
Переместиться в абсолютно указанное положение. Само движение запускается функцией run().
Переместиться в относительно указанное положение. Само движение запускается функцией run(). Значение distance может быть больше или меньше нуля.
Вернуть текущее абсолютное положение.
Вернуть расстояние до указанного положения. Может использоваться для проверки, достиг ли двигатель указанной конечной точки.
Начать движение. Для продолжения движения двигателя следует вызывать функцию повторно.
Начать движение и подождать когда двигатель достигнет указанной точки. Функция не осуществляет возврата пока двигатель не остановится.
Необходимые компоненты
- Плата Arduino Nano (купить на AliExpress).
- N20 Encode Motor (двигатель N20 с энкодером) (купить на AliExpress).
- Регуляторы напряжения BD139 (2 шт.) и BD140 (2 шт.) (купить на AliExpress).
- Транзистор BC548 – 2 шт. (купить на AliExpress).
- Резистор 4,7 кОм – 2 шт. (купить на AliExpress).
- Резистор 100 Ом – 2 шт. (купить на AliExpress).
- Макетная плата.
- Соединительные провода.
- Источник питания.
Внешний вид необходимых для проекта компонентов показан на следующем рисунке.
Обзор основных моделей шаговых двигателей для ардуино
Nema 17 – биполярный шаговый двигатель, который чаще всего используется в 3D принтерах и ЧПУ станках. Серия 170хHSхххА мотора является универсальной.
Основные характеристики двигателя:
- Угловой шаг 1,8°, то есть на 1 оборот приходится 200 шагов;
- Двигатель – двухфазный;
- Рабочие температуры от -20С до 85С;
- Номинальный ток 1,7А;
- Момент удержания 2,8 кг х см;
- Оснащен фланцем 42 мм для легкого и качественного монтажа;
- Высокий крутящий момент – 5,5 кг х см.
28BYJ-48 – униполярный шаговый двигатель. Используется в небольших проектах роботов, сервоприводных устройствах, радиоуправляемых приборах.
- Номинальное питание – 5В;
- 4-х фазный двигатель, 5 проводов;
- Число шагов: 64;
- Угол шага 5,625°;
- Скорость вращения: 15 оборотов в секунду
- Крутящий момент 450 г/сантиметр;
- Сопротивление постоянного тока 50Ω ± 7% (25 ℃).
Драйвер для управления шаговым двигателем ULN2003
Драйвер – это устройство, которое связывает контроллер и шаговый двигатель. Он нужен так как цифровой вывод микроконтроллера Arduino UNO может выдать ток максимум
40 мА, а одна обмотка шагового двигателя 28BYJ-48 в пике потребляет
320 мА, следовательно если подключить двигатель напрямую, микроконтроллер сгорит.
Для защиты микроконтроллера был разработан "Модуль шагового двигателя ULN2003", в котором используется микросхема ULN2003A (по сути, состоящая из 7 ключей), позволяющая управлять нагрузкой до 500 мА (один ключ). Данный модуль может работать с 5В и 12В двигателем 28BYJ-48, для переключения необходимо установить или убрать перемычку (по умолчанию перемычка установлена, питание 5В).
roboforum.ru
Re: Arduino pro mini для управления шаговым двигателем
Revenger » 29 июл 2015, 17:41
Оптопара похожа, только цвет одного белый второго черный.
Замерил обороты на редукторе — 41-45 примерно, а на экструдере после цепи уже выходит /5, т.е. примерно 9 в мин. Это всё на максимуме регулятора.
Re: Arduino pro mini для управления шаговым двигателем
loox » 29 июл 2015, 20:40
Re: Arduino pro mini для управления шаговым двигателем
Revenger » 29 июл 2015, 21:41
У ШИМ-контроллера нет входов. Только переменник из него на проводках свисает.
Вот этот:
Фотку пришлось удалить, т.к. огромного размера. Вот ссылка http://www.ebay.com/itm/131399352824
Добавлено спустя 2 минуты 37 секунд:
Для меня и ардуино мини как космический аппарат, и приобреталось то в общем для запуска и регулировки одного ШД (тема то создавалась именно для этого), а потом. пришёл аппетит ))
К ардуине конечно надо будет делать печатку, не оставлять же на макетке её. Или проводками паяться.
Добавлено спустя 1 минуту 48 секунд:
Может отказаться от интерфейса с энкодером все же и использовать контроль диаметра на выходе экструдера, цифровым микрометром? Не проще будет связать всё в кучу?
Re: Arduino pro mini для управления шаговым двигателем
loox » 30 июл 2015, 00:31
Re: Arduino pro mini для управления шаговым двигателем
Revenger » 30 июл 2015, 01:15
Может я не понятно писАл ранее, но в нескольких постах я пытался пояснить, что обороты протяжки должны изменяться (как мне видится) мгновенно, если меняются обороты двигателя экструдера.
Поясню еще раз почему я так думаю и мне бы хотелось такое сделать: упало напряжение или попала гранула между шнеком и гильзой, на мгновение упали обороты экструдера, а протяжка, имея отдельное питание и вращение через контроллер и ардуино (да еще не испытывая особых нагрузок) тянет с той же скоростью, отсюда диаметр уменьшится, затем обороты экструдера восстановились, и пруток пошёл снова нормального (ранее выставленного путём регулировки ШД протяжки) диаметра.
п.с. Диаметр готового пруткА пластика достигается скоростью протяжки, т.е. вытягивания еще жидкого пластика до нужного диаметра. Он не выходит из экструдера уже готового диаметра.
На счет таблиц и формул я ничего не могу сказать. Я не мастер формул (
Re: Arduino pro mini для управления шаговым двигателем
RootAdmin » 30 июл 2015, 10:29
Re: Arduino pro mini для управления шаговым двигателем
Revenger » 30 июл 2015, 12:43
Re: Arduino pro mini для управления шаговым двигателем
RootAdmin » 30 июл 2015, 13:47
Re: Arduino pro mini для управления шаговым двигателем
Revenger » 30 июл 2015, 14:10
Думаю легко. Отпечатать стоечку (дотянуться до середины шестерни) и закрепить на нужном расстоянии. Вибрации там почти нет.
Добавлено спустя 4 минуты 38 секунд:
Сегодня залезу в принтер, выкорчую оттуда датчик (есть мышка шариковая, если что) и посмотрю, влазиет ли шестерня в проём датчика.
Re: Arduino pro mini для управления шаговым двигателем
RootAdmin » 31 июл 2015, 12:59
Мышка — не лучший выбор, там ОЧЕНЬ маленькая щелевая оптопара, боится засветки. Знакомые в сервисах по оргтехнике есть? В любом лазерном принтере есть куча оптопар (2-3 точно) на тракте протяжки бумаги. Если печатать стойку — то надо предусмотреть чтоб засветки оптопары не было. Можно вообще — взять пару светодиод-фотодиод и вставить в отверстия.
Схемку нарисую, со светодиодом индикации.
Добавлено спустя 4 минуты 10 секунд:
То есть готовую оптопару — если не влезает — можно и разрезать. Главное — защитить от засветки, а то было у меня — тележка при пересечении теней от жалюзи начинала "танец".
Re: Arduino pro mini для управления шаговым двигателем
Revenger » 31 июл 2015, 13:01
А со струйника с протяжки бумаги не пойдёт? Знакомы так, чтобы раздербанили что то лазерное, нет сейчас. ((
Добавлено спустя 2 минуты 28 секунд:
Я понял. Постараюсь закрыть. Это уже вопрос второстепенный )) Было бы что закрывать.
Re: Arduino pro mini для управления шаговым двигателем
RootAdmin » 31 июл 2015, 13:35
Re: Arduino pro mini для управления шаговым двигателем
Revenger » 31 июл 2015, 13:43
Хотел спросить, как у специалиста.. а заморочки с оптопарой не больше проблем, чем приделать цифровой штангель? Заграничники, смотрю, лепят и на принтер и на экструдер. В нём же есть датапорт, судя по картинкам дам всего пара деталек для интерфейса к ардуине.
Здесь картики схемы нашёл _ttps://sites.google.com/site/marthalprojects/home/arduino/arduino-reads-digital-caliper
Получится регулировка оборотов шаговика протяжки на основании требуемого диаметра. Скорость вращения экструдера вообще будет не у дел.
Re: Arduino pro mini для управления шаговым двигателем
RootAdmin » 31 июл 2015, 14:24
Лишним энкодер не будет — скорость видеть.
Ну и запуск.остановка с одной кнопки.
Отработка аварийных ситуаций.
Какой будем микрометр брать? Ссылку, себе тоже закажу, с такими не работал и отлаживать буду на реальном, так проще.
Добавлено спустя 53 секунды:
И да, на него будем ставить какой-либо ролик типа подшипника (два?), чтоб по прутку катился?