28BYJ-48 стъпков двигател: всичко, което трябва да знаете

28byj-48 стъпков двигател

El 28BYJ-48 е еднополюсен стъпков двигател ниска цена и висока прецизност, идеален за електроника, за 3D принтери, CNC машини и роботика. Неговият компактен размер, ниска консумация на енергия и лекота на използване го правят популярен избор за любители на електрониката и професионалисти.

Освен това, заедно с този двигател, a модул с ULN2003, за ваш контрол. По този начин имаме всичко необходимо, за да можем да използваме тази система напълно, с микроконтролер или платка Arduino или подобен.

Какво е 28BYJ-48 стъпков двигател?

вътрешен електродвигател: статор-ротор

Un стъпковият двигател е вид електрически двигател който се движи на малки дискретни ъглови стъпки, а не на непрекъснато въртене. Той работи с помощта на набор от електромагнити, които се активират в определена последователност. Чрез активиране на различни електромагнити се създава магнитно поле, което привлича ротора на двигателя, карайки го да се върти стъпка по стъпка. Броят на стъпките на оборот и точността на движение зависят от специфичния дизайн на двигателя и използваната последователност на управление.

В рамките на стъпковите двигатели имаме два вида:

  • Еднополюсен- Те имат един комплект намотки и изискват специален контролер, който да обръща тока и да кара двигателя да се върти в двете посоки.
  • Биполярно- Имат два комплекта независими бобини, което им позволява да се въртят в двете посоки без нужда от специален контролер.

В случая на 28BYJ-28 той е еднополюсен тип, както споменах по-рано. И в рамките на тази група се характеризира със следното especificaciones:

  • Еднополюсен степер: лесно управление само с 4 кабела.
  • Интегриран редуктор: предлага висока точност (0.088° на стъпка) и въртящ момент (3 N·cm).
  • Ниска консумация: 83 mA (5V модел) или 32 mA (12V модел).
  • хранене: 5V или 12V (в зависимост от модела).
  • Икономична цена: от €1.2 за единица или малко повече, ако включват модул ULN2003.

Относно възможни приложения, вече споменах някои от тях преди, но тук отново ви давам няколко идеи за вашите проекти:

  • Управление на хидравлични и пневматични клапани.
  • Съчленени роботи и роботизирани ръце.
  • Позициониране на сензора.
  • Въртящи се маси за скенери.
  • 3d принтери.
  • CNC машини.

Стъпковият двигател не работи сам, той изисква друг елемент. В такъв случай, 28BYJ-48 се управлява от платка с интегриран ULN2003, което позволява токът на изходите на Arduino да бъде усилен за захранване на намотките на двигателя. Чрез активиране на бобините в правилната последователност, моторът се върти стъпка по стъпка с голяма прецизност.

Видове управляващи последователности и фази

там различни контролни последователности за 28BYJ-48, най-често срещаните са:

  • Пълна вълнова последователност: Активира всички бобини едновременно.
  • Половин стъпка последователност: Активира две съседни бобини едновременно.
  • Микроскопска последователност от стъпки: Активира една намотка наведнъж.

Нека видим фазите подробно:

  • Последователност 1-фаза: В 1-фазна последователност ние включваме една бобина наведнъж. Вземайки тази последователност на запалване в таблица, следното трябва да бъде генерирано в разводката на двигателя:
Paso A B A ' B '
1 ON OFF OFF OFF
2 OFF ON OFF OFF
3 OFF OFF ON OFF
4 OFF OFF OFF ON
  • 2-фазова последователност: ние включваме две корелативни бобини във всяка фаза, така че генерираното магнитно поле е по-голямо (41% повече), така че двигателят има повече въртящ момент, тоест получаваме повече сила. Като отрицателен момент ние удвояваме консумацията на енергия. Що се отнася до таблицата, тя ще бъде:
Paso A B A ' B '
1 ON ON OFF OFF
2 OFF ON ON OFF
3 OFF OFF ON ON
4 ON OFF OFF ON
  • Последователност от половин стъпка: Това е още един от етапите, които ще видим, можете да изпитате това, което ви интересува най-много. Тук последователно включваме една и две намотки, постигайки точност от половин стъпка. Използва се в приложения, където е необходима най-висока точност, въпреки че може да има проблеми, когато приложението е на границата на въртящия момент. Изразяването на последователността в таблична форма води до:
Полустъпка A B A ' 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 с Arduino

28byj-48 с Arduino

Първото нещо е да свържете правилно модул и мотор 28byj-48 към нашата платка Arduino, за да направите това, просто трябва да направите следните връзки:

  • Пин – от ULN2003 към GND на Arduino.
  • Pin + на ULN2003 към Vcc (5v или в други случаи, ако е 12v двигател, трябва да се използва захранване с това напрежение) от 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. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.