/* Stepper Motor Control - one step at a time This program drives a unipolar or bipolar stepper motor. The motor is attached to digital pins 8 - 11 of the Arduino. The motor will step one step at a time, very slowly. You can use this to test that you've got the four wires of your stepper wired to the correct pins. If wired correctly, all steps should be in the same direction. Use this also to count the number of steps per revolution of your motor, if you don't know it. Then plug that number into the oneRevolution example to see if you got it right. Created 30 Nov. 2009 by Tom Igoe */ #include const int EnableSwitch = 4; const int ReverseSwitch = 5; int MaxSteps = 1280; int MinSteps = 0; const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution // for your motor // initialize the stepper library on pins 8 through 11: Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); int stepCount = 0; // number of steps the motor has taken void setup() { // initialize the serial port: Serial.begin(38400); pinMode(EnableSwitch, INPUT); pinMode(ReverseSwitch, INPUT); } void loop() { // step one step: bool EnableSwitchValue = digitalRead(EnableSwitch); bool ReverseSwitchValue = digitalRead(ReverseSwitch); if(EnableSwitchValue == HIGH && ReverseSwitchValue == LOW && stepCount<=MaxSteps){ myStepper.step(1); Serial.print("steps:"); Serial.println(stepCount); stepCount++; } if(EnableSwitchValue == LOW && ReverseSwitchValue == HIGH && stepCount>=MinSteps){ myStepper.step(-1); Serial.print("steps:"); Serial.println(stepCount); stepCount--; } }