#include <AccelStepper.h>
// Define stepper motor parameters
const int stepsPerRevolution = 200;
const int stepPin = 3;
const int dirPin = 2;
// Define switch pin
const int switchPin = 5;
// Create a stepper motor object
Stepper stepper(stepsPerRevolution, stepPin, dirPin);
void setup() {
// Initialize serial communication
Serial.begin(9600);
// Set stepper motor speed
stepper.setSpeed(60);
// Set switch pin as input
pinMode(switchPin, INPUT);
}
void loop() {
// Read switch state
int switchState = digitalRead(switchPin);
if (switchState == HIGH) {
Serial.println("Switch on:Rotating clockwise");
// Rotate stepper motor 360 degrees clockwise
stepper.step(stepsPerRevolution);
Serial.println("Rotation complete");
} else {
Serial.println("Switch off:Returning to original position");
// Rotate stepper motor back to original position
stepper.step(-stepsPerRevolution);
Serial.println("Position reset");
}
}