Motore passo-passo

FunduinoUltimo aggiornamento il

2048 Schritte pro Umdrehung – ohne externe Spannungsversorgung

Der 28BYJ-48 eignet sich besonders für kleine Anwendungen am Arduino: Er läuft ohne externe Spannungsversorgung und entwickelt trotzdem ein relativ hohes Drehmoment. Möglich macht das ein Getriebe im Metallgehäuse vor dem eigentlichen Schrittmotor. Dadurch teilt sich eine ganze Umdrehung der Antriebswelle in 2048 Einzelschritte auf. Der Nachteil: Schnell dreht er nicht.

Den Schrittmotor schließt du an eine Motorsteuerungsplatine an. Sie versorgt ihn mit genug Energie, sodass die Leistung nicht über die digitalen Pins des Arduino-Boards laufen muss. Die Platine gibt es in zwei Versionen – die seitlichen Pins ragen entweder nach oben oder nach unten heraus. Die Anschlussbelegung ist bei beiden gleich.

Schrittmotor 28BYJ-48 und ULN2003-Treiberplatine nebeneinander
Schrittmotor 28BYJ-48 mit ULN2003-Treiberplatine

Verkabelung am Arduino

  • IN1 der Motorsteuerplatine an Pin 6
  • IN2 an Pin 5
  • IN3 an Pin 4
  • IN4 an Pin 3
  • GND an einen GND-Pin des Arduino-Boards
  • VCC an den 5V-Pin des Arduino-Boards

Hat deine Motorsteuerplatine die Pins nach unten, kannst du sie auch direkt auf das Mikrocontrollerboard stecken.

Anschlussbelegung der ULN2003-Treiberplatine
Pinout der ULN2003-Treiberplatine
ULN2003-Platine auf dem Arduino aufgesteckt
Treiberplatine direkt auf das Mikrocontrollerboard gesteckt
1 / 2

Der Programmcode

Dieser Beispielcode lässt den Motor abwechselnd um 2048 Schritte vor- und zurückdrehen – das entspricht jeweils einer ganzen Umdrehung.

Eine Umdrehung vor und zurück
#include <Stepper.h> // Hinzufügen der Programmbibliothek.
int SPU = 2048; // Schritte pro Umdrehung.
Stepper Motor(SPU, 3,5,4,6); // Der Schrittmotor erhält die Bezeichnung "Motor", dahinter stehen die Pins, an denen er angeschlossen ist.
void setup() // Hier beginnt das Setup.
{
Motor.setSpeed(5); // Angabe der Geschwindigkeit in Umdrehungen pro Minute.
}
void loop() {
Motor.step(2048); // Der Motor macht 2048 Schritte, das entspricht einer Umdrehung.
delay(1000); // Durch diese Pause bleibt der Motor nach der Drehung eine Sekunde stehen.
Motor.step(-2048); // Durch das Minuszeichen dreht der Motor 2048 Schritte in die andere Richtung.
delay(1000); // Wieder eine Sekunde Pause.
}

Drehung ohne große Schrittmengen

Befehle mit einer großen Schrittmenge – Motor.step(x) – stören in umfangreicheren Sketchen: Während der Ausführung kann der Mikrocontroller keine weiteren Signale empfangen oder senden. Das ist ein ähnliches Problem wie bei langen Delays. Deshalb führst du die Drehbewegung besser in einer Schleife aus.

Ein Beispiel: Der Motor soll sich drehen, bis ein Taster gedrückt wird – etwa als Anhaltefunktion in einer Maschine. Der Motor soll dann sofort stoppen und nicht erst seine Drehbewegung beenden. Mit einer großen Schrittmenge könntest du ihn nicht an einem beliebigen Punkt anhalten, sondern erst, wenn er fertig gedreht hat.

Drehen, bis ein Taster gedrückt wird
#include <Stepper.h>
int SPU = 2048;
Stepper Motor(SPU, 3,5,4,6);
int Taster = 7; // Taster an Pin 7
int Tasterstatus = 0; // Variable für den Status des Tasters
void setup()
{
Motor.setSpeed(4);
pinMode(Taster, INPUT);
}
void loop()
{
Tasterstatus = digitalRead(Taster); // Zunächst wird der Taster abgefragt.
while(Tasterstatus == HIGH) // Solange der Taster gedrückt ist …
 {
 delay(1); // … springt der Sketch in diese Klammer und verbleibt hier.
 Tasterstatus = digitalRead(Taster); // Innerhalb der Schleife muss der Taster immer wieder abgefragt werden, damit der Mikrocontroller eine Änderung erkennt. Nur so lässt sich die Schleife beim Loslassen wieder verlassen.
 } // Ist der Taster nicht mehr gedrückt, springt der Sketch in den regulären Loop zurück.
Motor.step(1); // … drehe den Motor um einen einzigen Schritt.
} // Jetzt beginnt der Sketch von vorn. Solange der Taster nicht gedrückt ist, läuft die while-Schleife nicht und der Motor dreht sich Schritt für Schritt weiter.
Valuta le istruzioni

Commenti

Fare una domanda o condividere un'esperienza

Scrivici se qualcosa non funziona. Indica la tua scheda e il messaggio di errore.

Controlliamo ogni commento prima della pubblicazione. Il tuo indirizzo e-mail rimane presso di noi.