8 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Шаговые двигатели как подключить easy driver

Применение драйвера шагового двигателя EasyDriver в лазерном гравере

  • Цена: $1.42
  • Перейти в магазин

Обзор этого драйвера уже был. И весьма подробный. Повторять его смысла нет. Здесь я хочу рассказать о его более традиционном применении. Кому интересно, могут читать дальше.

Читая обзоры китайских лазерных граверов, например [этот] [или этот ] и им подобные, я увидел, что механизм у них это 100% механизм от DVD приводов. А у меня как раз завалялось без дела несколько старых приводов.

Были выписаны вышеуказанные драйверы и оптический блок для лазерного диода. Который был взят из пишущего DVD. Оптика была куплена [на e-bay] Сразу хочу сказать, покупка неудачная. Этот модуль позволяет настраивать фокус только на большом расстоянии от линзы—более 7 см. Пришлось приклеивать ещё одну линзу, чтобы укоротить фокусное расстояние. Что, естественно, снизило КПД. Надо было заранее связываться с продавцом и уточнять. Но кто ж знал… И пара слов о лазерном диоде. Из пишущего DVD вполне годный, достаточно мощный, чтобы плавить тёмную пластмассу и (при крайне малой скорости) выжигать на темной древесине, но ресурс его, особенно при экспериментах, мал. Потому, если делать серьезную вещь, то надо приобретать лазерный модуль, желательно с управлением TTL. К примеру, [такой]

Пока посылки шли, занялся механикой. Не мудрствуя лукаво, для основания взял корпус того же DVD. На который посадил механизм оси У. Для оси Х приклепал заклепками алюминиевые уголки. Думал усилить их мебельными уголками, но и без них получилось достаточно жестко. Между уголками прикрепил стальную пластину к которой привинтил механизм оси У. Вот что получилось

Сами драйверы установлены в макетную плату. Чтобы не паять на самих двигателях я воспользовался штатными плоскими кабелями, идущими от них, а разъем-маму для них выпаял из платы управления DVD. Для управления драйверами использовался клон Arduino UNO с прошивкой GRBL [Страница проекта]. Как что делать можно понять и оттуда, но есть и русские переводы и многочисленные описания процесса прошивки и настройки GRBL-контроллера. Лазер подключал по схеме
Единственно заменив два входных диода составным транзистором КТ829Б (завалялся у меня ещё с ТЕХ времен). Хотя схема мне эта чем-то не нравится, но лучше я пока не нашел.

И вот что получилось в итоге

К сожалению, показать результат работы лазера не могу—не сохранил, это была чисто «проба пера», а продолжить не мог—лазерный диод приказал нам всем долго жить. И тогда возник вопрос, а что делать? Покупать хороший лазерный модуль? Но для этого станка с рабочим полем 37х37 мм как-то жалко тратить довольно большие деньги. И возникла идея сделать станок побольше, благо на Ali можно купить все комплектующие. А если делать, так добавить ещё одну ось и получить фрезерный станок. В котором можно заменить шпиндель (у меня его роль будет исполнять Dremel) лазерным модулем и получить гравер. Комплектующие уже начали приходить. Но это совсем другая история.
Кот не мой, а Почты России. Помогал мне посылки получать

EQDrive Standard

Доступно для свободного повторения не в коммерческих целях!

Файлы
Описание

Блок управления EQDrive Standart, предназначен для автоматизации работы экваториальной монтировки.
Блок управления может работать практически с любой EQ монтировкой, управляемой шаговыми двигателями (ШД), поддерживает большой диапазон редукции осей, позволяет управлять монтировкой телескопа как автономно пультом, так и через астрономические программы с установленной платформой ASCOM6.х + EQMOD на Вашем персональном компьютере.

  • Электропитание: 12в 3А.
  • Тип ШД: Биполярный.
  • Напряжение питания драйверов ШД: 24в
  • Ток обмотки ШД: Регулируемый 0,1 — 0,8А.
  • Плавный разгон и торможение ШД: Регулируемый 0 — 10сек.
  • Коррекция нелинейности хода ШД: Есть.
  • Коэффициент редукции оси: Не ограничен. Рекомендуемый 1:1 — 1:2000.
  • Корпус изделия: Анод. алюминиевый 100мм х 75мм(90мм) х 35мм (Д х Ш х В)
  • Вес изделия: 230 грамм.

Все настройки EQDrive Standart производятся в программе EQDrive Config и сохраняются в энергонезависимой памяти.
Настройки под выбранную монтировку можно сохранить на PC в созданном для этого файле и в последствии считать и записать в eqdrive.
Всего одним блоком EQDrive вы можете управлять всем своим парком экваториальных монтировок.

Из схемотехнических особенностей в управлении использованы самые современные компоненты: 32-разрядный контроллер с тактовой частотой 72 мГц, четыре канала 12-бит ЦАП, современные драйвера шаговых двигателей, драйвера запитаны 24 вольтами от внутреннего преобразователя напряжения.
Как опция защита от переполюсовки входного напряжения, гальваническая развязка входов USB и Пульта(HC).
Контроллер с 32-битной архитектурой дал нам бонус скорости для отработки совершенно иного алгоритма управления ШД, нет шагов в классическом виде, все без шагово. Шаговый двигатель работает как синхронный мотор. Это дает нам точность перемещения, бесшумность, плавность разгона/торможения монтировки. Разгон/торможение присутствует на любых скоростях будь то изменение от 0..0,5х,
от 1х до 5х или от 1х до 800х.

Читать еще:  Электронный контроллер скорости двигателя квадрокоптера схема
Разъемы передней панели

На передней панели расположено четыре разъема, Power, HC, ACC, USB и индикатор состояния (светодиод).
Разъем Power для подачи постоянного напряжения питания, имеет защиту от переполюсовки (если Вы во время подключения EQDrive
к блоку питания ошибетесь полярностью подключения то нечего не произойдет, прибор не сгорит, EQDrive просто не включится).
Разъем НС (Hand Controller) для подключения пульта управления. Имеет гальваническую развязку от основной схемы блока упр.
Дополнительные функции, может работать как второй COM порт, через который можно управлять монтировкой также как и через порт USB.
На него вы можете к примеру подключить блютус модуль (НС-04, 05, 06) и управлять монтировкой удалено.
Разъем Accessories (ACC) (в данный момент в разработке).
1. Режим Auto Guide. Вход авто гида. Скорость гидирования настраивается отдельно на каждую ось.
2. Режим Пульта. Режим активизируется удержанием 1-3сек кнопки (RA+ & RA-) после включения устройства.
Разъем USB для подключения блока управления к компьютеру. Имеет гальваническую развязку от основной схемы блока упр.

Разъем Power
Разъем питания PC-2.1/5.5
Центральный контакт плюс.
Боковой контакт минус
Защита от переполюсовки: есть.

Разъем Hand Controller (HC)
1. +3,3v (100mA max.)
2. Rx.
3. Tx.
4. Gnd (масса)

Разъем Accessories (ACC).
В режиме Auto Guide
1. nc.
2. Gnd.
3. RA+
4. DEC+
5. DEC-
6. RA-
Скорость гидирования прописывается в флеш память устройства программой EQDriveConfig.

Пульт
1. RA-
2. Gnd.
3. DEC+
4. MODE
5. DEC-
6. RA+

Активация драйверов ЩД кнопки RA+ & RA- (подается напряжение питания на моторы).
Де активация драйвера ШД кнопки DEC+ & DEC- (снятие напряжения питания с моторов).
Звездная скорость кнопки MODE & RA- .
Лунная скорость кнопки MODE & DEC+.
Солнечная скорость кнопки MODE & RA+.
Стоп кнопки MODE & DEC-.
Переключение скорости наведения Low/High кнопка MODE.
1-но кратное нажатие кнопки MODE устанавливает 40 x или 1000 x
2-x кратное — 20x
3-x кратное — 10x
4-x кратное — 5x
5-ти кратное — 2.5x
6-ти кратное — 1.2x
7-ти кратное — 0.6x
8-ти кратное — 0.4x

Разъемы задней панели.

На задней панели расположено два 9-ти контактных разъема, для подключения шаговых двигателей.

Разъемы RA Motor, DEC Motor. (Winding Configurations)
1. Обмотка А1.
2. Обмотка А2.
3. nc.
4. Обмотка В1.
5. Обмотка В2.
6, 7, 8, 9. Масса (Gnd).

Список рекомендуемых моторов

(их аналог смотрим и подбираем самостоятельно).
SY42STH47-1206A (работают на токе 0,75А, коррекция cor1 0,07)
QSH4218-51-10-049 (работают на токе 0,6 — 0,75А)
42STH47-0806MA
42STH47-0406MA

Драйвер шагового двигателя A4988. Подключения к Arduino и пример использования

Обзор драйвера A4988

Шаговые двигатели представляют собой электромеханические устройства, задачей которых является преобразование электрических импульсов в перемещение вала двигателя на определенный угол. Достоинствами шаговых двигателей по сравнению с простыми являются:

  • Высокая точность позиционирования и повторяемости — качественные ШД имеют точность не хуже 2,5 % от величины шага, при этом данная ошибка не накапливается при последующих шагах;
  • Шаговый двигатель может быстро стартовать, останавливаться и выполнять реверс;
  • Четкая взаимосвязь угла поворота ротора от количества входных импульсов (в штатных режимах работы) позволяет выполнять позиционирование без применения обратной связи;
  • Шаговые двигатели обеспечивают получение сверхнизких скоростей вращения вала без использования редуктора;
  • Шаговые двигатели работают в широком диапазоне скоростей, поскольку. скорость напрямую зависит от количества входных импульсов.

Шаговые двигатели применяются там, где требуется высокая точность перемещений. Примеры использования – принтеры, факсы и копировальные машины, станки с ЧПУ, 3D-принтеры. Для управления шаговыми двигателями используют специальные устройства – драйверы шаговых двигателей. Популярный драйвер шагового двигателя А4988 (рис. 1) работает от напряжения 8 — 35 В и может обеспечить ток до 1 А на фазу без радиатора (и до 2 A с радиатором). Модуль A4988 имеет защиту от перегрузки и перегрева. Одним из параметров шаговых двигателей является количество шагов на один оборот 360°. Например, для шаговых двигателей Nema17 это 200 шагов на оборот, т.е 1 шаг равен 1.8°. Драйвер A4988 позволяет увеличить это значение за счёт возможности управления промежуточными шагами и имеет пять режимов микрошага (1(полный), 1/2, 1/4, 1/8 и 1/16).

Технические характеристики A4988

  • напряжения питания: 8-35 В
  • режим микрошага: 1, 1/2, 1/4, 1/8, 1/16
  • напряжение логики: 3-5.5 В
  • защита от перегрева
  • максимальный ток на фазу: — 1 А без радиатора; — 2 А с радиатором
  • размер: 20 х 15 мм
  • без радиатора: 2 г

Назначение контактов драйвера A4988

  • ENABLE – включение/выключение драйвера
  • MS1, MS2, MS3 – контакты для установки микрошага
  • RESET — cброс микросхемы
  • STEP — генерация импульсов для движения двигателей (каждый импульс – шаг), можно регулировать скорость двигателя
  • DIR – установка направление вращения
  • VMOT – питание для двигателя (8 – 35 В)
  • GND – общий
  • 2B, 2A, 1A, 1B – для подключения обмоток двигателя
  • VDD – питание микросхемы (3.5 –5В)
Читать еще:  Что такое капитальный ремонт двигателя ваз 2107

Выводы драйвера A4988

Значение микрошага устанавливается комбинацией сигналов на входах MS1, MS2, и MS3. Есть пять вариантов дробления шага

Комбинация значений для выбора микрошага

MS1MS1MS1Дробление шага
0001
1001/2
0101/4
1101/8
1111/16

Для работы в режиме микрошага необходим слабый ток. На модуле A4988 поддерживает тока можно ограничить находящимся на плате потенциометром. Драйвер очень чувствителен к скачкам напряжения по питанию двигателя, поэтому производитель рекомендует устанавливать электролитический конденсатор большой емкости по питанию VMOT для сглаживания скачков.

Внимание ! — Подключение или отключение шагового двигателя при включённом драйвере может привести выходу двигателя из строя.

Подключение драйвера к Arduino

Схема подключения A4988 к плате Arduino

Схема подключения драйвера A4988 для управления биполярным шаговым двигателем показана на рисунке выше. Вывод RESET подключен к выводу SLEEP, чтобы на нем был высокий уровень HIGH. Загрузим на плату Arduino скетч из примера №1, который управляет движением биполярного шагового двигателя с постоянной скоростью на один оборот в одну сторону, затем в другую, и далее в цикле.

Если после загрузки скетча не происходит движения двигателя, проверьте правильность подключения обмоток к выводам драйвера A4988. К выводам 2B и 2A (1A и 1B) подключаются провода двигателя, которые «прозваниваются» тестером.

Второй пример использования

В качестве еще одного примера использования рассмотрим управление дроблением шага и направлением вращения шагового двигателя с платы Arduino. для этого нам потребуются следующие компоненты:

  • Плата Arduino Uno -1;
  • Драйвер A4988 — 1;
  • Шаговый двигатель NEMA17 — 1;
  • Потенциометр 10 кОм — 1;
  • Кнопка — 1;
  • Переключатель 2-х позиционный — 1;
  • Резистор 10 кОм – 3;
  • Провода MF — 20

Соединение деталей по схеме на рисунке ниже

Схема подключения для управления скоростью и направлением движения

Приступим к написанию скетча. Нажатие на кнопку включает/выключает двигатель, подавая сигнал LOW/HIGH на вход ENABLE драйвера A4988. С помощью переключателя выбираем направление вращения двигателя (сигнал с переключателя подается напрямую на вход DIR драйвера A4988). C помощью потенциометра мы выбираем один из режимов микрошага. Содержимое скетча представлено в примере кода №2. двигателя с постоянной скоростью на один оборот в одну сторону, затем в другую, и далее в цикле.

Как подключить электродвигатель к Arduino

Как известно, электродвигатели бывают трёх основных типов: коллекторные, шаговые и сервоприводы. В данной статье мы рассмотрим подключение коллекторного электродвигателя к Arduino с помощью драйвера двигателей на основе микросхемы L9110S или аналогичной.

Для проекта нам понадобятся:

  • коллекторный электродвигатель постоянного тока или аналогичный;
  • драйвер двигателя L9110S, или шилд на микросхеме L293D или аналогичный;
  • шаговый двигатель 28BYJ-48 с драйвером ULN2003 или аналогичный;
  • Arduino UNO или иная совместимая плата;
  • соединительные провода (например, вот такой набор);
  • макетная плата;
  • персональный компьютер со средой разработки Arduino IDE.

1 Что такое драйвер двигателей и для чего он нужен

Максимальный ток на выводах Arduino слаб (около 50 мА) для такой мощной нагрузки как электромотор (десятки и сотни миллиампер). Поэтому напрямую к выводам Arduino подключать электродвигатель нельзя: есть риск сжечь вывод, к которому подключён двигатель. Для безопасного подключения электродвигателей разных типов к Arduino необходим самодельный или промышленно изготовленный т.н. драйвер двигателей. Драйверы двигателей бывают разные, для их работы часто используются микросхемы типа HG788, L9110S, L293D, L298N и другие. Драйверы двигателей имеют выводы подачи питания, выводы для подключения электродвигателей, а также управляющие выводы.

Различные варианты исполнения драйверов двигателей

В данной статье мы будем использовать драйвер для управления двигателями, сделанный на основе микросхемы L9110S. Обычно выпускаются платы, которые поддерживают подключение нескольких двигателей. Но для демонстрации мы обойдёмся одним.

2 Схема подключения коллекторного двигателяи драйвера двигателей к Arduino

Самые простые электродвигатели – коллекторные двигатели. У таких моторов всего два управляющих контакта. В зависимости от полярности приложенного к ним напряжения меняется направление вращения вала двигателя, а величина приложенного напряжения изменяет скорость вращения.

Давайте подключим двигатель по приложенной схеме. Питание драйвера двигателя – 5 В от Arduino, для управления скоростью вращения ротора мотора управляющие контакты подключаем к выводам Ардуино, поддерживающим ШИМ (широтно-импульсную модуляцию).

Схема подключения коллекторного двигателя к Arduino с помощью драйвера двигателей

Должно получиться что-то подобное:

Двигатель подключён к драйверу двигателей и Arduino

3 Скетч для управления коллекторным двигателем

Напишем скетч для управления коллекторным двигателем. Объявим две константы для ножек, управляющих двигателем, и одну переменную для хранения значения скорости. Будем передавать в последовательный порт значения переменной Speed и менять таким образом скорость (значением переменной) и направление вращения двигателя (знаком числа).

Читать еще:  Газель 405 инжекторный двигатель не заводится

Загрузим скетч в память Arduino. Запустим его. Вал двигателя не вращается. Чтобы задать скорость вращения, нужно передать в последовательный порт значение от 0 до 255. Направление вращения определяется знаком числа.

Подключимся с помощью любой терминалки к порту, передадим число «100» – двигатель начнёт вращаться со средней скоростью. Если подадим «минус 100», то он начнёт вращаться с той же скоростью в противоположном направлении.

Управление электромотором с помощью драйвера двигателей и Arduino

А вот так выглядит подключение подключение коллекторного двигателя к Arduino в динамике:

4 Управление шаговым двигателем с помощью Arduino

Шаговый двигатель позволяет вращать ротор на определённый угол. Это бывает полезно, когда необходимо задать положение какому-либо механизму или его узлу. Шагом двигателя называется минимальный угол, на который можно повернуть ротор двигателя. Угол поворота и направление движения задаются в управляющей программе. Существует большое разнообазие шаговых двигателей. Рассмотрим работу с ними на примере двигателя 28BYJ-48 с драйвером ULN2003.

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

Характеристики двигателя 28BYJ-48:

ХарактеристикаЗначение
Количество фаз4
Напряжение питанияот 5 до 12 В
Число шагов64
Размер шага5,625°
Скорость вращения15 об./сек
Крутящий момент450 г/см

Модуль с микросхемой драйвера для управления шаговым двигателем выглядит так:

Модуль с драйвером ULN2003

На входы IN1…IN4 подаются управляющие сигналы от Arduino. Используем любые 4 цифровых пина, например, D8…D11. На вход питания необходимо подать постоянное напряжение от 5 до 12 В. Двигателю желательно обеспечить отдельное питание. Но в данном случае, т.к. не планируется использовать двигатель на постоянной основе, можно подать питание и от Arduino. Перемычка «Вкл/выкл» просто разрывает «плюс» питания, подаваемого на драйвер. В «боевом» изделии сюда можно, например, коммутировать питание с помощью реле, когда это необходимо, чтобы снизить потребление всего изделия. Итак, схема подключения будет такой:

Схема подключения шагового двигателя с драйвером ULN2003 к Arduino

Соберём всё по схеме.

Подключение шагового двигателя 28BYJ-48 к Arduino

Для Arduino «из коробки» существует готовая библиотека для управления шаговыми двигателями. Она называется Stepper. Можно посмотреть готовые примеры в среде разработки для Arduino: File Examples Stepper. Они позволяют управлять шаговым двигателем, изменяя скорость и направление движения, поворачивать ротор на заданный угол. Как говорится – бери и пользуйся. Но давайте попробуем разобраться с принципом работы шагового двигателя самостоятельно, не применяя никаких библиотек.

Двигатель 28BYJ-48 имеет 4 фазы. Это означает, что у него имеются 4 электромагнитные катушки, которые под действием электрического тока притягивают сердечник. Если напряжение подавать на катушки поочерёдно, это заставит сердечник вращаться. Рисунок иллюстрирует данный принцип.

Схема работы шагового двигателя

Здесь на (1) напряжение подано на катушки A и D, на (2) – на A и B, (3) – B и С, (4) – C и D. Далее цикл повторяется. И таким образом ротор двигателя вращается по кругу.

Напишем самый простой скетч для уравления шаговым двигателем. В нём просто будем вращать двигатель с постоянной скоростью в одном направлении, используя только что описанный принцип.

Простейший скетч управления шаговым двигателем (разворачивается)

Как можно догадаться, задержка del определяет скорость вращения двигателя. Уменьшая или увеличивая её можно ускорять или замедлять двигатель.

Если загрузить этот скетч, то увидим, что шаговый двигатель вращается против часовой стрелки. Соответственно, можно вынести цикл вращения в одну сторону в отдельную функцию rotateCounterClockwise(). И сделать аналогичную функцию вращения в противоположную сторону rotateClockwise(), в которой фазы будут следовать в обратном порядке. Также вынесем в отдельные функции каждую из 4-х фаз чтобы избежать дублирования одинакового кода в нескольких местах программы. Теперь скетч выглядит несколько интереснее:

Скетч управления шаговым двигателем (разворачивается)

Если мы загрузим скетч и проверим, поворачивается ли ротор двигателя на целый оборот, если один раз вызвать функцию rotateClockwise(), то обнаружим, что нет. Для совершения полного оборота функцию необходимо вызвать несколько раз. Соответственно, хорошо бы добавить в качестве аргумента функции число, которое будет показывать количество раз, которые она должна выполняться.

Финальный скетч управления шаговым двигателем (разворачивается)

Вот теперь совсем другое дело! Мы можем управлять скоростью шагового двигателя, задавая задержку после каждой фазы. Мы можем менять направление движения ротора двигателя. И, наконец, мы умеем поворачивать ротор на некоторый угол. Осталось только определить, какое число необходимо передавать в функции поворота rotateClockwise() и rotateCounterClockwise(), чтобы ротор шагового двигателя 1 раз провернулся на 360° вокруг своей оси. Собственно, дальнейшие наработки – вопрос фантазии или необходимости.

0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию