28BYJ-48: allt du behöver veta om den här stegmotorn

28BYJ-48 stegmotor

En av de Den mest populära stegmotorn är 28BYJ-48. Efter artikeln som publicerades i den här bloggen borde du redan veta allt du behöver om den här typen av motor av precision där du kan styra svängen så att den går långsamt eller förblir statisk i en position du vill ha. Det gör att de kan ha en mängd applikationer, från industriell till robotik, genom många andra som du kan tänka dig.

28BYJ-48 är en liten stegmotor av unipolär typ, och lätt att integrera med Arduino, eftersom den har en drivrutin / styrenhetsmodell ULN2003A som vanligtvis ingår i den. Allt till ett mycket billigt pris och en ganska kompakt storlek. Dessa funktioner gör det också perfekt att börja träna med dessa enheter.

28BYJ-48 Funktioner

28BYJ-48

Motorn 28BYJ-498 Det är en stegmotor som har följande egenskaper:

  • Tipo: stegmotor eller unipolär stegmotor
  • faser: 4 (fullsteg), eftersom det finns 4 spolar inuti.
  • Resistens: 50 Ω.
  • Motormoment: 34 N / m, det vill säga om Newton per meter överförs till Kg, skulle det vara en kraft motsvarande att sätta cirka 0.34 kg per cm på dess axel. Nog att lyfta med en remskiva drygt ett kvarts kilo.
  • konsumtion: 55 mA
  • Steg per varv: 8 av halvstegstypen (45º vardera)
  • Integrerad växellåda: ja, 1/64, så det delar upp varje steg i 64 mindre för större precision, därför når det 512 steg om 0.7 ° vardera. Eller så kan det också ses som 256 hela steg per varv (hela steg).

Hela eller halvsteg, eller hela och halvsteg, är de lägen du kan arbeta i. Om du kommer ihåg sa jag i artikeln om stegmotorer att kodexemplet för Arduino IDE fungerade med fullt vridmoment.

För mer information kan du ladda ner ditt databladSom till exempel detta. När det gäller pinout behöver du inte oroa dig för mycket, även om du också kan se information i databladet för den modell du har köpt. Men den här betongen har en anslutning som gör att du kan ansluta alla kablar på en gång, utan att oroa dig för polarisering eller vart var och en går, bara sätt i styrenheten och voila ...

ULN2003-moduldrivrutin

När det gäller motorstyrenheten eller föraren som ingår i denna 28BYJ-48-motor har du ULN2003A, en av de mest populära och som du enkelt kan använda med Arduino. Den har en rad Darlington-transistorer som stöder upp till 500 mA och har anslutningsstift för att länka de 4 spolarna med stiften på Arduino-kortet numrerat från IN1 till IN4, som du såg i artikeln om stegmotor som jag nämnde tidigare. Från Arduino kan du ha ledningar från stift 5v och GND till de två stiften på drivrutinsmodulkortet märkta - + (5-12v) för att driva kortet och stegmotorn.

ULN2003A chip pinout och krets

Förresten, med Darlington-transistorer Det är tillåtet att använda ett par bipolära transistorer placerade tillsammans och fungera som en enda transistor. Detta ökar signifikant förstärkningen av signalen i den resulterande enskilda '' transistorn '' och möjliggör också högre ström och spänning.

El Darlington-par, eftersom den enda "transistorn" bildad av kombinationen av två bipolära transistorer är känd. Det härstammar från Bell Labs 1952 av Sidney Darlington, därav dess namn. Dessa transistorer är anslutna på ett sådant sätt att en NPN har sin kollektor ansluten till kollektorn för den andra NPN-transistorn. Medan emittenten av den första går till basen av den andra. Det vill säga den resulterande transistorn eller paret har tre anslutningar som en enda transistor. Basen på den första transistorn och kollektorn / emittern på den andra transistorn ...

Var man kan köpa motorn

28BYJ-48 motorpaket

mycket hittar du i många butiker specialiserat på elektronik, och även online som Amazon. Du kan till exempel köpa dem på:

  • För cirka 6 € kan du få en 28BYJ-48 motor med förarmodul.
  • Inga produkter hittade. och kablar för dess anslutningar, om du behöver mer än en motor för roboten eller projektet du gör ...

Programmering av 28BYJ-48 med Arduino

Arduino med stegmotor och styrenhet

Först och främst borde du göra det vara tydlig med begreppen stegmotor, så jag rekommenderar dig läs Hwlibres artikel om dessa artiklar. Dessa motorer är inte konstruerade för att matas kontinuerligt, utan för att polarisera dem i sina olika faser så att de bara avancerar de grader vi vill ha. För att excitera faserna och kontrollera axelns rotation måste du mata varje anslutning ordentligt.

Tillverkaren rekommenderar att man kör två spolar åt gången.

  • För att få det att fungera vid maximalt vridmoment, med den snabbaste hastigheten och maximal förbrukningen, kan du använda den här tabellen:
Steg Spole A Spole B Spole C Spole D.
1 HÖG HÖG LÅG LÅG
2 LÅG HÖG HÖG LÅG
3 LÅG LÅG HÖG HÖG
4 HÖG LÅG LÅG HÖG
  • Att bara väcka en spole åt gången och få den att fungera i vågläge (även för hälften, men låg konsumtion), kan du använda följande tabell:
Steg Spole A Spole B Spole C Spole D.
1 HÖG LÅG LÅG LÅG
2 LÅG HÖG LÅG LÅG
3 LÅG LÅG HÖG LÅG
4 LÅG LÅG LÅG HÖG
  • Eller för framsteg halva stegkan du använda detta för att uppnå större svängprecision i kortare steg:
Steg Spole A Spole B Spole C Spole D.
1 HÖG LÅG LÅG LÅG
2 HÖG HÖG LÅG LÅG
3 LÅG HÖG LÅG LÅG
4 LÅG HÖG HÖG LÅG
5 LÅG LÅG HÖG LÅG
6 LÅG LÅG HÖG HÖG
7 LÅG LÅG LÅG HÖG
8 LÅG LÅG LÅG HÖG

Och du kanske tänker ... vad har detta att göra med Arduino-programmering? Sanningen är så mycket, sedan du kan skapa en matris eller matris med värdena i Arduino IDE så att motorn rör sig som du vill, och sedan använda nämnda array i en slinga eller när du behöver det ... Med hänsyn till att LOW = 0 och HIGH = 1, det vill säga frånvaro av spänning eller högspänning, kan du skapa signalerna som Arduino måste skickas till styrenheten för att driva motorn. Om du till exempel tar medelsteg kan du använda koden för matrisen:

int Paso [ 8 ][ 4 ] = 
     {  {1, 0, 0, 0}, 
        {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} };

Det vill säga för den fullständiga koden för skissen Från Arduino IDE kan du använda detta grundläggande exempel för att testa hur 28BYJ-48 stegmotorn fungerar. Med den kan du rotera motoraxeln när du har anslutit hela diagrammet ordentligt. Försök att ändra värdena eller ändra koden för den applikation som du behöver i ditt fall:

// Definir pines conectados a las bobinas del driver
#define IN1  8
#define IN2  9
#define IN3  10
#define IN4  11

// Secuencia de pasos a par máximo del motor. Realmente es una matriz que representa la tabla del unipolar que he mostrado antes
int paso [4][4] =
{
  {1, 1, 0, 0},
  {0, 1, 1, 0},
  {0, 0, 1, 1},
  {1, 0, 0, 1}
};

void setup()
{
  // Todos los pines se configuran como salida, ya que el motor no enviará señal a Arduino
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}

// Bucle para hacerlo girar
void loop()
{ 
    for (int i = 0; i < 4; i++)
    {
      digitalWrite(IN1, paso[i][0]);
      digitalWrite(IN2, paso[i][1]);
      digitalWrite(IN3, paso[i][2]);
      digitalWrite(IN4, paso[i][3]);
      delay(10);
    }
}

Som du kan se, i det här fallet skulle det fungera med maximalt vridmoment som aktiverar spolarna två och två ...


Bli först att kommentera

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.