Advertisement
Guest User

stepper_HALFSTEP

a guest
Feb 8th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. #include <AccelStepper.h>
  2. #define HALFSTEP 8
  3.  
  4. // motor pins
  5. #define motorPin1 3 // IN1 on the ULN2003 driver 1
  6. #define motorPin2 4 // IN2 on the ULN2003 driver 1
  7. #define motorPin3 5 // IN3 on the ULN2003 driver 1
  8. #define motorPin4 6 // IN4 on the ULN2003 driver 1
  9.  
  10. #define motorPin5 8 // IN1 on the ULN2003 driver 2
  11. #define motorPin6 9 // IN2 on the ULN2003 driver 2
  12. #define motorPin7 10 // IN3 on the ULN2003 driver 2
  13. #define motorPin8 11 // IN4 on the ULN2003 driver 2
  14.  
  15. // Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper with 28BYJ-48
  16. AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
  17. AccelStepper stepper2(HALFSTEP, motorPin5, motorPin7, motorPin6, motorPin8);
  18.  
  19. // variables
  20. int turnSteps = 2100; // number of steps for a 90 degree turn
  21. int lineSteps = -6600; //number of steps to drive straight
  22. int stepperSpeed = 1000; //speed of the stepper (steps per second)
  23. int steps1 = 0; // keep track of the step count for motor 1
  24. int steps2 = 0; // keep track of the step count for motor 2
  25.  
  26. boolean turn1 = false; //keep track if we are turning or going straight next
  27. boolean turn2 = false; //keep track if we are turning or going straight next
  28.  
  29. void setup() {
  30. delay(3000); //sime time to put the robot down after swithing it on
  31.  
  32. stepper1.setMaxSpeed(2000.0);
  33. stepper1.move(1); // I found this necessary
  34. stepper1.setSpeed(stepperSpeed);
  35.  
  36. stepper2.setMaxSpeed(2000.0);
  37. stepper2.move(-1); // I found this necessary
  38. stepper2.setSpeed(stepperSpeed);
  39.  
  40. }
  41. void loop() {
  42.  
  43. if (steps1 == 0) {
  44. int target = 0;
  45. if (turn1 == true) {
  46. target = turnSteps;
  47. }
  48.  
  49. else {
  50. target = lineSteps;
  51. }
  52.  
  53. stepper1.move(target);
  54. stepper1.setSpeed(stepperSpeed);
  55. turn1 = !turn1;
  56. }
  57.  
  58. if (steps2 == 0) {
  59. int target = 0;
  60. if (turn2 == true) {
  61. target = turnSteps;
  62. }
  63.  
  64. else {
  65. target = -lineSteps;
  66. }
  67.  
  68. stepper2.move(target);
  69. stepper2.setSpeed(stepperSpeed);
  70. turn2 = !turn2;
  71. }
  72.  
  73. steps1 = stepper1.distanceToGo();
  74. steps2 = stepper2.distanceToGo();
  75.  
  76. stepper1.runSpeedToPosition();
  77. stepper2.runSpeedToPosition();
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement