Работа с шаговым мотором 28BYJ-48 и драйвером ULN2003

Сегодня вы узнаете о четырехфазном шаговом двигателе 28BYJ-48, работающим от постоянного напряжения 5 Вольт. Также существует его модификация на 12 Вольт. Двигатель потребляет значительный ток, а это значит, что мы не можем подключить его напрямую к выводам Arduino. Воспользуемся для этого драйвером двигателя на микросхеме ULN2003.


Технические параметры двигателя 28BYJ-48

  • Модель: 28BYJ-48
  • Тип двигателя: Униполярный
  • Напряжение питания: 5 Вольт, DC
  • Количество фаз: 4
  • Частота: 100 Гц
  • Сопротивление: 50Ω ± 7% (при 25 ℃)


Общие сведения о движке

4-х фазный шаговый двигатель 28BYJ-48 — это бесколлекторный двигатель, имеющий дискретное перемещение (вращение вала осуществляется шагами). На роторе (валу), расположен магнит, а вокруг него находятся катушки. Подавая поочередно ток на эти катушки, создается магнитное поле, которое отталкивает или притягивает магнитный вал, заставляя двигатель вращаться. Такая конструкция позволяет с большой точностью управлять валом, относительно катушек. Принципиальная схема четырехфазного шагового двигателя 28BYJ-48 приведена ниже.


Двигатель называется четырех фазным, из-за того, что в нем содержится две обмотки, которые, в свою очередь, разделены на четыре. (Это отражено на схеме выше). Центральные отводы катушек подключены вместе и служат для питания двигателя. Так как каждая обмотка подключена к питанию, такие двигатели называют униполярными. На роторе 28BYJ-48 расположено 8 магнитов, с чередующимися полюсами (то есть, четыре магнита с двумя полюсами).


На рисунке видно, что внутри расположен редуктор, с примерным передаточным числом в 1:64, если быть точнее 1:63,68395. Это значит, что двигатель за один оборот осуществляет 4075.7728395 шага. Данный двигатель поддерживает полушаговый режим и за один полный оборот может совершать 4076 шага, а точнее за 1° делает примерно 11,32 шага. (4076 / 360 = 11,32).


Режимы работы двигателя:

Чаще всего, при использовании шагового двигателя 28BYJ 48, используют два режима подключения.

  • Полушаговый режим — за 1 такт, ротор делает ½ шага.
  • Полношаговый режим — за 1 такт, ротор делает 1 шаг.


Ниже представлены таблицы последовательности тактов:





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

Цифровой вывод микроконтроллера выдает ток до ~40 мА, а одна обмотка 28BYJ-48 в пике потребляет ~320 мА, то есть, если подключить двигатель напрямую, микроконтроллер сгорит. Для защиты был разработан модуль шагового двигателя ULN2003, в котором используется микросхема ULN2003A (состоящая из 7 ключей), которая позволяет управлять нагрузкой до 500 мА (один ключ). Данный модуль может работать с 5 Вольтовым и 12 Вольтовым двигателем 28BYJ-48. Для переключения необходимо установить или убрать перемычку (по умолчанию перемычка установлена на питание 5 Вольт).


С принципиальной схемой модуля ULN2003 можно ознакомиться на рисунке ниже


Назначение X1

  • IN1 . . . IN7: Вход 1 … 7

Назначение X2

  • 1 — GND:  «-» питание модуля
  • 2 — Vcc:  «+» питание модуля (5В или 12В)
  • 3 — Vcc:  «+» питание модуля (перемычка, только при 5В)
  • 4 — Vcc:  «+» питание модуля (перемычка, только при 5В)

Назначение X3

  • A . . . G: Выход  1 … 7

Назначение X4

  • 1 —  Питание
  • 2 —  A
  • 3 —  B
  • 4 —  C
  • 5 —  D


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

Необходимые детали:

  • Arduino UNO R3 x 1 шт.
  • Модуль драйвера шагового двигателя ULN2003 x 1 шт.
  • Шаговый двигатель 28BYJ-48-5V (5В) x 1 шт.
  • Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
  • Кабель USB 2.0 A-B x 1 шт.

Подключение:

В данном примере используется модуль ULN2003, Arduino UNO R3 и двигатель 28BYJ-48-5V. Схема довольно простая, необходимо всего 6 проводов. Вначале подключаем интерфейсные провода, IN1 (ULN2003) в 11 (Arduino UNO), IN2 (ULN2003) в 10 (Arduino UNO), IN3 (ULN2003) в 9 (Arduino UNO) и IN4 (ULN2003) в 8 (Arduino UNO). Остается подключить питание GND к GND и VCC к VIN (не для постоянного использовании). Подключим разъем двигателя в модуль ULN2003. Схема собрана, теперь надо подготовить программную часть.



Для вращения двигателя по часовой и против часовой стрелки, используется библиотека CustomStepper. Данная библиотека не входит в стандартную среду разработки Arduino IDE, поэтому ее надо скачать и добавить. Далее, запускаем среду разработки IDE и копируем скетч. Если все правильно сделать, двигатель начнет вращаться.


Пример программы для работы с двигателем 28BYJ-48: скачать


Как реализована работа с двигателем.

Изначально в библиотеке назначаются какие-либо инструкции, которые должен выполнить двигатель (например, сделать три оборота двигателем), обработкой этих инструкций осуществляется командой stepper.run();, после того как все инструкции выполнены isDone вернет tru (истина). То есть если двигатель еще крутится вернется false (лож) или если двигатель прекратил движение вернется tru (истина).



558

Комментарии