Arduino Uno controlling motor
2026-01-03


#include <Servo.h>
#include <AccelStepper.h>
// Define stepper driver interface and pins (Driver mode: 1 = Step/DIR)
#define STEP_PIN 2
#define DIR_PIN 5
AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN);
// Define servo object and pin
Servo myServo;
#define SERVO_PIN 9
void setup() {
Serial.begin(115200);
// Initialize the servo
myServo.attach(SERVO_PIN);
myServo.write(90); // Start at 90 degrees
// Configure stepper motor parameters
stepper.setMaxSpeed(1000.0);
stepper.setAcceleration(500.0);
stepper.moveTo(1600); // Move 1600 steps
}
void loop() {
// 1. Non-blocking AccelStepper update (must be called frequently)
stepper.run();
// 2. Check if the stepper reached its target and reverse direction
if (stepper.distanceToGo() == 0) {
// Reverse target position
stepper.moveTo(-stepper.currentPosition());
// Sweep the servo to a new angle (e.g., alternate between 0 and 180)
int currentAngle = myServo.read();
Serial.println(currentAngle);
if (currentAngle == 0) {
myServo.write(90);
} else if (currentAngle == 90) {
myServo.write(180);
} else if (currentAngle == 180) {
myServo.write(270);
} else{
myServo.write(0);
}
}
}
