Меню

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

Как подключить шаговый двигатель к Arduino

Шаговые электромоторы и связанные с ними области техники находятся в поле зрения конструкторов-любителей уже долгое время. Интерес к ним не ослабевает благодаря программам и шаговым двигателям «Ардуино» для систем автоматики и робототехники.

Принцип работы шагового двигателя

На статор накручены электрические провода, формирующие обмотки. Если попеременно подавать на них напряжение, то ротор двигателя переместится на заранее указанный угол, например 3º или 0,9º. Его величина определяется конструкцией устройства. Таким образом, ротор движется не плавно, а скачками, иначе называемыми шагами. Если ротор сделал 6 скачков, то считают, что он переместился на 6 шагов.

Драйверы для мотора

Драйвер является связующим звеном контроллера и мотора. Работа с биполярным Arduino-двигателем требует механизма со сложной схемой, в то время как униполярные машины управляются сравнительно простым драйвером. Часто применяют вариант L298N, в его конструкцию входят:

  • микросхема L298N;
  • клеммные колодки;
  • сигнальные штекеры;
  • стабилизатор напряжения;
  • диоды защиты;
  • радиатор охлаждения.

Драйвер ULN2003 проще, он недорогой, но менее точен и надежен. Вариант на микросхеме L293D содержит 2 H-моста, поэтому способен управлять 2 моторами. Рабочий ток — 600 мА, максимальный ток в 2 раза больше, напряжение — до 36 В.

Процесс подключения

Сборка схемы сложностей не представляет, поэтому доступна любителю. Необходимы базовые знания в области электротехники, умение работать с ПК на пользовательском уровне и внимательность при написании скетчей. Макетная плата позволит обойтись без паяльника, припоя и канифоли.

Что понадобится

Для сборки схемы требуются следующие компоненты:

  1. Шаговый коллекторный двигатель.
  2. Плата Arduino. Начинающим подойдет модель UNO.
  3. Макетная плата.
  4. Диоды, транзисторы, резисторы, потенциометр.
  5. Перемычки и провода.
  6. «Мотор шилд» (Motor Shield) — дополнительная плата расширения для управления двигателем постоянного тока, она же регулятор оборотов.
  7. Вместо Motor Shield можно применить драйверы L298N, ULN2003 или L293D.
  8. Блок питания постоянного тока.
  9. Кабель USB для соединения с компьютером и загрузки скетчей.

На рынке предлагают готовые наборы (включают пп. 2-5).

Пошаговая инструкция

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

  1. Подготовить скетч для управления мотором.
  2. Шилд управления двигателем или драйвер разместить сверху платы Arduino UNO.
  3. Проверить и при необходимости установить перемычки на плате расширения следующим образом: H1 соединяется с 4-м пином, E1 — с 5-м, E2 — с 6-м и H2 — с 7-м пином. Пины 5 и 6 должны поддерживать ШИМ (широтно-импульсную модуляцию).
  4. Подготовить блок для питания шилда постоянным током.
  5. Подать постоянный ток на контакты «+» и «-» платы расширения.
  6. Питание мотора подключить к контактам PWR на плате расширения.
  7. Соединить «Ардуино» кабелем USB с ПК и загрузить скетч.

Скетчи можно писать с применением библиотеки Stepper.h или AccelStepper.h. Плата Arduino UNO подходит для работы в режиме широтно-импульсной модуляции. В этом случае в блоке loop используют команды analogWrite и analogRead.

Описание библиотеки для работы

Пакет Arduino IDE содержит стандартную библиотеку Stepper.h. Она позволяет создать объект и затем управлять им с помощью 2 функций:

  1. Инструкция Stepper(steps, pin1, pin2, pin3, pin4) прописывает объект, где steps — число шагов за 1 полный оборот в 360º, pin1 — pin4 — контакты для подключения драйвера. Чтобы создать объект motorN, необходимо задать Stepper motorN(steps, pin1-4) с нужными числовыми значениями вместо символов в скобках.
  2. Скорость вращения вала двигателя задается как void setSpeed(long rpms), где rpms — об./мин, например, motorN.setSpeed(64).
  3. Поворот вала на заданное число шагов: void step(int steps), например, motorN.step(16).
Читайте также:  Напыляемая шумоизоляция автомобиля что это

Библиотека Stepper.h позволяет запрограммировать плату в тестовых или учебных целях. Гораздо больше функций содержит библиотека AccelStepper.h: она гибко управляет скоростью, работает с разными моделями двигателей, допускает присоединение к схеме более одной машины и содержит функции, показанные в таблице 2.

Инструкции и аргументы Комментарий
AccelStepper stepperQ(1, pinStep, pinDirection); Объявление шагового двигателя с именем stepperQ.
AccelStepper stepperQ(2, pin1, pin2); Описание 2-полярной машины под управлением H-моста.
AccelStepper stepperV(4, pin1-4); Конфигурация 1-полярного движка stepperV, управляемого 4 транзисторными ключами.
stepperQ.setMaxSpeed(stepsPerSecond); Поскольку по умолчанию скорость низкая, следует записать свою, в шагах/с.
stepperQ.setAcceleration(stepsPerSecondSquared); Ускорение, шагов/с².
stepperQ.moveTo(targetPosition); Перемещение вала в новую абсолютную позицию под управлением функции run().
stepperQ.runSpeed(); Апдейт — должен выполняться периодически, чтобы вал вращался.

Скетчи для «Ардуино» Stepper h

Алгоритм управления представлен ниже.

Если необходимо переопределить режим функционирования пинов платы Arduino, то в стартовый блок добавляется инструкция setup pinMode.

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

Шаговый двигатель 28byj-48 Arduino ► предназначен для перемещения объекта на заданное количество шагов вала. Рассмотрим управление шаговым двигателем от Ардуино

Шаговый двигатель (stepper motor) предназначен для точного позиционирования или перемещения объекта на заданное количество шагов вала. Плата Arduino может управлять шаговым двигателем с помощью драйвера и библиотеки stepper.h или accelstepper.h. Рассмотрим принцип работы и схему подключения шагового двигателя к Arduino Uno / Nano, а также разберем скетч для управления шаговым мотором.

Принцип работы шагового двигателя

В зависимости от конструкции, сегодня применяются три вида шаговых двигателей: с постоянным магнитом, с переменным магнитным сопротивлением и гибридные двигатели. У двигателей с постоянным магнитом число шагов на один оборот вала доходит до 48, то есть один шаг соответствует повороту вала на 7,5°. Гибридные двигатели обеспечивают не меньше 400 шагов на один оборот (угол шага 0,9°).

Фото. Устройство шагового мотора в разрезе

Подсчитав количество сделанных шагов, можно определить точный угол поворота ротора. Таким образом, шаговый двигатель является сегодня идеальным приводом в 3D принтерах, станках с ЧПУ и в другом промышленном оборудовании. Это лишь краткий обзор устройства и принципа работы stepper motor, нас больше интересует, как осуществляется управление шаговым двигателем с помощью Ардуино.

Драйвер шагового двигателя Ардуино

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

Фото. Виды драйверов для управления шаговым двигателем

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

Схема подключения шагового двигателя 28BYJ-48 к Arduino Uno через драйвер ULN2003 изображена на рисунке ниже. Основные характеристики мотора 28BYJ-48: питание от 5 или 12 Вольт, 4-х фазный двигатель, угол шага 5,625°. Порты драйвера IN1 — IN4 подключаются к любым цифровым выводам платы Arduino Mega или Nano. Светодиоды на модуле служат для индикации включения катушек двигателя.

Как подключить шаговый двигатель к Ардуино

Для этого занятия нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • драйвер шагового двигателя ULN2003;
  • шаговый двигатель 28BYJ-48;
  • провода «папа-мама».

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

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

Шаг 1. Что такое шаговый двигатель?

Шаговый двигатель состоит из двух основных частей: ротора и статора.

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

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

Шаг 2: Список деталей

Необходимые детали для проекта Ардуино шагового двигателя:

  • Шаговый двигатель (этот двигатель был взят от старого принтера)
  • Arduino
  • Изолированный медный провод
  • Проволочные резаки / стрипперы
  • Регулятор тока
  • транзистор
  • драйвер двигателя H-Bridge 1A
  • моторный шилд
  • паяльник
  • припой
  • инструменты
  • безопасные очки

Шаг 3: Присоединяем провода

Большинство шаговых двигателей имеют четыре провода, поэтому вам нужно будет обрезать четыре медных провода (обратите внимание, что цвет не коррелирует с чем-либо конкретным (обычно есть правило, что черный — это земля, но не сейчас). Различные цвета были использованы только для облегчения понимания. Эти выводы будут использоваться для управления, какая катушка в настоящее время активна в двигателе. Для этого проекта Ардуино шаговый двигатель был взят от старого принтера, поэтому пайка проводов была самым простым вариантом для этого проекта. В любом случае, вы можете безопасно установить соединение (пайка, штекер, клипы).

Шаг 4: Эскиз/скетч Arduino

Arduino уже имеет встроенную библиотеку для шаговых двигателей. Просто перейдите в меню:

Файл → Примеры → Шаговые → stepper_oneRevolution
File → Examples → Stepper → stepper_oneRevolution

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

То, что на самом деле делает библиотека Stepper — чередует сигналы HIGH и LOW для каждой катушки, как показано в анимации выше.

Шаг 5: Что такое мост H-bridge?

H-Bridge — схема, состоящая из 4 переключателей, которые могут безопасно управлять двигателем постоянного тока или шаговым двигателем. Эти переключатели могут быть реле или (чаще всего) транзисторами. Транзистор представляет собой твердотельный переключатель, который можно закрыть, посылая небольшой ток (сигнал) на один из его контактов.

В отличие от одного транзистора, который позволяет вам контролировать скорость двигателя, H-мосты позволяют вам также контролировать направление вращения двигателя. Он делает это, открывая различные переключатели (транзисторы), чтобы ток тек в разных направлениях и, таким образом, изменяя полярность на двигателе.

H-Bridges может помочь вам предотвратить перегорания вашего Arduino моторами, которыми вы пользуетесь. Двигатели являются индукторами, а это означает, что они хранят электрическую энергию в магнитных полях. Когда ток больше не посылается двигателям, магнитная энергия возвращается в электрическую энергию и может повредить компоненты. H-Bridge помогает изолировать ваш Arduino лучше всего. Вы не должны подключать двигатель непосредственно к Arduino.

Хотя H-Bridges можно легко сделать самому многие предпочитают покупать H-Bridge (например, чип L293NE / SN754410) из-за удобства. Это чип, который мы будем использовать в этом уроке. Физические номера контактов и их назначение ниже:

  • Пин 1 (1, 2EN) → Мотор 1 Включен/Выключен (HIGH/LOW)
  • Пин 2 (1A) → Мотор 1 логический выход 1
  • Пин 3 (1Y) → Мотор 1 терминал 1
  • Пин 4 → Земля
  • Пин 5 → Земля
  • Пин 6 (2Y) → Мотор 1 терминал 2
  • Пин 7 (2A) → Мотор 1 логический выход 2
  • Пин 8 (VCC2) → Питание для двигателей
  • Пин 9 → Мотор 2 Включен/Выключен (HIGH/LOW)
  • Пин 10 → Мотор 2 логический выход 1
  • Пин 11 → Мотор 2 терминал 1
  • Пин 12 → Земля
  • Пин 13 → Земля
  • Пин 14 → Мотор 2 терминал 2
  • Пин 15 → Мотор 2 логический выход 2
  • Пин 16 (VCC1) → Питание для H Bridge (5В)

Шаг 6: Схема соединения

Схема соединения нашего проекта Ардуино шагового двигателя ниже.

Для шагового двигателя Ардуино 4 вывода на H-Bridge должны подключаться к 4 выводам двигателя. Затем 4 логических вывода подключаются к Arduino (8, 9, 10 и 11). Как показано на диаграмме выше, для питания двигателей можно подключить внешний источник питания. Чип может обрабатывать внешний источник питания от 4,5 до 36 В (мы выбрали батарею 9В).

Шаг 7: Загрузка кода и тестирование

Загрузите свой код в Ардуино. Если вы запустите свой код и все сработает так, как ожидалось, это потрясающе! Если провода вставлены в неправильные контакты, двигатель просто вибрирует, а не полностью вращается. Играйте со скоростью и направлением двигателя, как сочтете нужным.

На этом всё, теперь у вас должен быть рабочий шаговый двигатель Arduino. То, что вы сделаете дальше, зависит только от вас.