#include <Stepper.h>
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
// for your motor
const byte stepPin1 = 9; // Step pin of motor 1
const byte dirPin1 = 8; // Dir pin of motor 1
Stepper motor1(stepsPerRevolution, stepPin1, dirPin1); // Step Pin, Dir Pin
// ==== Speed Control
int currentSpeed = 60; // Variable to store current Speed
int prevSpeed = prevSpeed; // Variable to store previous speed
const int minSpeed = 40; // Minimum speed to run motor
const int maxSpeed = 400; // Maximum adjustable speed
const byte speedPot = A0; // Speed Potentiometer Pin
int stepSize = 2; // step size motor needs to rotate
// ======= Loop Time =========
unsigned long loopTime = 1000UL * 1 * 3; // Time format is 1000 microsecond * 60 seconds * 3 minute
unsigned long cTime = millis() - loopTime; // Variable to loop again on next loop time
void setup() {
// Serial.begin(9600);
// initialize the serial port:
// Settting The Trigger Pins as input
pinMode(speedPot, INPUT); // Set pot pin as input
// Initially set the speed of motor as current speed
motor1.setSpeed(currentSpeed);
}
void loop() {
currentSpeed = map(analogRead(speedPot), 0, 1023, minSpeed, maxSpeed);
if (currentSpeed != prevSpeed) { // Check if current speed adjusted by pot is different than prev speed than change it
prevSpeed = currentSpeed; // Store current speed
motor1.setSpeed(currentSpeed);
}
motor1.step(2); // Move the motor for steps defined above
}