#include <AccelStepper.h>
#define DIR_PIN 8
#define STEP_PIN 9
#define SWITCH_PIN 11
#define BUTTON_PIN 10
AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN);
void setup() {
pinMode(SWITCH_PIN, INPUT_PULLUP);
pinMode(BUTTON_PIN, INPUT_PULLUP);
stepper.setMaxSpeed(200); // Setzen Sie die maximale Geschwindigkeit auf 200 U/min
stepper.setAcceleration(50); // Setzen Sie die Beschleunigung
}
void loop() {
// Warten Sie, bis der Taster gedrückt wird
if (digitalRead(BUTTON_PIN) == LOW) {
// Drehen Sie den Motor schnell im Gegenuhrzeigersinn
stepper.moveTo(-10000); // Setzen Sie ein großes negatives Ziel, um den Motor im Gegenuhrzeigersinn zu drehen
stepper.setSpeed(-1000); // Schnelle Geschwindigkeit
while (digitalRead(SWITCH_PIN) == HIGH) {
stepper.run();
}
// Verlangsamen Sie die Geschwindigkeit und stoppen Sie den Motor nach einer halben Umdrehung
stepper.moveTo(stepper.currentPosition() - 100); // Setzen Sie das Ziel auf eine halbe Umdrehung rückwärts
stepper.setSpeed(-100); // Langsamere Geschwindigkeit
while (stepper.distanceToGo() != 0) {
stepper.run();
}
stepper.stop(); // Stoppen Sie den Motor
}
}