#include <Stepper.h>
// Define pin numbers for stepper motors
#define stepper1StepPin 2
#define stepper1DirPin 3
#define stepper2StepPin 4
#define stepper2DirPin 5
// Define pin number for button and green light
#define buttonPin 6
#define greenLightPin 13
// Define constants for stepper motors
#define STEPS_PER_REVOLUTION 200 // Change this value based on your stepper motor specifications
// Define stepper motor objects
Stepper stepper1(STEPS_PER_REVOLUTION, stepper1StepPin, stepper1DirPin);
Stepper stepper2(STEPS_PER_REVOLUTION, stepper2StepPin, stepper2DirPin);
void setup() {
// Set up button pin and green light pin
pinMode(buttonPin, INPUT_PULLUP);
pinMode(greenLightPin, OUTPUT);
}
void loop() {
// Turn stepper1 clockwise continuously until Button#1 is pressed
while (digitalRead(buttonPin) == HIGH) {
stepper1.step(1); // Rotate stepper1 one step clockwise
delay(10); // Adjust delay for desired speed
}
// When Button#1 is pressed, turn on GreenLight#1
digitalWrite(greenLightPin, HIGH);
// Delay for 1 second
delay(1000);
// Make stepper1 turn counterclockwise continuously for 3 seconds
unsigned long startTime = millis();
while (millis() - startTime < 3000) {
stepper1.step(-1); // Rotate stepper1 one step counterclockwise
delay(10); // Adjust delay for desired speed
}
// Make stepper2 turn clockwise continuously for 4 seconds
startTime = millis();
while (millis() - startTime < 4000) {
stepper2.step(1); // Rotate stepper2 one step clockwise
delay(10); // Adjust delay for desired speed
}
// Make stepper1 turn clockwise continuously for 2.5 seconds
startTime = millis();
while (millis() - startTime < 2500) {
stepper1.step(1); // Rotate stepper1 one step clockwise
delay(10); // Adjust delay for desired speed
}
// Turn off GreenLight#1
digitalWrite(greenLightPin, LOW);
// Make stepper1 turn counterclockwise continuously for 2.5 seconds
startTime = millis();
while (millis() - startTime < 2500) {
stepper1.step(-1); // Rotate stepper1 one step counterclockwise
delay(10); // Adjust delay for desired speed
}
// Make stepper2 turn counterclockwise continuously for 4 seconds
startTime = millis();
while (millis() - startTime < 4000) {
stepper2.step(-1); // Rotate stepper2 one step counterclockwise
delay(10); // Adjust delay for desired speed
}
}