// Bibliothek für Schrittmotorsteuerung
#include <AccelStepper.h>
// Konstanten für Schrittmotor-Pins
#define STEP_PIN 2
#define DIR_PIN 3
// Konstanten für Endschalter-Pins
#define END_SWITCH_1 4
#define END_SWITCH_2 5
// Konstanten für Schalter-Pins
#define SWITCH_DIR_1 6
#define SWITCH_DIR_2 7
// Definiere Schrittmotor-Objekt
AccelStepper stepper(1, STEP_PIN, DIR_PIN);
void setup() {
// Setze die Pins für Schrittmotor als Ausgänge
pinMode(STEP_PIN, OUTPUT);
pinMode(DIR_PIN, OUTPUT);
// Setze die Pins für Endschalter als Eingänge mit Pull-up-Widerstand
pinMode(END_SWITCH_1, INPUT_PULLUP);
pinMode(END_SWITCH_2, INPUT_PULLUP);
// Setze die Pins für Schalter als Eingänge mit Pull-up-Widerstand
pinMode(SWITCH_DIR_1, INPUT_PULLUP);
pinMode(SWITCH_DIR_2, INPUT_PULLUP);
// Setze die Standardrichtung des Schrittmotors
stepper.setAcceleration(500); // Beschleunigung in Schritten pro Sekunde^2
stepper.setMaxSpeed(1000); // Maximale Geschwindigkeit in Schritten pro Sekunde
}
void loop() {
// Überprüfe den Schalter für Richtung 1 und bewege den Motor in diese Richtung
if (digitalRead(SWITCH_DIR_1) == LOW && digitalRead(END_SWITCH_1) == HIGH) {
stepper.moveTo(10000); // Setze Zielposition (Anpassen nach Bedarf)
stepper.setSpeed(500); // Setze Geschwindigkeit (Anpassen nach Bedarf)
stepper.runToPosition(); // Führe Bewegung bis zur Zielposition aus
}
// Überprüfe den Schalter für Richtung 2 und bewege den Motor in diese Richtung
if (digitalRead(SWITCH_DIR_2) == LOW && digitalRead(END_SWITCH_2) == HIGH) {
stepper.moveTo(-10000); // Setze Zielposition (Anpassen nach Bedarf)
stepper.setSpeed(500); // Setze Geschwindigkeit (Anpassen nach Bedarf)
stepper.runToPosition(); // Führe Bewegung bis zur Zielposition aus
}
}