Same issue as my earlier post, how to delay each motor individually in the same loop.
See my attachment/code written for this program. Program works as designed. I just need help delaying each one individually.
Ive read the replies to my earlier post but like i said im new to C language and code. Trying hard to learn.
Thank everyone for the support.
#include <AccelStepper.h>
int motorSpeed = 500; //maximum steps per second (about 3rps / at 16 microsteps)
int motorAccel = 300; //steps/second/second to accelerate
int SWilson = 500;
int count = 0;
int motorDirPin1 = 3; //digital pin 3
int motorStepPin1 = 2; //digital pin 2
int motorDirPin2 = 7;
int motorStepPin2 = 6;
int motorDirPin3 = 11;
int motorStepPin3 = 10;
//set up the accelStepper intance
//the "1" tells it we are using a driver
AccelStepper stepper1(1, motorStepPin1, motorDirPin1);
AccelStepper stepper2(1, motorStepPin2, motorDirPin2);
AccelStepper stepper3(1, motorStepPin3, motorDirPin3);
void setup(){
stepper1.setMaxSpeed(motorSpeed);
stepper1.setSpeed(motorSpeed);
stepper1.setAcceleration(motorAccel);
stepper2.setMaxSpeed(motorSpeed);
stepper2.setSpeed(motorSpeed);
stepper2.setAcceleration(motorAccel);
stepper3.setMaxSpeed(motorSpeed);
stepper3.setSpeed(motorSpeed);
stepper3.setAcceleration(motorAccel);
pinMode(4, OUTPUT); // Optical Switch for Driver 1
pinMode(4, HIGH);
pinMode(8, OUTPUT); // Optical Switch for Driver 2
pinMode(8, HIGH);
pinMode(12, OUTPUT); // Optical Switch for Driver 3
pinMode(12, HIGH);
pinMode(5, OUTPUT); // Enable, stop energizing
pinMode(9, OUTPUT);
pinMode(13, OUTPUT);
}
void loop()
{
if(count < SWilson){
//STEPPER 1
stepper1.runToNewPosition(0);
stepper2.runToNewPosition(0);
stepper3.runToNewPosition(0);
digitalWrite(4, HIGH); // optical switch for driver
digitalWrite(8, HIGH);
digitalWrite(12, HIGH);
delay(500);
digitalWrite(5, LOW); // stop energizing
digitalWrite(9, LOW);
digitalWrite(13, LOW);
delay(900000); // 15 minutes 900000 OFF
digitalWrite(5, HIGH); // begin energizing
digitalWrite(9, HIGH);
digitalWrite(13, HIGH);
stepper1.runToNewPosition(20);
stepper2.runToNewPosition(140);
stepper3.runToNewPosition(140);
delay(500);
digitalWrite(5, LOW); // stop energizing
digitalWrite(9, LOW);
digitalWrite(13, LOW);
delay(1800000); // 15 minutes 900000 HIGH
digitalWrite(5, HIGH); // begin energizing
digitalWrite(9, HIGH);
digitalWrite(13, HIGH);
stepper1.runToNewPosition(175);
stepper2.runToNewPosition(0);
stepper3.runToNewPosition(0);
delay(500);
digitalWrite(5, LOW); // stop energizing
digitalWrite(9, LOW);
digitalWrite(13, LOW);
delay(900000); // 15 minutes 900000 LOW
digitalWrite(5, HIGH); // begin energizing
digitalWrite(9, HIGH);
digitalWrite(13, HIGH);
count++; //add (1) to our count
}
}
New_Drivers_2.ino (2.73 KB)