28BYJ-48: alt du trenger å vite om denne trinnmotoren

28BYJ-48 trinnmotor

Ett av Den mest populære trinnmotoren er 28BYJ-48. Etter artikkelen som ble publisert i denne bloggen, bør du allerede vite det alt du trenger om denne typen motorer med presisjon der du kan kontrollere svingen slik at den beveger seg sakte eller forblir statisk i en posisjon du vil ha. Det gjør at de kan ha en rekke applikasjoner, fra industriell, til robotikk, gjennom mange andre du kan tenke deg.

28BYJ-48 er en liten trinnmotor av unipolar type, og enkel å integrere med Arduino, siden den har en driver / kontrollermodul modell ULN2003A som vanligvis er inkludert sammen med den. Alt til en veldig billig pris og en ganske kompakt størrelse. Disse funksjonene gjør det også ideelt å begynne å øve med disse enhetene.

28BYJ-48 Funksjoner

28BYJ-48

Motoren 28BYJ-498 Det er en trinnmotor som har følgende egenskaper:

  • Tipo: trinnmotor eller enpolet trinnmotor
  • fasene: 4 (full trinn), da det er 4 spoler inni.
  • Resistance: 50 Ω.
  • Motormoment: 34 N / m, det vil si hvis Newton per meter blir overført til Kg, ville det være en kraft som tilsvarer å sette ca 0.34 kg per cm på aksen. Nok til å løfte med en trinse litt over et kvart kilo.
  • forbruk: 55 mA
  • Trinn per runde: 8 halvtrinnstype (45º hver)
  • Integrert girkasse: ja, 1/64, så det deler hvert trinn i 64 mindre for større presisjon, derfor når det 512 trinn på 0.7º hver. Eller det kan også sees på som 256 fulle trinn per runde (fullt trinn).

Full eller halv trinn, eller hele og halv trinn, er modusene du kan jobbe med. Hvis du husker, sa jeg i artikkelen om trinnmotorer at kodeeksemplet for Arduino IDE arbeidet med fullt dreiemoment.

For mer informasjon kan du last ned databladetSom for eksempel dette. Når det gjelder pinout, trenger du ikke å bekymre deg for mye, selv om du også kan se informasjon i databladet til modellen du har kjøpt. Men denne betongen har en tilkobling som lar deg koble til alle kablene samtidig, uten å bekymre deg for polarisering eller hvor hver går, bare sett inn i kontrolleren og voila ...

ULN2003 moduldriver

Når det gjelder motorstyringen eller driveren som er inkludert i denne 28BYJ-48-motoren, har du det ULN2003A, en av de mest populære og som du kan bruke med Arduino veldig enkelt. Den har en rekke Darlington-transistorer som støtter opptil 500mA og har tilkoblingspinner for å koble de 4 spolene med pinnene på Arduino-kortet nummerert fra IN1 til IN4, som du så i trinnmotorartikkelen som jeg nevnte ovenfor. Fra Arduino kan du ha ledninger fra pin 5v og GND til de to pinnene på drivermodulkortet merket - + (5-12v) for å drive kortet og trinnmotoren.

ULN2003A chip pinout og krets

Forresten, med Darlington transistorer Det er tillatt å bruke et par bipolare transistorer plassert sammen og fungere som en enkelt transistor. Dette øker signalets forsterkning i den resulterende enkle 'transistoren', og tillater også høyere strøm og spenning.

El Darlington-par, som den eneste "transistoren" dannet av kombinasjonen av to bipolare transistorer er kjent. Den stammer fra Bell Labs i 1952, av Sidney Darlington, derav navnet. Disse transistorer er koblet på en slik måte at en NPN har sin kollektor koblet til samleren til den andre NPN-transistoren. Mens utsteder av den første går til bunnen av den andre. Det vil si at den resulterende transistoren eller paret har tre forbindelser som en enkelt transistor. Basen til den første transistoren og samleren / emitteren til den andre transistoren ...

Hvor å kjøpe motoren

28BYJ-48 motorpakke

den du finner i mange butikker spesialisert seg på elektronikk, og også online som Amazon. Du kan for eksempel kjøpe dem på:

  • For ca € 6 kan du ha en 28BYJ-48 motor med drivermodul.
  • Ingen produkter funnet. og kabler for tilkoblingene, i tilfelle du trenger mer enn en motor til roboten eller prosjektet du gjør ...

Programmering av 28BYJ-48 med Arduino

Arduino med trinnmotor og kontroller

Først av alt, bør du være tydelig med begrepene trinnmotor, så jeg anbefaler deg les Hwlibres artikkel om disse elementene. Disse motorene er ikke designet for å mates kontinuerlig, men for å polarisere dem i sine forskjellige faser, slik at de bare går videre de gradene vi ønsker. For å stimulere fasene og kontrollere rotasjonen av akselen, må du mate hver tilkobling riktig.

Produsenten anbefaler å kjøre 2 spoler om gangen.

  • For å få det til å fungere ved maksimalt dreiemoment, med raskest hastighet og maksimalt forbruk, kan du bruke denne tabellen:
Trinn Spole A Spole B Spole C Spole D
1 HØY HØY LAV LAV
2 LAV HØY HØY LAV
3 LAV LAV HØY HØY
4 HØY LAV LAV HØY
  • Å bare kjøre en spole om gangen, og få den til å fungere i bølgedrivmodus (selv for halvparten, men lite forbruk), kan du bruke følgende tabell:
Trinn Spole A Spole B Spole C Spole D
1 HØY LAV LAV LAV
2 LAV HØY LAV LAV
3 LAV LAV HØY LAV
4 LAV LAV LAV HØY
  • Eller for fremskritt halve trinn, kan du bruke dette for å oppnå større svingpresisjon i kortere trinn:
Trinn Spole A Spole B Spole C Spole D
1 HØY LAV LAV LAV
2 HØY HØY LAV LAV
3 LAV HØY LAV LAV
4 LAV HØY HØY LAV
5 LAV LAV HØY LAV
6 LAV LAV HØY HØY
7 LAV LAV LAV HØY
8 LAV LAV LAV HØY

Og du tenker kanskje ... hva har dette med Arduino-programmering å gjøre? Sannheten er at mye, siden du kan opprette en matrise eller matrise med verdiene i Arduino IDE slik at motoren beveger seg som du ønsker, og deretter bruker nevnte array i en sløyfe eller når du trenger det ... Med tanke på at LOW = 0 og HIGH = 1, det vil si fravær av spenning eller høyspenning, kan du opprette signalene som Arduino du må sende til kontrolleren for å kjøre motoren. For å ta middels trinn kan du for eksempel bruke koden for 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 vil si for den komplette koden til skissen Fra Arduino IDE kan du bruke dette grunnleggende eksemplet til å teste hvordan 28BYJ-48 trinnmotoren fungerer. Med den kan du rotere motorakselen når du har koblet hele diagrammet riktig. Prøv å endre verdiene eller endre koden for applikasjonen du trenger i ditt tilfelle:

// 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 dette tilfellet vil det fungere med maksimalt dreiemoment som aktiverer spolene to og to ...


Bli den første til å kommentere

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.