This bulky unnecessary code works, the logical array construct does not and I do not know why?
//// Steppers
#define M0_STEP_PIN 93 //PF13 // MOTOR 0
#define M0_DIR_PIN 92 //PF12
#define M0_ENABLE_PIN 94 //PF14
#define M0_CS_PIN 206 //PC4
#define M1_STEP_PIN 96 //PG0 // MOTOR 1
#define M1_DIR_PIN 97 //PG1
#define M1_ENABLE_PIN 95 //PF15
#define M1_CS_PIN 59 //PD11
#define M2_STEP_PIN 91 //PF11 // MOTOR 2
#define M2_DIR_PIN 99 //PG3
#define M2_ENABLE_PIN 101 //PG5
#define M2_CS_PIN 38 //PC6
#define M3_STEP_PIN 100 //PG4 // MOTOR 3
#define M3_DIR_PIN 203 //203//PC1
#define M3_ENABLE_PIN 192 //192//PA0
#define M3_CS_PIN 39 //PC7
#define M4_STEP_PIN 214 //PF9 // MOTOR 4
#define M4_DIR_PIN 215 //PF10
#define M4_ENABLE_PIN 98 //PG2
#define M4_CS_PIN 82 //PF2
#define M5_STEP_PIN 45 //PC13 // MOTOR 5
#define M5_DIR_PIN 80 //PF0
#define M5_ENABLE_PIN 81 //PF1
#define M5_CS_PIN 68 //PE4
#define M6_STEP_PIN 66 //PE2 // MOTOR 6
#define M6_DIR_PIN 67 //PE3
#define M6_ENABLE_PIN 52 //PD4
#define M6_CS_PIN 65 //PE1
#define M7_STEP_PIN 70 //PE6 // MOTOR 7
#define M7_DIR_PIN 14 //PA14
#define M7_ENABLE_PIN 64 //PE0
#define M7_CS_PIN 51 //PD3
void setup() {
pinMode(M0_STEP_PIN, OUTPUT);
pinMode(M0_DIR_PIN, OUTPUT);
pinMode(M0_ENABLE_PIN, OUTPUT);
pinMode(M0_CS_PIN, OUTPUT);
pinMode(M1_STEP_PIN, OUTPUT);
pinMode(M1_DIR_PIN, OUTPUT);
pinMode(M1_ENABLE_PIN, OUTPUT);
pinMode(M1_CS_PIN, OUTPUT);
pinMode(M2_STEP_PIN, OUTPUT);
pinMode(M2_DIR_PIN, OUTPUT);
pinMode(M2_ENABLE_PIN, OUTPUT);
pinMode(M2_CS_PIN, OUTPUT);
pinMode(M3_STEP_PIN, OUTPUT);
pinMode(M3_DIR_PIN, OUTPUT);
pinMode(M3_ENABLE_PIN, OUTPUT);
pinMode(M3_CS_PIN, OUTPUT);
pinMode(M4_STEP_PIN, OUTPUT);
pinMode(M4_DIR_PIN, OUTPUT);
pinMode(M4_ENABLE_PIN, OUTPUT);
pinMode(M4_CS_PIN, OUTPUT);
pinMode(M5_STEP_PIN, OUTPUT);
pinMode(M5_DIR_PIN, OUTPUT);
pinMode(M5_ENABLE_PIN, OUTPUT);
pinMode(M5_CS_PIN, OUTPUT);
pinMode(M6_STEP_PIN, OUTPUT);
pinMode(M6_DIR_PIN, OUTPUT);
pinMode(M6_ENABLE_PIN, OUTPUT);
pinMode(M6_CS_PIN, OUTPUT);
pinMode(M7_STEP_PIN, OUTPUT);
pinMode(M7_DIR_PIN, OUTPUT);
pinMode(M7_ENABLE_PIN, OUTPUT);
pinMode(M7_CS_PIN, OUTPUT);
}
void step_motor(int iMOTOR, int iDIR, int iSTEPS){
switch (iMOTOR) {
case 0:
digitalWrite(M0_DIR_PIN, iDIR); // Set Direction
digitalWrite(M0_ENABLE_PIN, MOTOR_ENABLE); // Enable Motor For Stepping
break;
case 1:
digitalWrite(M1_DIR_PIN, iDIR); // Set Direction
digitalWrite(M1_ENABLE_PIN, MOTOR_ENABLE); // Enable Motor For Stepping
break;
case 2:
digitalWrite(M2_DIR_PIN, iDIR); // Set Direction
digitalWrite(M2_ENABLE_PIN, MOTOR_ENABLE); // Enable Motor For Stepping
break;
case 3:
digitalWrite(M3_DIR_PIN, iDIR); // Set Direction
digitalWrite(M3_ENABLE_PIN, MOTOR_ENABLE); // Enable Motor For Stepping
break;
case 4:
digitalWrite(M4_DIR_PIN, iDIR); // Set Direction
digitalWrite(M4_ENABLE_PIN, MOTOR_ENABLE); // Enable Motor For Stepping
break;
case 5:
digitalWrite(M5_DIR_PIN, iDIR); // Set Direction
digitalWrite(M5_ENABLE_PIN, MOTOR_ENABLE); // Enable Motor For Stepping
break;
case 6:
digitalWrite(M6_DIR_PIN, iDIR); // Set Direction
digitalWrite(M6_ENABLE_PIN, MOTOR_ENABLE); // Enable Motor For Stepping
break;
case 7:
digitalWrite(M7_DIR_PIN, iDIR); // Set Direction
digitalWrite(M7_ENABLE_PIN, MOTOR_ENABLE); // Enable Motor For Stepping
break;
default:
// statements
break;
}
for (int i = 0; i <= iSTEPS; i++) { // Step iSTEPS
digitalWrite(LED_PIN, HIGH);
switch (iMOTOR) {
case 0:
digitalWrite(M0_STEP_PIN, HIGH);
delayMicroseconds(STEP_TIMER);
digitalWrite(M0_STEP_PIN, LOW);
break;
case 1:
digitalWrite(M1_STEP_PIN, HIGH);
delayMicroseconds(STEP_TIMER);
digitalWrite(M1_STEP_PIN, LOW);
break;
case 2:
digitalWrite(M2_STEP_PIN, HIGH);
delayMicroseconds(STEP_TIMER);
digitalWrite(M2_STEP_PIN, LOW);
break;
case 3:
digitalWrite(M3_STEP_PIN, HIGH);
delayMicroseconds(STEP_TIMER);
digitalWrite(M3_STEP_PIN, LOW);
break;
case 4:
digitalWrite(M4_STEP_PIN, HIGH);
delayMicroseconds(STEP_TIMER);
digitalWrite(M4_STEP_PIN, LOW);
break;
case 5:
digitalWrite(M5_STEP_PIN, HIGH);
delayMicroseconds(STEP_TIMER);
digitalWrite(M5_STEP_PIN, LOW);
break;
case 6:
digitalWrite(M6_STEP_PIN, HIGH);
delayMicroseconds(STEP_TIMER);
digitalWrite(M6_STEP_PIN, LOW);
break;
case 7:
digitalWrite(M7_STEP_PIN, HIGH);
delayMicroseconds(STEP_TIMER);
digitalWrite(M7_STEP_PIN, LOW);
break;
default:
// statements
break;
}
digitalWrite(LED_PIN, LOW);
}
void loop() {
//int iLoops = 100;
if (!digitalRead(E3_DIAG_PIN)){
iSteps_Counter++;
//SerialUSB.print("STEPS: ");
//SerialUSB.println((iSteps_Counter * STEPS_PER_MILLILETER), DEC);
for (int i = 0; i <= 7; i++) {
SerialUSB.print("Motor : ");
SerialUSB.println(i, DEC);
step_motor(i, MOTOR_FORWARD, (STEPS_PER_MILLILETER * 1));//30
}
}
'''