Шаговый двигатель 28BYJ-48: все, что нужно знать

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

El 28BYJ-48 — униполярный шаговый двигатель. низкая стоимость и высокая точность, идеально подходят для проектов в области электроники, 3D-принтеров, станков с ЧПУ и робототехники. Компактный размер, низкое энергопотребление и простота использования делают его популярным выбором среди любителей электроники и профессионалов.

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

Что такое шаговый двигатель 28BYJ-48?

внутренний электродвигатель: статор-ротор

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

Шаговые двигатели бывают двух типов:

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

В случае 28BYJ-28 это униполярный тип, как я уже упоминал ранее. И внутри этой группы он характеризуется наличием следующих функции:

  • Униполярный шаговый двигатель: простое управление с помощью всего 4 кабелей.
  • Встроенный редуктор: обеспечивает высокую точность (0.088° на шаг) и крутящий момент (3 Н·см).
  • Низкое энергопотребление: 83 мА (модель 5 В) или 32 мА (модель 12 В).
  • продукты: 5 В или 12 В (в зависимости от модели).
  • Экономичная цена: от 1.2 евро за единицу или чуть больше, если в комплект входит модуль ULN2003.

Что же касается возможные применения, о некоторых из них я уже упоминал ранее, но здесь я снова поделюсь с вами некоторыми идеями для ваших проектов:

  • Управление гидравлическими и пневматическими клапанами.
  • Шарнирно-сочлененные роботы и роботизированные руки.
  • Позиционирование датчика.
  • Поворотные столы для сканеров.
  • 3д принтеры.
  • станки с ЧПУ.

Шаговый двигатель не работает один, для него требуется еще один элемент. В этом случае, 28BYJ-48 управляется платой со встроенным ULN2003., что позволяет усиливать ток на выходах Arduino для питания катушек двигателя. Активируя катушки в правильной последовательности, двигатель вращается шаг за шагом с большой точностью.

Типы последовательностей и фаз управления

Там различные последовательности управления для 28BYJ-48, наиболее распространенными являются:

  • Полноволновая последовательность: активирует все катушки одновременно.
  • Последовательность полушагов: одновременно активирует две соседние катушки.
  • Последовательность микроскопических шагов: активирует одну катушку за раз.

Давай посмотрим фазы в деталях:

  • Последовательность 1-фазная: В однофазной последовательности мы включаем по одной катушке за раз. Если перенести эту последовательность зажигания в таблицу, в распиновке двигателя необходимо будет сгенерировать следующее:
Шаг A B А ' B '
1 ON OFF OFF OFF
2 OFF ON OFF OFF
3 OFF OFF ON OFF
4 OFF OFF OFF ON
  • 2-фазная последовательность: мы включаем две коррелятивные катушки в каждой фазе, поэтому создаваемое магнитное поле больше (на 41% больше), поэтому двигатель имеет больший крутящий момент, то есть мы получаем большую силу. Негативным моментом является удвоение энергопотребления. Что касается таблицы, то это будет:
Шаг A B А ' B '
1 ON ON OFF OFF
2 OFF ON ON OFF
3 OFF OFF ON ON
4 ON OFF OFF ON
  • Последовательность полушагов: Это еще один этап, который мы увидим, вы сможете испытать то, что вас интересует больше всего. Здесь поочередно включаем одну и две катушки, добиваясь точности в полшага. Он используется в приложениях, где необходима высочайшая точность, хотя могут возникнуть проблемы, когда приложение работает на пределе крутящего момента. Выражение последовательности в виде таблицы приводит к:
Полшага A B А ' B '
1 ON OFF OFF OFF
2 ON ON OFF OFF
3 OFF ON OFF OFF
4 OFF ON ON OFF
5 OFF OFF ON OFF
6 OFF OFF ON ON
7 OFF OFF OFF ON
8 ON OFF OFF ON

28BYJ-28 с Ардуино

28byj-48 с Ардуино

Первое, что нужно сделать, это правильно подключить модуль и двигатель 28byj-48 к нашей плате Arduino, для этого вам просто нужно выполнить следующие соединения:

  • Контакт – от ULN2003 к GND Arduino.
  • Контакт + ULN2003 к Vcc (5 В или, в других случаях, если это двигатель на 12 В, необходимо использовать источник питания с таким напряжением) от Arduino.
  • IN1, IN2, IN3 и IN4 ULN2003 к цифровым входам D8, D9, D10 и D11 Arduino.
  • Двигатель 28byj-48, просто подключите его к порту модуля ULN2003.

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

//Definir los pines
const int motorPin1 = 8;    // 28BYJ48 In1
const int motorPin2 = 9;    // 28BYJ48 In2
const int motorPin3 = 10;   // 28BYJ48 In3
const int motorPin4 = 11;   // 28BYJ48 In4
                   
//Definición de variables
int motorSpeed = 1200;   //Velocidad del motor
int stepCounter = 0;     //Contador de pasos
int stepsPerRev = 4076;  //Pasos para un giro completo

//Tablas de secuencia (descomentar la que necesites)
//Secuencia 1-fase
//const int numSteps = 4;
//const int stepsLookup[4] = { B1000, B0100, B0010, B0001 };

//Secuencia 2-fases
//const int numSteps = 4;
//const int stepsLookup[4] = { B1100, B0110, B0011, B1001 };

//Secuencia media fase
//const int numSteps = 8;
//const int stepsLookup[8] = { B1000, B1100, B0100, B0110, B0010, B0011, B0001, B1001 };

void setup()
{
  //Declarar los pines usados como salida
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
}

void loop()
{
  for (int i = 0; i < stepsPerRev * 2; i++)
  {
    clockwise();
    delayMicroseconds(motorSpeed);
  }
  for (int i = 0; i < stepsPerRev * 2; i++)
  {
    anticlockwise();
    delayMicroseconds(motorSpeed);
  }
  delay(1000);
}

void clockwise()
{
  stepCounter++;
  if (stepCounter >= numSteps) stepCounter = 0;
  setOutput(stepCounter);
}

void anticlockwise()
{
  stepCounter--;
  if (stepCounter < 0) stepCounter = numSteps - 1;
  setOutput(stepCounter);
}

void setOutput(int step)
{
  digitalWrite(motorPin1, bitRead(stepsLookup[step], 0));
  digitalWrite(motorPin2, bitRead(stepsLookup[step], 1));
  digitalWrite(motorPin3, bitRead(stepsLookup[step], 2));
  digitalWrite(motorPin4, bitRead(stepsLookup[step], 3));
}


Будьте первым, чтобы комментировать

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

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.