Обзор шагового двигателя 28BYJ-48 с драйвером ULN2003

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

Обзор шагового двигателя 28BYJ-48 с драйвером ULN2003

Технические параметры 28BYJ-48

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

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

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

Обзор шагового двигателя 28BYJ-48 с драйвером ULN2003

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

Обзор шагового двигателя 28BYJ-48 с драйвером ULN2003

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

Режим работы:
Чаще всего, при использовании шагового двигателя 28BYJ 48, используют два режима подключения.
Полношаговый режим — за 1 такт, ротор делает 1 шаг.
Полушаговый режим — за 1 такт, ротор делает ½ шага.
Ниже переставлена таблица последовательности тактов:

Обзор шагового двигателя 28BYJ-48 с драйвером ULN2003
Обзор шагового двигателя 28BYJ-48 с драйвером ULN2003

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

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

Обзор шагового двигателя 28BYJ-48 с драйвером ULN2003

Назначение X1
IN1 . . . IN7: Вход 1 … 7 Назначение X2
► 1 — GND:  «-» питание модуля
► 2 — Vcc:  «+» питание модуля (5В или 12В)
► 3 — Vcc:  «+» питание модуля (перемычка, только при 5В)
► 4 — Vcc:  «+» питание модуля (перемычка, только при 5В)

Назначение X3
► A . . . G: Выход  1 … 7

Назначение X3
► 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. Схема не сложная, необходимо всего шесть провода, сначала подключаем интерфейсные провода, 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. Схема собрана, теперь надо подготовить программную часть.

Обзор шагового двигателя 28BYJ-48 с драйвером ULN2003

Таблица подключений

Обзор шагового двигателя 28BYJ-48 с драйвером ULN2003

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

  Скачать скетч

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

Ссылки
  Библиотека CustomStepper.zip

Купить на Aliexpress
  Контроллер Arduino UNO R3
  Шагового двигателя 28BYJ-48
  Комплект проводов DuPont, 2,54 мм, 20 см

Купить в Самаре и области
  Купить контроллер Arduino UNO R3 в г. Самаре
  Купить шагового двигателя 28BYJ-48 в г. Самаре
  Купить комплект проводов DuPont, 2,54 мм, 20 см в г. Самаре

Читайте также:

комментария 2

  1. Александр:

    ► 3 — Vcc: «+» питание модуля (перемычка, только при 5В)
    ► 4 — Vcc: «+» питание модуля (перемычка, только при 5В)
    Если вы уберете перемычку двигатель ни при 5В, ни при 12В
    работать не будет.Ведь через нее подается + питания на двигатель.

  2. Сергей:

    Перемычка включает или отключает индикаторные диоды

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *