0% found this document useful (0 votes)
83 views

AccelStepper Library For Arduino2

Uploaded by

vr_xlent
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views

AccelStepper Library For Arduino2

Uploaded by

vr_xlent
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

This software is Copyright (C) 2010-2018 Mike McCauley.

Use is subject to license


conditions. The main licensing options available are GPL V3 or Commercial:

Open Source Licensing GPL V3


This is the appropriate option if you want to share the source code of your application
with everyone you distribute it to, and you also want to give them the right to share who
uses it. If you wish to use this software under Open Source Licensing, you must
contribute all your source code to the open source community in accordance with the
GPL Version 23 when your application is distributed. See
https://www.gnu.org/licenses/gpl-3.0.html

Commercial Licensing
This is the appropriate option if you are creating proprietary applications and you are
not prepared to distribute and share the source code of your application. To purchase a
commercial license, contact [email protected]

Revision History

Version
1.0 Initial release

1.1 Added speed() function to get the current speed.

1.2 Added runSpeedToPosition() submitted by Gunnar Arndt.

1.3 Added support for stepper drivers (ie with Step and Direction inputs) with _pins == 1
1.4 Added functional contructor to support AFMotor, contributed by Limor, with example
sketches.

1.5 Improvements contributed by Peter Mousley: Use of microsecond steps and other
speed improvements to increase max stepping speed to about 4kHz. New option for user
to set the min allowed pulse width. Added checks for already running at max speed and
skip further calcs if so.
1.6 Fixed a problem with wrapping of microsecond stepping that could cause stepping to
hang. Reported by Sandy Noble. Removed redundant _lastRunTime member.

1.7 Fixed a bug where setCurrentPosition() did not always work as expected. Reported by
Peter Linhart.
1.8 Added support for 4 pin half-steppers, requested by Harvey Moon

1.9 setCurrentPosition() now also sets motor speed to 0.


1.10 Builds on Arduino 1.0
1.11 Improvments from Michael Ellison: Added optional enable line support for stepper
drivers Added inversion for step/direction/enable lines for stepper drivers

1.12 Announce Google Group


1.13 Improvements to speed calculation. Cost of calculation is now less in the worst case,
and more or less constant in all cases. This should result in slightly beter high speed
3/7
performance, and reduce anomalous speed glitches when other steppers are
accelerating. However, its hard to see how to replace the sqrt() required at the very first
step from 0 speed.

1.14 Fixed a problem with compiling under arduino 0021 reported by EmbeddedMan
1.15 Fixed a problem with runSpeedToPosition which did not correctly handle running
backwards to a smaller target position. Added examples
1.16 Fixed some cases in the code where abs() was used instead of fabs().

1.17 Added example ProportionalControl


1.18 Fixed a problem: If one calls the funcion runSpeed() when Speed is zero, it makes
steps without counting. reported by Friedrich, Klappenbach.

1.19 Added MotorInterfaceType and symbolic names for the number of pins to use for
the motor interface. Updated examples to suit. Replaced individual pin assignment
variables _pin1, _pin2 etc with array _pin[4]. _pins member changed to _interface. Added
_pinInverted array to simplify pin inversion operations. Added new function
setOutputPins() which sets the motor output pins. It can be overridden in order to
provide, say, serial output instead of parallel output Some refactoring and code size
reduction.

1.20 Improved documentation and examples to show need for correctly specifying
AccelStepper::FULL4WIRE and friends.

1.21 Fixed a problem where desiredSpeed could compute the wrong step acceleration
when _speed was small but non-zero. Reported by Brian Schmalz. Precompute
sqrt_twoa to improve performance and max possible stepping speed

1.22 Added Bounce.pde example Fixed a problem where calling moveTo(),


setMaxSpeed(), setAcceleration() more frequently than the step time, even with the same
values, would interfere with speed calcs. Now a new speed is computed only if there was
a change in the set value. Reported by Brian Schmalz.

1.23 Rewrite of the speed algorithms in line with


http://fab.cba.mit.edu/classes/MIT/961.09/projects/i0/Stepper_Motor_Speed_Profile.pdf
Now expect smoother and more linear accelerations and decelerations. The
desiredSpeed() function was removed.
1.24 Fixed a problem introduced in 1.23: with runToPosition, which did never returned

1.25 Now ignore attempts to set acceleration to 0.0


1.26 Fixed a problem where certina combinations of speed and accelration could cause
oscillation about the target position.

1.27 Added stop() function to stop as fast as possible with current acceleration
parameters. Also added new Quickstop example showing its use.

1.28 Fixed another problem where certain combinations of speed and acceleration could
cause oscillation about the target position. Added support for 3 wire full and half
steppers such as Hard Disk Drive spindle. Contributed by Yuri Ivatchkovitch.
4/7

You might also like