Sw-motors.ru

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

Управление шаговым двигателем с ардуины Комментировать

Управление шаговым двигателем с ардуины Комментировать

Устройство для управления роботизированными системами и автоматикой – Arduino – имеет интерфейсы ввода-вывода, а также встроенную программируемую плату. В зависимости от модели Ардуино имеет различное количество устройств ввода-вывода, набор периферии платформы также может отливаться.

Чем больше устройств внешней периферии установлено в составе Ардуины, тем большим функционалом он обладает: USB, Ethernet, GSM, card-reader и другие. Дополнительный аналоговый джойстик позволяет управлять системой более точно. Дополнительная плавность движений организуется при помощи регулировки движения по трем осям.

Аппаратно вычислительная платформа Arduino

Программирование модуля производится на языке С++, что дает возможность использовать программирование шагового двигателя с ардуины как профессионалам, так и любителям.

NEMA 08 FL20STH30-0604 A Шаговый двигатель

NEMA 11 FL28STH32-0956 A Шаговый двигатель

NEMA 14 FL35ST26-0284 A Шаговый двигатель

NEMA 16 FL39ST20-0506 A Шаговый двигатель

Модуль управления Motor Shield

Отдельный модуль Motor Shield используется в составе Ардуино для управления шаговым двигателем. В зависимости от модели он поддерживает различные типы силовых установок:

  • Постоянного тока
  • Шаговые двигатели (биполярные и униполярные)
  • Сервоприводы

При помощи этого устройства может быть подключено одновременно несколько силовых установок в различных комбинациях. Разные модели Motor Shield используют различные комбинации. Имейте ввиду, что для соединения Arduino и модуля потребуется отдельный переходник, поскольку штатные разъемы не обеспечивают абсолютной совместимости плат.

Микросхема (например L293D) является драйвером. Для управления силовой установки используется одновременно две микросхемы. Защита по напряжению организована посредствам обратных диодов.

Схема имеет силовую и слаботочную цепи питания. Силовая цепь может быть запитана от внешнего источника (6…24В) или от управляющей платы. Для слаботочной цепи предусматривается питание от стабилизированного источника 5В. Подключение внешнего питания осуществляется при установленном джемпере, в обратном случае может возникнуть замыкание.

Увеличить максимальное пороговое напряжение модуля управления с 25 до 36В возможно при помощи использования в составе микросхемы отдельных конденсаторов.

Программное обеспечение для Arduino

Платформа Ардуино уже имеет штатную библиотеку софта, которая находится в библиотеке Hardware. Тем не менее для работы с Motor Shield существуют дополнительные библиотеки, которые в значительно мере упрощают работу, а также предусматривают поддержку дополнительных режимов работы.

Управление шаговым двигателем постоянного тока с ардуины

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

Выводы агрегата подключаются к Motor Shield и электрической цепи модуля GND. Количество шагов на оборот и номер канала задается командой Stepper. В зависимости от использования первых двух или третьего и четвертого канала при программировании используется команда 1 и 2 соответственно.

Скорость вращения ротора задается командой SetSpeed в оборотах в минуту. Используйте частоту вращения, рекомендованную для использующейся вами модели шагового двигателя. В случае программирования показания выше рекомендованного система самостоятельно снизит обороты до максимально возможных.

Индивидуальная настройка движения ротора программируется командой Step и предусматривает следующий функционал:

  • Задание часа шагов
  • Движение вперед и назад
  • Типы шагов: при помощи одной обмотки, с помощью двух обмоток, чередование режима 1 и 2, микрошаг

Отключение силовой установки осуществляется через команду release.

Подключение шагового двигателя к «Ардуино»

При работе с Arduino многие радиолюбители пользуются шаговыми двигателями. Но что же это такое? Как его подключать? А как работать с ним? И вообще, где они используются? Ответы на все эти вопросы будут представлены в этой статье.

О шаговых двигателях

Можно сказать, что шаговые двигатели являются основой точной робототехники. Они применяются везде благодаря их точности. Дело в том, что шаговые двигатели при повороте вала используют маленькие шаги, это позволяет им быть сверхточными при работе. Именно благодаря «шагам» их и стали называть шаговыми двигателями. Взять, например, принтер. Там тоже используется шаговый двигатель. Или какой-нибудь манипулятор, где точность очень важна, ведь если даже робот сделает ошибку на половину градуса — уже все пойдет не так. Аналогом шаговых двигателей можно считать сервоприводы, так как при их программировании также указывается градус поворота, однако серво уступают шаговым двигателям в точности. Но есть множество ситуаций, где использование сервоприводов целесообразнее, нежели использование «шаговиков».

Читать еще:  Двигатель 11193 8 клапанов характеристики

Шаговый двигатель 28BYJ-48

Среди множества выбора шаговых двигателей следует обратить внимание именно на шаговый двигатель модели 28BYJ-48. Стоит она достаточно дешево, всего лишь 100-150 рублей за штуку. Как выглядит шаговый двигатель для «Ардуино», можно увидеть на фото ниже.

Многие радиолюбители отдают предпочтение именно этой модели из-за низкой цены и хорошей точности. Тип мотора — униполярный, число фаз — 4. Потребляет шаговый двигатель для «Ардуино» от 5 до 12V. Однако рекомендуется использовать 6-7V. Двигатели могут работать в двух режимах: полношаговый и полушаговый. Рекомендуется для использования в полушаговом режиме. Это 5.625 градуса на шаг. При полношаговом на шаг дается 11.25 градуса. Вес двигателя — 30 грамм.

Драйвер ULN2003

Для подключения шагового двигателя к «Ардуино» используется специальный драйвер. Одним из таких является ULN2003. Связано это с тем, что при работе шагового двигателя достаточно мощная сила тока, которую контакты Arduino просто не могут выдержать. Для этого и используется драйвер. Сам двигатель подключается к драйверу, перепутать все почти невозможно, так как есть ключ, который показывает, как именно надо подключить. Ну, и далее уже сам драйвер подключается к Arduino для дальнейшей работы. Зачастую в магазинах драйвер уже идет в комплекте с шаговым двигателем. Однако есть случаи, когда двигатели продаются без драйвера, на это надо обращать внимание. Если покупать на Aliexpress, то лучше работать только с проверенными продавцами, у которых много отзывов.

Подключение

Как уже говорилось выше, для работы шагового двигателя с «Ардуино» используется драйвер. Для питания двигателя следует использовать иной источник, чтобы не перегружать плату Arduino. А остальные выводы, начиная с IN1 до IN4, подключаем к любым цифровым контактам на «Ардуино». Как можно заметить, подключение шагового двигателя к «Ардуино» достаточно простое. На фотографии можно увидеть пример подключения.

Управление

Для управления шаговым двигателям с «Ардуино» в составе среды разработки уже есть готовая библиотека, которая позволяет управлять двигателем, используя маленький программный код. Если бы его не было, пришлось бы при помощи специальной таблицы составлять и рассчитывать движение двигателя, что заняло бы очень много времени. Однако есть и минус этой библиотеки. Дело в том, что она дает возможность использования двигателя лишь в полношаговом режиме. Хотя изначально рекомендуется использование «шаговика» в полушаговом. Но для простых проектов с использованием одного шагового двигателя эта библиотека подойдет. Называется она Stepper. Можно написать код для управления шаговым двигателем с «Ардуино». Скетч выглядит так, как на примере ниже.

Это пример из самой библиотеки для управления шаговыми двигателями. Вы можете сами указать, какое количество шагов нужно выполнить, а также с какой скоростью. Рассмотрим код более детально. В самом начале подключается библиотека Stepper, о которой уже было сказано выше. После чего создается константа с количеством шагов, которые должен выполнить шаговый двигатель. Далее создается переменная типа Stepper с данными, используя какие контакты подключен шаговый двигатель к «Ардуино». Устанавливается скорость и уже сам процесс движения шагового двигателя. Но если же вы желаете использовать более одного двигателя в своем проекте и работать в полушаговом режиме, то можно применять сторонние библиотеки. Одним из таких является Accel Stepper. Эта библиотека очень хорошо показала себя в работе, имеет много возможностей. При работе с ней шаги точные, двигатели не греются. В общем, рекомендовано к использованию. Для установки библиотеки ее необходимо скачать и перенести содержимое архива в папку Libraries в корневой папке Arduino.

В этой статье был рассмотрен пример подключения шагового двигателя к «Ардуино», а также его управление с помощью программного кода. Каждый радиолюбитель должен хоть раз в своих проектах попробовать работать с ним!

L298N подключение к Ардуино

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

Конечно, шаговые двигатели (ШД) используются не только в ЧПУ и 3D-принтерах, им есть масса и других применений. Например, вкупе с популярным «конструктором для взрослых», Arduino, на базе которого можно создать всё что угодно. Однако, связка «Ардуино – шаговый двигатель» требует дополнительный элемент – драйвер.

Читать еще:  Влияние коммутатора на работу двигателя

Из-за того, что двигатель требует повышенного напряжения и силы тока, непосредственное подключение его к микроконтроллеру невозможно, напряжения логического нуля в +5В и силы тока в 40 мА не хватит для работы любого шагового двигателя. Функцию усилителя/переключателя берет на себя драйвер.

О нём мы и поговорим подробнее ниже.

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

Модуль собирается на основе одноименной микросхемы (L298N).

К L298N можно подключить двигатели, питающиеся напряжением от 5 до 35 вольт. Управление может быть реализовано в активном или пассивном режимах.

1. Активный – доступно не просто включение и отключение вращения мотора, но и управление его скоростью.

2. Пассивный – контроллер будет понимать только логику «включить/выключить двигатель». Управление уровнем выходного напряжения будет недоступно.

L298N – это облегчённая версия платы L293D. По сравнению с последней на L298N отсутствуют защитные диоды (их можно установить самостоятельно при необходимости защиты от скачков тока в процессе пуска двигателей).

Чтобы логика управления была понятнее, сначала разберёмся с джамперами и клеммами на плате.

Рис. 1. Джамперы и клеммы на плате

К клеммникам 1 и 2 подключаются двигатели, логика подключения зависит от моделей двигателей и логики их работы.

Блок клемм 3 отвечает за подключение питания двигателей. Первый контакт — +12. На него подаётся питание от 5 до 12 вольт, если джампер 3 одет, и от 12 до 35 воль, если джампер 3 снят.

При питании до +12В встроенный стабилизатор сам генерирует питание для логической части схемы, поэтому контакт +5В можно не использовать.

Если джампер 3 снят, то контакт +5В требуется запитать отдельно.

Управляющие сигналы от Ардуино или с другого микроконтроллера должны подаваться на контакты IN1-IN4, ENA, ENB. В зависимости от логических уровней и конфигурации джамперов 1,2 будет подаваться питание на двигатели/двигатель.

Джамперы 1 и 2 отвечают за переключение между активным и пассивным режимами работы драйвера. Если джампер одет, то реализуется логика «пассивного» управления.

Теперь для наглядности рассмотрим пару реальных схем подключения.

Управление двумя двигателями постоянного тока

Схема соединения будет выглядеть следующим образом.

Рис. 2. Схема соединения

Напряжение питания двигателей ниже 12 вольт, значит джампер 3 установлен, джамперы 1 и 2 на контактах ENA и ENB сняты.

Стоит особое внимание уделить пинам на Ардуино с ШИМ-модуляцией (рядом с цифровым значением есть специальный символ «

«). Они необходимы для управления скоростью вращения вала (чем выше уровень напряжения, тем выше скорость).

Теперь о логике, на примере левого двигателя (см. изображение выше).

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

Плата расширения Arduino Motor

Плата расширения Arduino Motor R3 — вид спередиПлата расширения Arduino Motor R3 — вид сзади

Общие сведения

Плата расширения Arduino Motor построена на базе микросхемы L298 (datasheet), представляющей собой двойной мостовой драйвер для управления различной индуктивной нагрузкой, такой, как реле, соленоиды, шаговые двигатели и двигатели постоянного тока. Плата расширения позволяет Ардуино управлять двумя двигателями постоянного тока, контролируя скорость и направление вращения каждого из них независимо друг от друга. Среди прочих возможностей устройства можно выделить возможность измерения тока, потребляемого каждым двигателем. Плата расширения Arduino Motor совместима с устройствами TinkerKit, что позволяет быстро собирать проекты, просто подключив готовые модули TinkerKit к плате.

Характеристики

Рабочее напряжениеот 5В до 12В
Драйвер двигателяL298P, позволяет управлять 2 двигателями постоянного тока либо 1 шаговым двигателем
Максимальный выходной ток2А на каждый канал или 4А максимум (при условии использования внешнего источника питания)
Измерение тока1.65В/А
Возможность естественной остановки и принудительного торможения

Схема и исходный проект

Питание

Микросхема L298, расположенная на плате расширения, имеет два вывода питания — один из них предназначен для питания цифровых цепей, другой — для питания двигателей. Ток, потребляемый двигателем, зачастую превышает максимальный выходной ток USB, поэтому для питания платы расширения необходимо использовать только внешние источники питания.

Читать еще:  Glc что за двигатель

В качестве внешнего источника питания (не USB) может использоваться сетевой AC/DC-адаптер либо аккумулятор. Штекер адаптера (диаметр — 2.1мм, центральный контакт — положительный) необходимо вставить в соответствующий разъем питания на основной плате Ардуино, к которой подключена плата расширения, либо подсоединить провода от источника питания к клеммам Vin и GND, соблюдая необходимую полярность.

Для предотвращения выхода из строя Ардуино, через который запитана плата расширения, рекомендуется использовать внешний источник питания, выходное напряжение которого лежит в пределах от 7 до 12В. В том случае, если для работы подключенного двигателя требуется напряжение больше 9В, рекомендуется организовать раздельное питание Ардуино и платы расширения. Для этого достаточно разомкнуть перемычку «Vin Connect», расположенную на обратной стороне печатной платы. Максимальное напряжение Vin, которое можно подавать на винтовые клеммники, составляет 18В.

Ниже перечислены выводы питания, предусмотренные на винтовом клеммнике:

  • Vin. Напряжение Vin используется для питания двигателей, подключенных к плате расширения. Напряжение, поступающее на этот вывод от внешнего источника питания, также используется для питания Ардуино, к которому подключена плата расширения. Для того, чтобы данный источник использовался только для питания двигателей, необходимо разомкнуть перемычку «Vin Connect».
  • GND. Выводы земли.

Максимальный выходной ток, который способна обеспечить плата расширения, составляет 4А (по 2А на каждый канал).

Входы и выходы

Для управления двигателями в Arduino Motor предусмотрено два независимых канала, A и B, каждый из которых связан с 4 выводами Ардуино. Соответственно, для управления платой расширения всего задействовано 8 выводов. Каждый канал можно использовать отдельно (например, для управления двумя двигателями постоянного тока), либо функционально объединить их в один канал для управления шаговым двигателем.

В нижеследующей таблице перечислены выводы, относящиеся к каждому каналу Arduino Motor:

Функциявыводы канала Aвыводы канала B
Направление вращенияD12D13
Скорость вращения (ШИМ)D3D11
Остановка двигателяD9D8
Измерение токаA0A1

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

Ниже перечислены дополнительные разъемы, присутствующие на плате расширения:

  • Винтовой клеммник для подключения двигателей и источника питания для них.
  • 2 белых разъема TinkerKit — два аналоговых входа; соединены с линиями A2 и A3.
  • 2 оранжевых разъема TinkerKit (по центру) — два аналоговых выхода; соединены с ШИМ-выходами D5 и D6.
  • 2 белых разъема TinkerKit (четырехконтактных) — интерфейс TWI; один разъем используется в качестве входа, другой — в качестве выхода.

Подключение двигателей

Коллекторный двигатель постоянного тока. Arduino Motor позволяет управлять двумя коллекторными двигателями постоянного тока. Для подключения каждого двигателя к каналу A или B необходимо подсоединить его провода к клеммам (+) и (-) соответствующего канала. При правильном подключении устройство позволяет контролировать направление и скорость вращения каждого двигателя. Для изменения направления вращения достаточно подать высокий (HIGH) или низкий (LOW) уровень сигнала на выводы DIR A или DIR B. Изменение скорости вращения двигателей осуществляется путем изменения коэффициента заполнения ШИМ-сигнала на выводах PWM A и PWM B. Для резкой остановки каждого двигателя необходимо подать высокий уровень сигнала (HIGH) на выводы Brake A и Brake B. Для медленной остановки — достаточно просто прекратить подачу питания. Чтобы узнать величину постоянного тока, потребляемого каждым двигателем, необходимо считать напряжение на выводах SNS0 и SNS1. Для этого можно применить функцию analogRead(), указав ей в качестве параметра аналоговый вход A0 или A1. Напряжение на этих выводах будет пропорционально току, протекающему через каждый канал платы расширения, и ограничено величиной в 3.3В, которое соответствует максимальному току в 2А.

Физические характеристики

Максимальная длина и ширина печатной платы Arduino Motor составляет 6.9 см и 5.4 см соответственно. Четыре крепежных отверстия позволяют закрепить плату в корпусе или на какой-либо поверхности. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 не кратно традиционным 2.54 мм и составляет 4 мм.

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector