Motori stepper 28BYJ-48: gjithçka që duhet të dini

Motor stepper 28byj-48

El 28BYJ-48 është një motor stepper unipolar me kosto të ulët dhe saktësi të lartë, ideale për projekte elektronike, për printera 3D, makina CNC dhe robotikë. Madhësia e tij kompakte, konsumi i ulët i energjisë dhe lehtësia e përdorimit e bëjnë atë një zgjedhje popullore për hobiistët dhe profesionistët e elektronikës.

Për më tepër, së bashku me këtë motor, a modul me ULN2003, për kontrollin tuaj. Në këtë mënyrë, ne kemi gjithçka të nevojshme për të mund ta përdorim plotësisht këtë sistem, duke përdorur një mikrokontrollues ose një tabelë Arduino ose të ngjashme.

Çfarë është motori stepper 28BYJ-48?

motor elektrik i brendshëm: stator-rotor

Un motori stepper është një lloj motori elektrik e cila lëviz në hapa të vegjël këndorë diskrete, në vend të një rrotullimi të vazhdueshëm. Ai funksionon duke përdorur një grup elektromagnetësh që aktivizohen në një sekuencë specifike. Duke aktivizuar elektromagnet të ndryshëm, krijohet një fushë magnetike që tërheq rotorin e motorit, duke bërë që ai të rrotullohet një hap pas hapi. Numri i hapave për rrotullim dhe saktësia e lëvizjes varen nga modeli specifik i motorit dhe sekuenca e kontrollit të përdorur.

Brenda motorëve stepper kemi dy lloje:

  • unipolare- Ata kanë një grup të vetëm mbështjelljesh dhe kërkojnë një kontrollues të veçantë për të kthyer rrymën dhe për të bërë motorin të rrotullohet në të dy drejtimet.
  • Bipolare- Ata kanë dy grupe mbështjelljesh të pavarura, duke i lejuar ato të rrotullohen në të dy drejtimet pa pasur nevojë për një kontrollues të veçantë.

Në rastin e 28BYJ-28 është tip unipolar, siç e përmenda më parë. Dhe, brenda këtij grupi, karakterizohet nga të paturit e mëposhtme especificaciones:

  • Stepper unipolar: kontroll i thjeshtë me vetëm 4 kabllo.
  • Reduktues i integruar: ofron saktësi të lartë (0.088° për hap) dhe çift rrotullues (3 N·cm).
  • Konsum i ulët: 83 mA (modeli 5V) ose 32 mA (modeli 12V).
  • ushqim: 5V ose 12V (në varësi të modelit).
  • Çmimi ekonomik: nga 1.2 € për njësi, ose pak më shumë nëse përfshijnë një modul ULN2003.

Si aplikimet e mundshme, disa prej tyre i kam përmendur më parë, por këtu po ju jap sërish disa ide për projektet tuaja:

  • Kontrolli i valvulave hidraulike dhe pneumatike.
  • Robotët e artikuluar dhe krahët robotikë.
  • Pozicionimi i sensorit.
  • Tavolina rrotulluese për skanerët.
  • printera 3d.
  • Makinat CNC.

Motori stepper nuk funksionon vetëm, kërkon një element tjetër. Në këtë rast, 28BYJ-48 kontrollohet nga një bord me një ULN2003 të integruar, i cili lejon që rryma e daljeve Arduino të përforcohet për të fuqizuar mbështjelljet e motorit. Duke aktivizuar mbështjelljet në sekuencën e duhur, motori rrotullohet hap pas hapi me saktësi të madhe.

Llojet e sekuencave dhe fazave të kontrollit

Atje sekuenca të ndryshme kontrolli për 28BYJ-48, më të zakonshmet janë:

  • Sekuenca e valëve të plota: aktivizon të gjitha bobinat në të njëjtën kohë.
  • Sekuenca gjysmë hapash: Aktivizon dy bobina ngjitur në të njëjtën kohë.
  • Sekuenca e hapave mikroskopike: Aktivizon një spirale në të njëjtën kohë.

Le të shohim fazat hollësisht:

  • Sekuenca 1-fazë: Në një sekuencë 1-fazore ne ndezim një spirale të vetme në të njëjtën kohë. Duke e marrë këtë sekuencë ndezjeje në një tabelë, në pikën e motorit duhet të krijohet sa vijon:
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
  • Sekuenca 2-fazore: ndezim dy bobina korrelative në secilën fazë, kështu që fusha magnetike e krijuar është më e madhe (41% më shumë) kështu që motori ka më shumë çift rrotullues, domethënë fitojmë më shumë forcë. Si pikë negative dyfishuam konsumin e energjisë. Sa i përket tabelës, ajo do të ishte:
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
  • Sekuenca gjysmë hapi: Kjo është një tjetër nga fazat që do të shohim, ju mund të përjetoni atë që ju intereson më shumë. Këtu ndezim në mënyrë alternative një dhe dy mbështjellje, duke arritur një saktësi prej gjysmë hapi. Përdoret në aplikacione ku nevojitet saktësia më e lartë, megjithëse mund të ketë probleme kur aplikimi është në kufirin e çift rrotullues. Shprehja e sekuencës në formën e tabelës rezulton në:
Gjysmë hapi 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 me Arduino

28byj-48 me Arduino

Gjëja e parë është të lidhni siç duhet moduli dhe motori 28byj-48 në bordin tonë Arduino, për ta bërë këtë, thjesht duhet të bëni lidhjet e mëposhtme:

  • Pin – nga ULN2003 në GND të Arduino.
  • Pin + i ULN2003 në Vcc (5v ose në raste të tjera, nëse është një motor 12v, duhet të përdoret një furnizim me energji elektrike me atë tension) nga Arduino.
  • IN1, IN2, IN3 dhe IN4 të ULN2003 në hyrjet dixhitale D8, D9, D10 dhe D11 të Arduino.
  • Motorin 28byj-48, thjesht lidheni me portën në modulin ULN2003.

Tani që jeni lidhur, gjëja tjetër është ta përdorni një shembull në Arduino IDE, të cilin mund ta përdorni si është për të eksperimentuar ose modifikuar sipas dëshirës tuaj. Në këtë shembull, të gjitha tabelat e fazave janë komentuar, si // përpara rreshtit, ju e dini... Nëse dëshironi të përdorni njërën prej tyre, thjesht fshini // përpara udhëzimeve.

//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));
}


Bëhu i pari që komenton

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.