Hi all, i am trying to move 2 stepper motors using an Arduino Uno, a CNC shield and two stepstick.
The result i wish to obtain is that sequence:
X motor does 1600 microsteps (clockwise) - then -
Y motor does 88 microsteps (counterclockwise)
and so on for 21 times for the x motor and 20 times for the y motor..
then they might do the same sequence but the Y might move clockwise.
There will be 12 sequences total.
I wrote this code searching on google about something similar, but i really don't know if it does what i want and anyway there is an error: "Function-definition is not allowed here before '{' token"
Here is the code, in the void loop i delated a part of the sequence that is exactly the same repeated 12 times.
#define EN 8
//Direction pin
#define X_DIR 5
#define Y_DIR 6
//Step pin
#define X_STP 2
#define Y_STP 3
//Number of steps for each movement
int Xstps=1600; //X movement
int Ystps=88; //Y movement
int delayTime=200; // microstep delay - speed
void step(boolean dir, byte dirPin, byte stepperPin, int steps)
{
digitalWrite(dirPin, dir);
delay(100);
for (int i = 0; i < steps; i++) {
digitalWrite(stepperPin, HIGH);
delayMicroseconds(delayTime);
digitalWrite(stepperPin, LOW);
delayMicroseconds(delayTime);
}
void setup() {
pinMode(X_DIR, OUTPUT); pinMode(X_STP, OUTPUT);
pinMode(Y_DIR, OUTPUT); pinMode(Y_DIR, OUTPUT);
pinMode(EN, OUTPUT);
digitalWrite(EN, LOW);
}
void loop() {
//Layer 1/12
step(false, X_DIR, X_STP, Xstps); // X clockwise
step(true, Y_DIR, Y_STP, Ystps); // Y counterclockwise
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps); //20 times
step(false, X_DIR, X_STP, Xstps); //21 times
//Layer 2/12
step(false, X_DIR, X_STP, Xstps); // X clockwise
step(false, Y_DIR, Y_STP, Ystps); // Y clockwise
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps); // 20 times
step(false, X_DIR, X_STP, Xstps); //21 times
//Layer 3/12
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(true, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
//Layer 4/12
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
step(false, Y_DIR, Y_STP, Ystps);
step(false, X_DIR, X_STP, Xstps);
}
I hope someone will help me fixing it!
Thank You!