Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Umfassende Bipolar-Schrittmotor-Bibliothek für Arduino

Komponenten und Materialien

Arduino UNO × 1
Texas Instruments L293D Dual H-Brücke Treiber × 1

Software

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).

Umfassende Bipolar-Schrittmotor-Bibliothek für Arduino

Installation

Den Ordner bi_polar_Stepper in das Arduino-Bibliotheken-Verzeichnis kopieren (z. B. C:\arduino-1.6.7\libraries).

Bibliotheksfunktionen im Überblick

  1. bi_polar_Stepper(int pin1, int pin2, int pin3, int pin4) – Instanz erzeugen mit den 4 Treiberpins.
  2. set_step_per_rev(int steps) – Schritte pro Umdrehung festlegen (z. B. 200 bei 1,8° Schrittwinkel).
  3. set_RPM(int rpm) – Drehzahl in RPM einstellen (bis 95 % Genauigkeit).
  4. rotate_CW() – Continuous Clockwise-Drehung (in Loop aufrufen).
  5. rotate_CCW() – Continuous Counter-Clockwise-Drehung.
  6. rotate(int dir) – Einzelschritt in Richtung dir (1 = CW, 0 = CCW).
  7. rotate_one_rev(int dir) – Exakt eine Umdrehung in Richtung dir.
  8. rotate_n_rev(int dir, int num) – num Umdrehungen in Richtung dir.
  9. rotate_x_deg(int deg) – Drehung auf Winkel deg (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

Umfassende Bipolar-Schrittmotor-Bibliothek für Arduino

Herstellungsprozess

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