/* Small Stepper Motor and Driver http://arduino-direct.com/sunshop/index.php?l=product_detail&p=126 terry@yourduino.com */ /*-----( Import needed libraries )-----*/ #include /*-----( Declare Constants, Pin Numbers )-----*/ #define STEPS 32 //Number of steps per revolution //#define STEPSSIDE 200 //number steps side motor /*-----( Declare objects )-----*/ // create an instance of the stepper class, specifying // the number of steps of the motor and the pins it's // attached to //The pin connections need to be 4 pins connected // to Motor Driver In1, In2, In3, In4 and then the pins entered // here in the sequence 1-3-2-4 for proper sequencing Stepper small_stepperV(STEPS, 4, 6, 5, 7); Stepper small_stepperH(STEPS, 2, 12, 3, 13); //Stepper small_stepperR(STEPSSIDE, 8, 10, 9, 11); /*-----( Declare Variables )-----*/ void setup() /*----( SETUP: RUNS ONCE )----*/ { // set the speed of the motor small_stepperH.setSpeed(700); small_stepperV.setSpeed(700); pinMode(8, OUTPUT); pinMode(9, OUTPUT); digitalWrite(8, LOW); digitalWrite(9, LOW); // initialize serial communication: Serial.begin(9600); }/*--(end setup )---*/ void loop() /*----( LOOP: RUNS CONSTANTLY )----*/ { if (Serial.available() > 0) { int inByte = Serial.read(); switch (inByte) { case 'c': // small_stepperR.step(-150); // delay(1000); // small_stepperR.step(150); // delay(2000); digitalWrite(8, LOW); for (int microsteps = 1; microsteps < 1400; microsteps++) { digitalWrite(9, HIGH); delay(1); digitalWrite(9, LOW); delay(1); } delay(1000); digitalWrite(8, HIGH); for (int microsteps = 1; microsteps < 1400; microsteps++) { digitalWrite(9, HIGH); delay(1); digitalWrite(9, LOW); delay(1); } break; case 'r': Serial.println("RIGHT!"); small_stepperH.step(500); delay(200); break; case 'p': Serial.println("LONG LEFT"); small_stepperH.step(-10000); delay(200); break; case 'l': Serial.println("LEFT!"); small_stepperH.step(-500); delay(200); break; case 'u': Serial.println("UP"); small_stepperV.step(500); delay(200); break; case 'd': Serial.println("DOWN"); small_stepperV.step(-500); delay(200); break; case '1': Serial.println("1"); small_stepperH.step(700); //right small_stepperV.step(3100); //up small_stepperH.step(500); //right small_stepperV.step(-3070); //down small_stepperH.step(-1000); //left small_stepperH.step(1700); //right delay(200); break; case '2': Serial.println("2"); small_stepperV.step(2000); //up small_stepperH.step(1400); //right small_stepperV.step(600); //up small_stepperH.step(-1750); //left small_stepperV.step(500); //up small_stepperH.step(2200); //right small_stepperV.step(-1950); //down small_stepperH.step(-1600); //left small_stepperV.step(-600); //down small_stepperH.step(1600); //right small_stepperV.step(-500); //down small_stepperH.step(-2200); //left small_stepperH.step(2200); //right delay(200); break; case '3': Serial.println("3"); small_stepperH.step(2000); //right small_stepperV.step(3100); //up small_stepperH.step(-2250); //left small_stepperV.step(-950); //down small_stepperH.step(1700); //right small_stepperV.step(-500); //down small_stepperH.step(-1650); //left small_stepperV.step(-550); //down small_stepperH.step(1650); //right small_stepperV.step(-550); //down small_stepperH.step(-1700); //left small_stepperV.step(-550); //down small_stepperH.step(2150); //right delay(200); break; case '4': Serial.println("4"); small_stepperH.step(1800); //right small_stepperV.step(3100); //up small_stepperH.step(-950); //left small_stepperV.step(-1500); //down small_stepperH.step(-650); //left small_stepperV.step(1500); //up small_stepperH.step(-600); //left small_stepperV.step(-1950); //down small_stepperH.step(1600); //right small_stepperV.step(-1130); //down small_stepperH.step(630); //right delay(200); break; case '5': Serial.println("5"); small_stepperV.step(1000); //up small_stepperH.step(1300); //right small_stepperV.step(600); //up small_stepperH.step(-1700); //left small_stepperV.step(1500); //up small_stepperH.step(2100); //right small_stepperV.step(-950); //down small_stepperH.step(-1700); //left small_stepperV.step(-650); //down small_stepperH.step(1700); //right small_stepperV.step(-1450); //down small_stepperH.step(-2200); //left small_stepperH.step(2200); //right delay(200); break; case '6': Serial.println("6"); small_stepperV.step(3100); //up small_stepperH.step(1750); //right small_stepperV.step(-950); //down small_stepperH.step(-1650); //left small_stepperV.step(-700); //down small_stepperH.step(1650); //right small_stepperV.step(-1450); //down small_stepperH.step(-2200); //left small_stepperH.step(950); //right small_stepperV.step(1500); //up small_stepperH.step(800); //right small_stepperV.step(-1000); //down small_stepperH.step(-1150); //left small_stepperV.step(-480); //down small_stepperH.step(1650); //right delay(200); break; case '7': Serial.println("7"); small_stepperH.step(1250); //right small_stepperV.step(2600); //up small_stepperH.step(-1100); //left small_stepperV.step(-1200); //down small_stepperH.step(-600); //left small_stepperV.step(1670); //up small_stepperH.step(2200); //right small_stepperV.step(-3020); //down small_stepperH.step(-900); //left small_stepperH.step(1000); //right delay(200); break; case '8': Serial.println("8"); small_stepperV.step(3100); //up small_stepperH.step(1750); //right small_stepperV.step(-950); //down small_stepperH.step(-1650); //left small_stepperV.step(-700); //down small_stepperH.step(1150); //right small_stepperV.step(1200); //up small_stepperH.step(470); //right small_stepperV.step(-2600); //down small_stepperH.step(-2200); //left small_stepperH.step(950); //right small_stepperV.step(1500); //up small_stepperH.step(800); //right small_stepperV.step(-1000); //down small_stepperH.step(-1160); //left small_stepperV.step(-500); //down small_stepperH.step(1700); //right delay(200); break; case '9': Serial.println("9"); small_stepperH.step(1250); //right small_stepperV.step(2650); //up small_stepperH.step(-1100); //left small_stepperV.step(-1200); //down small_stepperH.step(1050); //right small_stepperV.step(-450); //down small_stepperH.step(-1550); //left small_stepperV.step(2050); //up small_stepperH.step(2150); //right small_stepperV.step(-3050); //down small_stepperH.step(-900); //left small_stepperH.step(1000); //right delay(200); break; case '0': Serial.println("0"); small_stepperV.step(3100); //up small_stepperH.step(1850); //right small_stepperV.step(-3050); //down small_stepperH.step(-2200); //left small_stepperH.step(800); //right small_stepperV.step(2500); //up small_stepperH.step(850); //right small_stepperV.step(-2000); //down small_stepperH.step(-1200); //left small_stepperV.step(-530); //down small_stepperH.step(1850); //right delay(200); break; }}}