#include #include "DRV8825.h" #define MOTOR_STEPS 400 #define RPM_X 240 #define RPM_Y 240 #define DIR_Y 7 #define STEP_Y 4 #define DIR_X 5 #define STEP_X 2 #define ENABLE 8 #define MOTOR_ACCEL 2000 #define MOTOR_DECEL 2000 #define MODE0 11 #define MODE01 9 #define MODE1 12 #define MODE2 13 DRV8825 stepperX(MOTOR_STEPS, DIR_X, STEP_X, ENABLE, MODE01, MODE1, MODE2); DRV8825 stepperY(MOTOR_STEPS, DIR_Y, STEP_Y, ENABLE, MODE0, MODE1, MODE2); char s=0; float x; float y; String X; String Y; void setup() { Serial.begin(9600); Serial.println("Ready"); stepperX.begin(RPM_X, 1); stepperX.enable(); stepperY.begin(RPM_Y, 1); stepperY.enable(); stepperX.setSpeedProfile(stepperX.LINEAR_SPEED, MOTOR_ACCEL, MOTOR_DECEL); stepperY.setSpeedProfile(stepperY.LINEAR_SPEED, MOTOR_ACCEL, MOTOR_DECEL); stepperX.setMicrostep(1); stepperY.setMicrostep(1); } void loop() { if (s==0) { Serial.print("Enter X value: " ); s++; } if (Serial.available()>0 && s == 1) { X = Serial.readString(); x = X.toFloat(); Serial.println(x); s++; } if (s==2) { Serial.print("Enter Y value: "); s++; } if (Serial.available()>0 && s == 3) { Y = Serial.readString(); y = Y.toFloat(); Serial.println(y); s++; } if (s==4) { //stepperX.rotate(x); stepperX.move((double)x); delay(10); // stepperY.rotate(y); stepperY.move((double)y); delay(10); s=0; x = 0; y = 0; X = ""; Y = ""; } }