Schrittmotor 28BYJ-48: Alles, was Sie wissen müssen

28byj-48 Schrittmotor

El 28BYJ-48 ist ein unipolarer Schrittmotor niedrige Kosten und hohe Präzision, ideal für Elektronikprojekte, für 3D-Drucker, CNC-Maschinen und Robotik. Seine kompakte Größe, der geringe Stromverbrauch und die Benutzerfreundlichkeit machen es zu einer beliebten Wahl für Elektronik-Hobbyisten und Profis.

Darüber hinaus ist neben diesem Motor auch ein Modul mit ULN2003, für Ihre Kontrolle. Auf diese Weise haben wir alles Notwendige, um dieses System vollständig über einen Mikrocontroller oder eine Platine nutzen zu können Arduino oder ähnliches.

Was ist ein Schrittmotor 28BYJ-48?

Innenelektromotor: Stator-Rotor

Un Schrittmotor ist eine Art Elektromotor die sich in kleinen diskreten Winkelschritten bewegt und nicht in einer kontinuierlichen Drehung. Es funktioniert mit einer Reihe von Elektromagneten, die in einer bestimmten Reihenfolge aktiviert werden. Durch die Aktivierung verschiedener Elektromagnete entsteht ein Magnetfeld, das den Rotor des Motors anzieht und ihn Schritt für Schritt rotieren lässt. Die Anzahl der Schritte pro Umdrehung und die Präzision der Bewegung hängen von der spezifischen Motorkonstruktion und der verwendeten Steuersequenz ab.

Bei den Schrittmotoren gibt es zwei Typen:

  • Unipolar- Sie verfügen über einen einzigen Spulensatz und erfordern eine spezielle Steuerung, um den Strom umzukehren und den Motor in beide Richtungen drehen zu lassen.
  • Bipolar- Sie verfügen über zwei Sätze unabhängiger Spulen, sodass sie sich in beide Richtungen drehen können, ohne dass eine spezielle Steuerung erforderlich ist.

Im Fall des 28BYJ-28 handelt es sich um einen unipolaren Typ, wie ich bereits erwähnt habe. Und innerhalb dieser Gruppe zeichnet es sich durch Folgendes aus e:

  • Unipolarer Schrittmotor: einfache Steuerung mit nur 4 Kabeln.
  • Integrierter Reduzierer: bietet hohe Präzision (0.088° pro Schritt) und Drehmoment (3 N·cm).
  • Geringer Stromverbrauch: 83 mA (5-V-Modell) oder 32 mA (12-V-Modell).
  • Lebensmittel: 5V oder 12V (je nach Modell).
  • Wirtschaftlicher Preis: ab 1.2 € pro Einheit, oder etwas mehr, wenn sie ein ULN2003-Modul enthalten.

Da der mögliche Anwendungen, einige davon habe ich bereits erwähnt, aber hier gebe ich Ihnen noch einmal einige Ideen für Ihre Projekte:

  • Steuerung von hydraulischen und pneumatischen Ventilen.
  • Gelenkroboter und Roboterarme.
  • Sensorpositionierung.
  • Drehtische für Scanner.
  • 3D-Drucker.
  • CNC-Maschinen.

Der Schrittmotor funktioniert nicht alleine, er benötigt ein weiteres Element. In diesem Fall, Der 28BYJ-48 wird von einer Platine mit integriertem ULN2003 gesteuert, wodurch der Strom der Arduino-Ausgänge verstärkt werden kann, um die Motorspulen mit Strom zu versorgen. Durch die Aktivierung der Spulen in der richtigen Reihenfolge dreht sich der Motor Schritt für Schritt mit großer Präzision.

Arten von Steuersequenzen und -phasen

Da verschiedene Steuersequenzen für den 28BYJ-48, die häufigsten sind:

  • Vollständige Wellensequenz: Aktiviert alle Spulen gleichzeitig.
  • Halbschrittsequenz: Aktiviert zwei benachbarte Spulen gleichzeitig.
  • Mikroskopische Schrittfolge: Aktiviert jeweils eine Spule.

Mal sehen die Phasen im Detail:

  • Sequenz 1-phasig: In einer 1-Phasen-Sequenz schalten wir jeweils eine einzelne Spule ein. Nimmt man diese Zündsequenz in eine Tabelle, müsste in der Pinbelegung des Motors Folgendes generiert werden:
Schritt A B EIN' B '
1 ON OFF OFF OFF
2 OFF ON OFF OFF
3 OFF OFF ON OFF
4 OFF OFF OFF ON
  • 2-Phasen-Sequenz: Wir schalten in jeder Phase zwei korrelative Spulen ein, sodass das erzeugte Magnetfeld größer ist (41 % mehr), sodass der Motor mehr Drehmoment hat, d. h. wir erhalten mehr Kraft. Als negativer Punkt verdoppeln wir den Energieverbrauch. Was die Tabelle betrifft, wäre es:
Schritt A B EIN' B '
1 ON ON OFF OFF
2 OFF ON ON OFF
3 OFF OFF ON ON
4 ON OFF OFF ON
  • Halbschrittsequenz: Dies ist eine weitere Etappe, die wir sehen werden. Sie können erleben, was Sie am meisten interessiert. Hier schalten wir abwechselnd eine und zwei Spulen ein und erreichen so eine Genauigkeit von einem halben Schritt. Es wird in Anwendungen eingesetzt, bei denen höchste Präzision erforderlich ist. Allerdings kann es zu Problemen kommen, wenn sich die Anwendung an der Drehmomentgrenze befindet. Das Ausdrücken der Sequenz in Tabellenform führt zu:
Halber Schritt A B EIN' 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 mit Arduino

28byj-48 mit Arduino

Das erste, was Sie tun müssen, ist, das richtig anzuschließen Modul und Motor 28byj-48 Um die Verbindung zu unserem Arduino-Board herzustellen, müssen Sie dazu lediglich folgende Verbindungen herstellen:

  • Pin – von ULN2003 zum GND von Arduino.
  • Pin + des ULN2003 an Vcc (5 V oder in anderen Fällen, wenn es sich um einen 12-V-Motor handelt, müsste ein Netzteil mit dieser Spannung verwendet werden) von Arduino.
  • IN1, IN2, IN3 und IN4 des ULN2003 mit den digitalen Eingängen D8, D9, D10 und D11 des Arduino.
  • Schließen Sie den 28byj-48-Motor einfach an den Port des ULN2003-Moduls an.

Nachdem Sie nun verbunden sind, müssen Sie es als Nächstes verwenden ein Beispiel in der Arduino IDE, die Sie unverändert verwenden können, um zu experimentieren oder sie nach Ihren Wünschen zu modifizieren. In diesem Beispiel sind alle Phasentabellen auskommentiert, etwa // vor der Zeile, wissen Sie ... Wenn Sie eine davon verwenden möchten, löschen Sie einfach // vor den Anweisungen.

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


Schreiben Sie den ersten Kommentar

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.