Umfassende Bipolar-Schrittmotor-Bibliothek für Arduino
Komponenten und Materialien
| Arduino UNO | × | 1 |
| Texas Instruments L293D Dual H-Brücke Treiber | × | 1 |
Software
- Arduino IDE
Projektbeschreibung
Diese Bibliothek ermöglicht die präzise Steuerung bipolarer Schrittmotoren (2-Phasen) mit Arduino. Sie bietet 9 Funktionen für Drehrichtung, Geschwindigkeit (RPM), Anzahl Umdrehungen, Winkelpositionierung – alles mit industrieller Genauigkeit (bis 95 % bei RPM, 80–100 % bei Winkel).

Installation
Den Ordner bi_polar_Stepper in das Arduino-Bibliotheken-Verzeichnis kopieren (z. B. C:\arduino-1.6.7\libraries).
Bibliotheksfunktionen im Überblick
bi_polar_Stepper(int pin1, int pin2, int pin3, int pin4)– Instanz erzeugen mit den 4 Treiberpins.set_step_per_rev(int steps)– Schritte pro Umdrehung festlegen (z. B. 200 bei 1,8° Schrittwinkel).set_RPM(int rpm)– Drehzahl in RPM einstellen (bis 95 % Genauigkeit).rotate_CW()– Continuous Clockwise-Drehung (in Loop aufrufen).rotate_CCW()– Continuous Counter-Clockwise-Drehung.rotate(int dir)– Einzelschritt in Richtungdir(1 = CW, 0 = CCW).rotate_one_rev(int dir)– Exakt eine Umdrehung in Richtungdir.rotate_n_rev(int dir, int num)–numUmdrehungen in Richtungdir.rotate_x_deg(int deg)– Drehung auf Winkeldeg(0–360°) in kürzester Richtung.
Beispiele
1. Dauerlauf mit 60 RPM im Uhrzeigersinn
#include <bi_polar_Stepper.h>
#define steps 200
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 60;
void setup() {
Serial.begin(9600);
my_step_motor.set_step_per_rev(steps);
my_step_motor.set_RPM(rpm);
Serial.println("Motor dreht im Uhrzeigersinn");
}
void loop() {
my_step_motor.rotate_CW();
}
2. Abwechselnd 1 Umdrehung CW / CCW bei 30 RPM
#include <bi_polar_Stepper.h>
#define steps 200
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 30;
void setup() {
Serial.begin(9600);
my_step_motor.set_step_per_rev(steps);
my_step_motor.set_RPM(rpm);
}
void loop() {
Serial.println("Motor dreht im Uhrzeigersinn");
my_step_motor.rotate_one_rev(1);
delay(1000);
Serial.println("Motor dreht gegen den Uhrzeigersinn");
my_step_motor.rotate_one_rev(0);
delay(1000);
}
3. 2 Umdrehungen CW @100 RPM, dann 2 Umdrehungen CCW @50 RPM
#include <bi_polar_Stepper.h>
#define steps 200
bi_polar_Stepper my_step_motor(2, 3, 4, 5);
int i;
void setup() {
Serial.begin(9600);
my_step_motor.set_step_per_rev(steps);
}
void loop() {
my_step_motor.set_RPM(100);
for (i = 0; i < 100; i++) my_step_motor.rotate(1);
delay(2000);
my_step_motor.set_RPM(50);
for (i = 0; i < 100; i++) my_step_motor.rotate(0);
delay(2000);
}
4. 4 Umdrehungen CW @20 RPM, 2 Umdrehungen CCW @10 RPM
#include <bi_polar_Stepper.h>
#define steps 200
bi_polar_Stepper my_step_motor(2, 3, 4, 5);
void setup() {
Serial.begin(9600);
my_step_motor.set_step_per_rev(steps);
}
void loop() {
my_step_motor.set_RPM(20);
my_step_motor.rotate_n_rev(1, 4);
delay(2000);
my_step_motor.set_RPM(10);
my_step_motor.rotate_n_rev(0, 2);
delay(2000);
}
5. 90° hin und her @30 RPM
#include <bi_polar_Stepper.h>
#define motor_steps 200
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 30;
void setup() {
Serial.begin(9600);
my_step_motor.set_step_per_rev(motor_steps);
my_step_motor.set_RPM(rpm);
Serial.println("Motor schwenkt 90° hin und her");
}
void loop() {
my_step_motor.rotate_x_deg(90);
delay(2000);
my_step_motor.rotate_x_deg(270); // entspricht -90°
delay(2000);
}
Hinweis: Für Motoren mit höherem Strom/Spannung kann statt L293D der L298 oder vier Darlington-Transistoren (TIP122, TIP142) verwendet werden. Getestet mit 5 V bipolaren Motoren (200 Schritte/Umdrehung, max. 60–100 RPM).
Code (Bibliothek)
Die vollständige Bibliothek (bi_polar_Stepper.h / .cpp) steht zum Download bereit (kein Preview im Editor).
Schaltplan

Herstellungsprozess
- Variabler-Reluktanz-Motoren: Typen, Betrieb und Anwendungen
- Schrittmotoren: Typen, Eigenschaften und praktische Anwendungen
- Integrierte Treiber vereinfachen High-Power-Schrittmotordesign
- Sensor Telemetrie 2.0.1 – Fortschrittliche Temperaturüberwachung mit Azure IoT Hub
- Raspoulette: Solar-betriebenes autonomes Hühnerklappen-System Prototyp
- DIY Autonomer Nerf-Sentry-Geschützturm – Intelligente Nerf Gun mit Schrittmotoren, Kamera und Arduino
- Automatischer Tinder & Bumble Swiper mit Arduino UNO & Schrittmotor
- Servo- vs. Schrittmotoren: Die moderne Grauzone verstehen
- Linearmotoren verstehen: Von elektrischer Energie zur präzisen Linearbewegung
- Servomotoren: Funktionsweise und Bedeutung