Advertisement
Guest User

4st

a guest
Jun 16th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. #include <Servo.h>
  2. #include <Stepper.h>
  3.  
  4. Servo servo;
  5.  
  6. const float STEPS_PER_REV = 32;
  7. const float GEAR_RED = 64;
  8. const float STEPS_PER_OUT_REV = STEPS_PER_REV * GEAR_RED;
  9.  
  10. #define START 2 // Start-Knopf
  11.  
  12. #define OUT_LED 13 // Blink-Led
  13.  
  14. #define TINE_SELECTION_IN 4 // Blink-Led
  15.  
  16. int StepsRequired;
  17.  
  18. bool tine_selection_io = false;
  19.  
  20. Stepper steppermotor(STEPS_PER_REV, 8, 10, 9, 11);
  21.  
  22. void setup() {
  23. Serial.begin(9600);
  24.  
  25. pinMode(START, INPUT);
  26. pinMode(3, INPUT);
  27. pinMode(7, INPUT);
  28. pinMode(TINE_SELECTION_IN, INPUT);
  29.  
  30. pinMode(OUT_LED, OUTPUT);
  31. pinMode(5, OUTPUT);
  32. pinMode(6, OUTPUT);
  33.  
  34. servo.attach(12);
  35.  
  36. lowerTines();
  37. }
  38.  
  39. void loop() {
  40. if (digitalRead(TINE_SELECTION_IN) != HIGH && !tine_selection_io) {
  41. Serial.println("Waiting for tines signal...");
  42. digitalWrite(6, HIGH);
  43. return;
  44. } else {
  45. Serial.println("Received tines signal...");
  46. digitalWrite(6, LOW);
  47. tine_selection_io = true;
  48.  
  49. if (digitalRead(START) != HIGH) {
  50. Serial.println("Ready... Waiting for start...");
  51.  
  52. digitalWrite (OUT_LED, HIGH);
  53. delay(500);
  54.  
  55. return;
  56. } else {
  57. digitalWrite (OUT_LED, LOW);
  58.  
  59. Serial.println("Received start signal... Starting in 5 seconds...");
  60.  
  61. delay(5000);
  62. }
  63. }
  64.  
  65. Serial.println("Moving forward...");
  66. moveStepperForwardUntilEndStop();
  67.  
  68. delay(1000);
  69.  
  70. Serial.println("Lifting tines...");
  71. liftTines();
  72.  
  73. delay(1000);
  74.  
  75. Serial.println("Lowering tines...");
  76. lowerTines();
  77.  
  78. delay(1000);
  79.  
  80. Serial.println("Moving backwards...");
  81. moveStepperBackwardsUntilEndStop();
  82.  
  83. Serial.println("Done... Sending signal to display image...");
  84. digitalWrite(5, HIGH);
  85. delay(500);
  86. digitalWrite(5, LOW);
  87. delay(500);
  88. digitalWrite(5, HIGH);
  89. delay(500);
  90. digitalWrite(5, LOW);
  91. delay(500);
  92. }
  93.  
  94. void liftTines() {
  95. for(int pos = 165; pos >= 50; pos--) {
  96. servo.write(pos);
  97. delay(25);
  98. };
  99. }
  100.  
  101. void lowerTines() {
  102. for(int pos = 50; pos <= 165; pos += 2) {
  103. servo.write(pos);
  104. delay(25);
  105. }
  106. }
  107.  
  108. void moveStepperForwardUntilEndStop() {
  109. steppermotor.setSpeed(700);
  110.  
  111. while (digitalRead(3) != HIGH) {
  112. steppermotor.step(-150);
  113. }
  114.  
  115. Serial.println("EndStop 1 pressed...");
  116. }
  117.  
  118. void moveStepperBackwardsUntilEndStop() {
  119. steppermotor.setSpeed(700);
  120.  
  121. while (digitalRead(7) != HIGH) {
  122. steppermotor.step(150);
  123. }
  124.  
  125. Serial.println("EndStop 2 pressed...");
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement