// https://github.com/adafruit/AccelStepper/blob/master/examples/Overshoot/Overshoot.pde#L1
// Overshoot.pde
// -*- mode: C++ -*-
//
// Check overshoot handling
// which sets a new target position and then waits until the stepper has
// achieved it. This is used for testing the handling of overshoots
//
// Copyright (C) 2009 Mike McCauley
// $Id: HRFMessage.h,v 1.1 2009/08/15 05:32:58 mikem Exp mikem $
/*
#include <AccelStepper.h>
// Define a stepper and the pins it will use
AccelStepper stepper; // Defaults to 4 pins on 2, 3, 4, 5
void setup()
{
}
void loop()
{
stepper.setMaxSpeed(200);
stepper.setAcceleration(50);
stepper.runToNewPosition(0);
stepper.moveTo(500);
while (stepper.currentPosition() != 300)
stepper.run();
// cause an overshoot as we whiz past 300
stepper.setCurrentPosition(600);
}
*/
/*
#include <AccelStepper.h>
// The X Stepper pins
#define STEPPER1_DIR_PIN 16
#define STEPPER1_STEP_PIN 17
// The Y stepper pins
#define STEPPER2_DIR_PIN 5
#define STEPPER2_STEP_PIN 18
const int btn1 = 23;
const int bt2 = 22;
const int sinal = 21;
// Define some steppers and the pins the will use
AccelStepper stepper1(AccelStepper::DRIVER, STEPPER1_STEP_PIN, STEPPER1_DIR_PIN);
AccelStepper stepper2(AccelStepper::DRIVER, STEPPER2_STEP_PIN, STEPPER2_DIR_PIN);
void setup()
{
stepper1.setMaxSpeed(200.0);
stepper1.setAcceleration(200.0);
stepper2.setMaxSpeed(200.0);
stepper2.setAcceleration(200.0);
pinMode(btn1, INPUT_PULLUP);
pinMode(bt2, INPUT_PULLUP);
pinMode(sinal, OUTPUT);
}
void loop()
{
if(digitalRead(btn1) == 0){
stepper1.moveTo(100);
while (stepper1.currentPosition() >= 100)
stepper1.run();
delay(500);
stepper2.runToNewPosition(100);
delay(500);
stepper1.moveTo(0);
while (stepper1.currentPosition() <= 0)
stepper1.run();
delay(500);
stepper2.runToNewPosition(0);
delay(200);
digitalWrite(sinal, HIGH);
delay(500);
digitalWrite(sinal, LOW);
} else{
stepper1.stop();
stepper2.stop();
}
delay(100);
}
*/
#include <AccelStepper.h>
// Define a stepper and the pins it will use
#define STEPPER1_DIR_PIN 16
#define STEPPER1_STEP_PIN 17
AccelStepper stepper1(AccelStepper::DRIVER, STEPPER1_STEP_PIN, STEPPER1_DIR_PIN);
void setup()
{
}
void loop()
{
stepper1.setMaxSpeed(200);
stepper1.setAcceleration(50);
stepper1.runToNewPosition(0);
stepper1.moveTo(500);
while (stepper1.currentPosition() != 300)
stepper1.run();
// cause an overshoot as we whiz past 300
stepper1.setCurrentPosition(600);
}