Подключаем 28BYJ-48 к Ардуино

16-03-2020, 18:32 0 комментариев
Шаговый двигатель 28BYJ-48 к Arduino - отличное решение для современного любителя электроники и робототехники. Модуль достаточно бюджетен, при этом доступен для покупки, легок в сборке и вполне функционален.

Мы много раз говорили о сферах применения подобных устройств, но повторимся. Они пригодятся для проектирования, разработки и эффективного управления копировальной и факсимильной техникой, ЧПУ станками, трехмерными принтерами, роботами-манипуляторами и т.д.

Если взглянуть на технические параметры ШД, они такого плана:
  • напряжение питания: 5, 12 V;
  • количество шагов: 64;
  • -- фаз – 4;
  • скорость работы: 15 об/мин;
  • задержка между шагами: 2 миллисек;
  • частота: 100 Гц;
  • габариты: 25х18мм;
  • вес: 34-40 г.
Принципиальная схема показана на скриншоте:
На очереди - подключение 28BYJ-48 к Ардуино. Для реализации несложной схемы будем использовать такие аппаратные компоненты как:
  1. Микроконтроллер Arduino Uno
  2. Шаговый мотор на чипе 28BYJ-48
  3. Соединительные провода
К слову, любую схему можно модернизировать, добавив иные цифровые элементы, например, источник питания, драйвер, резисторы, потенциометр, кнопку для изменения направления вращения и т.д.

Но вернемся к нашему макету. Пропишем программный скетч для тестирования и проверки работоспособности:
// Контакты   Bl Pi Ye  Or
int pins[] = {8, 9, 10, 11}; //Задаем пины по порядку

int phases = 8; // для шагового режима установить 4

// Для шагового режима
//bool motorPhases[4][4] = { // [phase][pin]
//// -------- pins ----------
//// Winding    A  B  A  B
//// Motor Pin  1  2  3  4
//// Color      Bl Pi Ye Or
//  {           1, 1, 0, 0},
//  {           0, 1, 1, 0},
//  {           0, 0, 1, 1},
//  {           1, 0, 0, 1}
//};

// Для полушагового режима
bool motorPhases[8][4] = { // [phase][pin]
  // -------- pins ----------
  // Winding    A  B  A  B
  // Motor Pin  1  2  3  4
  // Color      Bl Pi Ye Or
  {             1, 1, 0, 0},
  {             0, 1, 0, 0},
  {             0, 1, 1, 0},
  {             0, 0, 1, 0},
  {             0, 0, 1, 1},
  {             0, 0, 0, 1},
  {             1, 0, 0, 1},
  {             1, 0, 0, 0}
};

void setup() {
  for (int i = 0; i < 4; i++) pinMode(pins[i], OUTPUT);
}

int phase = 0;
int _step = 1; // Если у шага поменять знак, на -1 - изменится направление вращения.

void loop() {
  phase += _step;
  if (phase > 7) phase = 0;
  if (phase < 0) phase = 7;

  for (int i = 0; i < 4; i++) {
    digitalWrite(pins[i], ((motorPhases[phase][i] == 1) ? HIGH : LOW));
  }
  // Пауза на вращение на один шаг/полушаг
  delay(2); // Для шагового режима установить в 3
}
Особых библиотек мы не использовали – все стандартно.
Управление процессами осуществляется через монитор последовательного порта (Serial Monitor) – запускаем сочетанием клавиш Ctrl+Shift+M. В нем будут доступны нужные нам значения.

На этом пока все! Хороших вам проектов!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

В этой статье мы рассмотрим подключение ADS1115 к Ардуино. Речь идет о 16-битном аналого-цифровом преобразователе, оснащенном 4 входами непосредственно для...

В новом информационном обзоре рассматриваем GSM модуль SIM800L к Arduino. Почему выбрано именно это устройство? Во-первых, оно достаточно известно и популярно...

Модуль энкодер KY-040 является электромеханическим устройством, а точнее - датчиком угла поворота и вращения оси различных девайсов. Непосредственно сам прибор...

Подключение Motor Shield к Arduino у многих любителей электроники вызывает определенные затруднения. Тем не менее этот драйвер двигателей очень популярен и...

Оставить комментарий