// CNC Shield Stepper  Control Demo
// Superb Tech
// www.youtube.com/superbtech
#define sw1 3
#define sw2 12
const int StepX = 9;
const int DirX = 8;
const int StepY = 5;
const int DirY = 4;
int Z, count_X, count_Y, count_Z = 0;

void setup() {
  Serial.begin(9600);
  pinMode(StepX, OUTPUT);
  pinMode(DirX, OUTPUT);
  pinMode(sw1, INPUT_PULLUP);
  pinMode(sw2, INPUT_PULLUP);
  pinMode(StepY, OUTPUT);
  pinMode(DirY, OUTPUT);
}

void loop() {
  if (digitalRead(sw1) == 0) {
    digitalWrite(DirX, HIGH);

    digitalWrite(StepX, HIGH);
    delayMicroseconds(1500);
    digitalWrite(StepX, LOW);
    delayMicroseconds(1500);
    count_X++;
    Serial.println(count_X);
  }
  else if (digitalRead(sw1) == 1) {
    for (int i = count_Y; i < count_X; i++) {
      digitalWrite(DirY, HIGH);

      digitalWrite(StepY, HIGH);
      delayMicroseconds(1500);
      digitalWrite(StepY, LOW);
      delayMicroseconds(1500);
    }
    count_Y = count_X;
  }
  if (digitalRead(sw2) == 0) {
    digitalWrite(DirX, LOW);
    digitalWrite(StepX, HIGH);
    delayMicroseconds(1500);
    digitalWrite(StepX, LOW);
    delayMicroseconds(1500);
    count_X--;
    Serial.println(count_X);
  }
  else {
    for (int Z = count_Z; Z > count_X; Z--) {
      digitalWrite(DirY, LOW);
      digitalWrite(StepY, HIGH);
      delayMicroseconds(1500);
      digitalWrite(StepY, LOW);
      delayMicroseconds(1500);
    }
    count_Z = count_X;
  }
}

uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
A4988
drv1:ENABLE
drv1:MS1
drv1:MS2
drv1:MS3
drv1:RESET
drv1:SLEEP
drv1:STEP
drv1:DIR
drv1:GND.1
drv1:VDD
drv1:1B
drv1:1A
drv1:2A
drv1:2B
drv1:GND.2
drv1:VMOT
A4988
drv2:ENABLE
drv2:MS1
drv2:MS2
drv2:MS3
drv2:RESET
drv2:SLEEP
drv2:STEP
drv2:DIR
drv2:GND.1
drv2:VDD
drv2:1B
drv2:1A
drv2:2A
drv2:2B
drv2:GND.2
drv2:VMOT
stepper3:A-
stepper3:A+
stepper3:B+
stepper3:B-
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
stepper1:A-
stepper1:A+
stepper1:B+
stepper1:B-
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r