Advertisement
Guest User

Untitled

a guest
May 20th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.18 KB | None | 0 0
  1. #include <Arduino.h>
  2.  
  3. #define X_STEP_PIN 54
  4. #define X_DIR_PIN 55
  5. #define X_ENABLE_PIN 38
  6.  
  7. #define Y_STEP_PIN 60
  8. #define Y_DIR_PIN 61
  9. #define Y_ENABLE_PIN 56
  10.  
  11. #define Z_STEP_PIN 46
  12. #define Z_DIR_PIN 48
  13. #define Z_ENABLE_PIN 62
  14.  
  15. #define X_STEPPER_CLK 16
  16. #define X_STEPPER_DT 17
  17.  
  18. #define Y_STEPPER_CLK 23
  19. #define Y_STEPPER_DT 25
  20.  
  21. #define Z_STEPPER_CLK 27
  22. #define Z_STEPPER_DT 29
  23.  
  24. int X_STEP_COUNT;
  25. int Y_STEP_COUNT;
  26. int Z_STEP_COUNT;
  27.  
  28. int X_ANGLE;
  29. int Y_ANGLE;
  30. int Z_ANGLE;
  31.  
  32. int X_STATE;
  33. int Y_STATE;
  34. int Z_STATE;
  35.  
  36. int X_LAST_STATE;
  37. int Y_LAST_STATE;
  38. int Z_LAST_STATE;
  39.  
  40. void setup()
  41. {
  42. pinMode(X_STEP_PIN, OUTPUT);
  43. pinMode(X_DIR_PIN, OUTPUT);
  44. pinMode(X_ENABLE_PIN, OUTPUT);
  45.  
  46. pinMode(Y_STEP_PIN, OUTPUT);
  47. pinMode(Y_DIR_PIN, OUTPUT);
  48. pinMode(Y_ENABLE_PIN, OUTPUT);
  49.  
  50. pinMode(Z_STEP_PIN, OUTPUT);
  51. pinMode(Z_DIR_PIN, OUTPUT);
  52. pinMode(Z_ENABLE_PIN, OUTPUT);
  53.  
  54. digitalWrite(X_ENABLE_PIN, LOW);
  55. digitalWrite(Y_ENABLE_PIN, LOW);
  56. digitalWrite(Z_ENABLE_PIN, LOW);
  57.  
  58. pinMode(X_STEPPER_DT, INPUT);
  59. pinMode(X_STEPPER_CLK, INPUT);
  60.  
  61. pinMode(Y_STEPPER_DT, INPUT);
  62. pinMode(Y_STEPPER_CLK, INPUT);
  63.  
  64. pinMode(Z_STEPPER_DT, INPUT);
  65. pinMode(Z_STEPPER_CLK, INPUT);
  66.  
  67. X_LAST_STATE = digitalRead(X_STEPPER_CLK);
  68. Y_LAST_STATE = digitalRead(Y_STEPPER_CLK);
  69. Z_LAST_STATE = digitalRead(Z_STEPPER_CLK);
  70. }
  71.  
  72. void loop()
  73. {
  74. X_STATE = digitalRead(X_STEPPER_CLK);
  75. Y_STATE = digitalRead(Y_STEPPER_CLK);
  76. Z_STATE = digitalRead(Z_STEPPER_CLK);
  77.  
  78. if(X_STATE != X_LAST_STATE) {
  79. if(digitalRead(X_STEPPER_DT) != X_STATE) {
  80. X_STEP_COUNT++;
  81. X_ANGLE++;
  82. digitalWrite(X_DIR_PIN, LOW);
  83. digitalWrite(X_STEP_PIN, HIGH);
  84. delayMicroseconds(2000);
  85. digitalWrite(X_STEP_PIN, LOW);
  86. delayMicroseconds(2000);
  87. } else {
  88. X_STEP_COUNT--;
  89. X_ANGLE--;
  90. digitalWrite(X_DIR_PIN, HIGH);
  91. digitalWrite(X_STEP_PIN, HIGH);
  92. delayMicroseconds(2000);
  93. digitalWrite(X_STEP_PIN, LOW);
  94. delayMicroseconds(2000);
  95. }
  96. }
  97.  
  98. if(Y_STATE != Y_LAST_STATE) {
  99. if(digitalRead(Y_STEPPER_DT) != Y_STATE) {
  100. Y_STEP_COUNT++;
  101. Y_ANGLE++;
  102. digitalWrite(Y_DIR_PIN, LOW);
  103. digitalWrite(Y_STEP_PIN, HIGH);
  104. delayMicroseconds(2000);
  105. digitalWrite(Y_STEP_PIN, LOW);
  106. delayMicroseconds(2000);
  107. } else {
  108. Y_STEP_COUNT--;
  109. Y_ANGLE--;
  110. digitalWrite(Y_DIR_PIN, HIGH);
  111. digitalWrite(Y_STEP_PIN, HIGH);
  112. delayMicroseconds(2000);
  113. digitalWrite(Y_STEP_PIN, LOW);
  114. delayMicroseconds(2000);
  115. }
  116. }
  117.  
  118. if(Z_STATE != Z_LAST_STATE) {
  119. if(digitalRead(Z_STEPPER_DT) != Z_STATE) {
  120. Z_STEP_COUNT++;
  121. Z_ANGLE++;
  122. digitalWrite(Z_DIR_PIN, LOW);
  123. digitalWrite(Z_STEP_PIN, HIGH);
  124. delayMicroseconds(2000);
  125. digitalWrite(Z_STEP_PIN, LOW);
  126. delayMicroseconds(2000);
  127. } else {
  128. Z_STEP_COUNT--;
  129. Z_ANGLE--;
  130. digitalWrite(Z_DIR_PIN, HIGH);
  131. digitalWrite(Z_STEP_PIN, HIGH);
  132. delayMicroseconds(2000);
  133. digitalWrite(Z_STEP_PIN, LOW);
  134. delayMicroseconds(2000);
  135. }
  136. }
  137. X_LAST_STATE = X_STATE;
  138. Y_LAST_STATE = Y_STATE;
  139. Z_LAST_STATE = Z_STATE;
  140.  
  141. delay(4);
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement