byte directionPin1 = 2; byte directionPin2 = 4; byte directionPin3 = 6; byte directionPin4 = 8; byte directionPin5 = 10; byte directionPin6 = 12; byte stepPin1 = 3; byte stepPin2 = 5; byte stepPin3 = 7; byte stepPin4 = 9; byte stepPin5 = 11; byte stepPin6 = 13; int numberOfSteps = 50; byte ledPin = 14; int pulseWidthMicros = 50; // microseconds int millisbetweenSteps = 10; // milliseconds void setup() { Serial.begin(9600); for (int pins = 1; pins < 13; pins++) { pinMode(pins, OUTPUT); } } void loop() { if (Serial.available() > 0) { int inByte = Serial.read(); switch (inByte) { case 'f': { Serial.println("Starting Stepper Motor 1 CW"); digitalWrite(ledPin, LOW); delay(1); pinMode(directionPin1, OUTPUT); pinMode(stepPin1, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(directionPin1, HIGH); for(int n = 0; n < numberOfSteps; n++) { digitalWrite(stepPin1, HIGH); delayMicroseconds(pulseWidthMicros); digitalWrite(stepPin1, LOW); delay(millisbetweenSteps); digitalWrite(ledPin, !digitalRead(ledPin)); } delay(100); } break; case 'F': { Serial.println("Starting Stepper Motor 1 CCW"); digitalWrite(ledPin, LOW); delay(1); pinMode(directionPin1, OUTPUT); pinMode(stepPin1, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(directionPin1, LOW); for(int n = 0; n < numberOfSteps; n++) { digitalWrite(stepPin1, HIGH); delayMicroseconds(pulseWidthMicros); digitalWrite(stepPin1, LOW); delay(millisbetweenSteps); digitalWrite(ledPin, !digitalRead(ledPin)); } delay(100); } break; case 'r': { Serial.println("Starting Stepper Motor 2 CW"); digitalWrite(ledPin, LOW); delay(1); pinMode(directionPin2, OUTPUT); pinMode(stepPin2, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(directionPin2, HIGH); for(int n = 0; n < numberOfSteps; n++) { digitalWrite(stepPin2, HIGH); delayMicroseconds(pulseWidthMicros); digitalWrite(stepPin2, LOW); delay(millisbetweenSteps); digitalWrite(ledPin, !digitalRead(ledPin)); } delay(100); } break; case 'R': { Serial.println("Starting Stepper Motor 2 CCW"); digitalWrite(ledPin, LOW); delay(1); pinMode(directionPin2, OUTPUT); pinMode(stepPin2, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(directionPin2, LOW); for(int n = 0; n < numberOfSteps; n++) { digitalWrite(stepPin2, HIGH); delayMicroseconds(pulseWidthMicros); digitalWrite(stepPin2, LOW); delay(millisbetweenSteps); digitalWrite(ledPin, !digitalRead(ledPin)); } delay(100); } break; case 'b': { Serial.println("Starting Stepper Motor 3 CW"); digitalWrite(ledPin, LOW); delay(1); pinMode(directionPin3, OUTPUT); pinMode(stepPin3, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(directionPin3, HIGH); for(int n = 0; n < numberOfSteps; n++) { digitalWrite(stepPin3, HIGH); delayMicroseconds(pulseWidthMicros); digitalWrite(stepPin3, LOW); delay(millisbetweenSteps); digitalWrite(ledPin, !digitalRead(ledPin)); } delay(100); } break; case 'B': { Serial.println("Starting Stepper Motor 3 CCW"); digitalWrite(ledPin, LOW); delay(1); pinMode(directionPin3, OUTPUT); pinMode(stepPin3, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(directionPin3, LOW); for(int n = 0; n < numberOfSteps; n++) { digitalWrite(stepPin3, HIGH); delayMicroseconds(pulseWidthMicros); digitalWrite(stepPin3, LOW); delay(millisbetweenSteps); digitalWrite(ledPin, !digitalRead(ledPin)); } delay(100); } break; case 'l': { Serial.println("Starting Stepper Motor 4 CW"); digitalWrite(ledPin, LOW); delay(1); pinMode(directionPin4, OUTPUT); pinMode(stepPin4, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(directionPin4, HIGH); for(int n = 0; n < numberOfSteps; n++) { digitalWrite(stepPin4, HIGH); delayMicroseconds(pulseWidthMicros); digitalWrite(stepPin4, LOW); delay(millisbetweenSteps); digitalWrite(ledPin, !digitalRead(ledPin)); } delay(100); } break; case 'L': { Serial.println("Starting Stepper Motor 4 CCW"); digitalWrite(ledPin, LOW); delay(1); pinMode(directionPin4, OUTPUT); pinMode(stepPin4, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(directionPin4, LOW); for(int n = 0; n < numberOfSteps; n++) { digitalWrite(stepPin4, HIGH); delayMicroseconds(pulseWidthMicros); digitalWrite(stepPin4, LOW); delay(millisbetweenSteps); digitalWrite(ledPin, !digitalRead(ledPin)); } delay(100); } break; case 'u': { Serial.println("Starting Stepper Motor 5 CW"); digitalWrite(ledPin, LOW); delay(1); pinMode(directionPin5, OUTPUT); pinMode(stepPin5, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(directionPin5, HIGH); for(int n = 0; n < numberOfSteps; n++) { digitalWrite(stepPin5, HIGH); delayMicroseconds(pulseWidthMicros); digitalWrite(stepPin5, LOW); delay(millisbetweenSteps); digitalWrite(ledPin, !digitalRead(ledPin)); } delay(100); } break; case 'U': { Serial.println("Starting Stepper Motor 5 CCW"); digitalWrite(ledPin, LOW); delay(1); pinMode(directionPin5, OUTPUT); pinMode(stepPin5, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(directionPin5, LOW); for(int n = 0; n < numberOfSteps; n++) { digitalWrite(stepPin5, HIGH); delayMicroseconds(pulseWidthMicros); digitalWrite(stepPin5, LOW); delay(millisbetweenSteps); digitalWrite(ledPin, !digitalRead(ledPin)); } delay(100); } break; case 'd': { Serial.println("Starting Stepper Motor 6 CW"); digitalWrite(ledPin, LOW); delay(1); pinMode(directionPin6, OUTPUT); pinMode(stepPin6, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(directionPin6, HIGH); for(int n = 0; n < numberOfSteps; n++) { digitalWrite(stepPin6, HIGH); delayMicroseconds(pulseWidthMicros); digitalWrite(stepPin6, LOW); delay(millisbetweenSteps); digitalWrite(ledPin, !digitalRead(ledPin)); } delay(100); } break; case 'D': { Serial.println("Starting Stepper Motor 6 CCW"); digitalWrite(ledPin, LOW); delay(1); pinMode(directionPin6, OUTPUT); pinMode(stepPin6, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(directionPin6, LOW); for(int n = 0; n < numberOfSteps; n++) { digitalWrite(stepPin6, HIGH); delayMicroseconds(pulseWidthMicros); digitalWrite(stepPin6, LOW); delay(millisbetweenSteps); digitalWrite(ledPin, !digitalRead(ledPin)); } delay(100); } break; default: { } break; } } }