#include <Stepper.h>
const int STEPS = 200; // Anzahl der Schritte pro Umdrehung des Schrittmotors
const int STEPPER_PIN1 = 11; // Ändere die Pin-Nummern entsprechend deiner Verkabelung
const int STEPPER_PIN2 = 12;
const int STEPPER_PIN3 = 13;
const int STEPPER_PIN4 = 14;
const int BUTTON_PIN_FORWARD = 4; // Pin-Nummer für Vorwärts-Button
const int BUTTON_PIN_BACKWARD = 5; // Pin-Nummer für Vorwärts-Button
Stepper stepper(STEPS, STEPPER_PIN1, STEPPER_PIN2, STEPPER_PIN3, STEPPER_PIN4);
int buttonStateForward = 0;
int lastButtonStateForward = 0;
int buttonStateBackward = 0;
int lastButtonStateBackward = 0;
bool motorRunning = false;
void setup() {
Serial.begin(9600);
pinMode(BUTTON_PIN_FORWARD, INPUT_PULLUP);
pinMode(BUTTON_PIN_BACKWARD, INPUT_PULLUP);
stepper.setSpeed(60); // Setze die Schrittmotor-Geschwindigkeit (anpassen nach Bedarf)
}
void loop() {
buttonStateForward = digitalRead(BUTTON_PIN_FORWARD);
buttonStateBackward = digitalRead(BUTTON_PIN_BACKWARD);
if (buttonStateForward == LOW && lastButtonStateForward == HIGH) {
// Wenn der Vorwärts-Button gedrückt wird und zuvor nicht gedrückt war
if (!motorRunning) {
// Starte den Schrittmotor und drehe ihn um 360 Grad vorwärts
int desiredSteps = 800; // Anzahl der Schritte für 360 Grad (basierend auf 200 Schritten pro Umdrehung)
for (int i = 0; i < desiredSteps; i++) {
stepper.step(1); // Einen Schritt vorwärts
delay(10); // Verzögerung für die Geschwindigkeit des Drehens
}
motorRunning = true;
Serial.println("Schrittmotor hat sich um 360 Grad vorwärts gedreht.");
}
} else if (buttonStateBackward == LOW && lastButtonStateBackward == HIGH) {
// Wenn der Vorwärtsts-Button gedrückt wird und zuvor nicht gedrückt war
if (!motorRunning) {
// Starte den Schrittmotor und drehe ihn um 200 Schritte rückwärts (entspricht 90 Grad)
int desiredSteps = 200; // Anzahl der Schritte für 90 Grad Vorwärts
for (int i = 0; i < desiredSteps; i++) {
stepper.step(-1); // Einen Schritt Vorwärts
delay(10); // Verzögerung für die Geschwindigkeit des Drehens
}
motorRunning = true;
Serial.println("Schrittmotor hat sich um 90 Grad Vorwärts gedreht.");
}
} else {
motorRunning = false; // Stelle sicher, dass der Motor gestoppt ist, wenn keine Taste gedrückt wird
}
lastButtonStateForward = buttonStateForward;
lastButtonStateBackward = buttonStateBackward;
}