Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- #include <Stepper.h>
- Servo servo;
- const float STEPS_PER_REV = 32;
- const float GEAR_RED = 64;
- const float STEPS_PER_OUT_REV = STEPS_PER_REV * GEAR_RED;
- #define START 2 // Start-Knopf
- #define OUT_LED 13 // Blink-Led
- #define TINE_SELECTION_IN 4 // Blink-Led
- int StepsRequired;
- bool tine_selection_io = false;
- Stepper steppermotor(STEPS_PER_REV, 8, 10, 9, 11);
- void setup() {
- Serial.begin(9600);
- pinMode(START, INPUT);
- pinMode(3, INPUT);
- pinMode(7, INPUT);
- pinMode(TINE_SELECTION_IN, INPUT);
- pinMode(OUT_LED, OUTPUT);
- pinMode(5, OUTPUT);
- pinMode(6, OUTPUT);
- servo.attach(12);
- lowerTines();
- }
- void loop() {
- if (digitalRead(TINE_SELECTION_IN) != HIGH && !tine_selection_io) {
- Serial.println("Waiting for tines signal...");
- digitalWrite(6, HIGH);
- return;
- } else {
- Serial.println("Received tines signal...");
- digitalWrite(6, LOW);
- tine_selection_io = true;
- if (digitalRead(START) != HIGH) {
- Serial.println("Ready... Waiting for start...");
- digitalWrite (OUT_LED, HIGH);
- delay(500);
- return;
- } else {
- digitalWrite (OUT_LED, LOW);
- Serial.println("Received start signal... Starting in 5 seconds...");
- delay(5000);
- }
- }
- Serial.println("Moving forward...");
- moveStepperForwardUntilEndStop();
- delay(1000);
- Serial.println("Lifting tines...");
- liftTines();
- delay(1000);
- Serial.println("Lowering tines...");
- lowerTines();
- delay(1000);
- Serial.println("Moving backwards...");
- moveStepperBackwardsUntilEndStop();
- Serial.println("Done... Sending signal to display image...");
- digitalWrite(5, HIGH);
- delay(500);
- digitalWrite(5, LOW);
- delay(500);
- digitalWrite(5, HIGH);
- delay(500);
- digitalWrite(5, LOW);
- delay(500);
- }
- void liftTines() {
- for(int pos = 165; pos >= 50; pos--) {
- servo.write(pos);
- delay(25);
- };
- }
- void lowerTines() {
- for(int pos = 50; pos <= 165; pos += 2) {
- servo.write(pos);
- delay(25);
- }
- }
- void moveStepperForwardUntilEndStop() {
- steppermotor.setSpeed(700);
- while (digitalRead(3) != HIGH) {
- steppermotor.step(-150);
- }
- Serial.println("EndStop 1 pressed...");
- }
- void moveStepperBackwardsUntilEndStop() {
- steppermotor.setSpeed(700);
- while (digitalRead(7) != HIGH) {
- steppermotor.step(150);
- }
- Serial.println("EndStop 2 pressed...");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement