Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define step_pin 3 // Pin 3 connected to Steps pin
- #define dir_pin 2 // Pin 2 connected to Direction pin
- #define joyX A0 // Pin A0 connected to joystick X axis
- #define joyY A1 // Pin A1 connected to joystick Y axis
- #define joy_switch 4 // Pin 4 connected to joystick switch
- #define MS1 8 // Pin 9 connected to MS1 Pin
- #define MS2 9 // Pin 8 connected to MS2 pin
- #define MS3 10 // Pin 10 connected to MS3 pin
- #define limit01
- int step_speed = 10; // Speed of Stepper motor (higher = slower)
- void setup() {
- pinMode(MS1, OUTPUT);
- pinMode(MS2, OUTPUT);
- pinMode(MS3, OUTPUT);
- pinMode(dir_pin, OUTPUT);
- pinMode(step_pin, OUTPUT);
- pinMode(joy_switch, INPUT_PULLUP);
- /* MS1 MS2 MS3 Microstep Resolutions //
- // //
- // Low Low Low = Full Step //
- // High Low Low = Half Step //
- // Low High Low = Quarter Step //
- // High High Low = Eighth Step //
- // High High High = Sixteenth Step //
- // //
- */
- digitalWrite(MS1, HIGH);
- digitalWrite(MS2, HIGH);
- digitalWrite(MS3, HIGH);
- }
- void loop() {
- if (!digitalRead(joy_switch)) { // If Joystick switch is clicked
- delay(500); // delay for deboucing
- switch (step_speed) { // check current value of step_speed and change it
- case 1:
- step_speed=10; // slow speed
- break;
- case 3:
- step_speed=1; // fast speed
- break;
- case 10:
- step_speed=3; // medium speed
- break;
- }
- }
- if (analogRead(joyY) > 712) { // If joystick is moved Left
- digitalWrite(dir_pin, LOW); // (HIGH = anti-clockwise / LOW = clockwise)
- digitalWrite(step_pin, HIGH);
- delay(step_speed);
- digitalWrite(step_pin, LOW);
- delay(step_speed);
- }
- else
- if (analogRead(joyY) < 200) { // If joystick is moved Right
- digitalWrite(dir_pin, HIGH); // (HIGH = anti-clockwise / LOW = clockwise)
- digitalWrite(step_pin, HIGH);
- delay(step_speed);
- digitalWrite(step_pin, LOW);
- delay(step_speed);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement