added arduino, modified build
This commit is contained in:
121
arduino/libraries/Stepper/src/Stepper.h
Normal file
121
arduino/libraries/Stepper/src/Stepper.h
Normal file
@@ -0,0 +1,121 @@
|
||||
/*
|
||||
* Stepper.h - Stepper library for Wiring/Arduino - Version 1.1.0
|
||||
*
|
||||
* Original library (0.1) by Tom Igoe.
|
||||
* Two-wire modifications (0.2) by Sebastian Gassner
|
||||
* Combination version (0.3) by Tom Igoe and David Mellis
|
||||
* Bug fix for four-wire (0.4) by Tom Igoe, bug fix from Noah Shibley
|
||||
* High-speed stepping mod by Eugene Kozlenko
|
||||
* Timer rollover fix by Eugene Kozlenko
|
||||
* Five phase five wire (1.1.0) by Ryan Orendorff
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*
|
||||
* Drives a unipolar, bipolar, or five phase stepper motor.
|
||||
*
|
||||
* When wiring multiple stepper motors to a microcontroller, you quickly run
|
||||
* out of output pins, with each motor requiring 4 connections.
|
||||
*
|
||||
* By making use of the fact that at any time two of the four motor coils are
|
||||
* the inverse of the other two, the number of control connections can be
|
||||
* reduced from 4 to 2 for the unipolar and bipolar motors.
|
||||
*
|
||||
* A slightly modified circuit around a Darlington transistor array or an
|
||||
* L293 H-bridge connects to only 2 microcontroler pins, inverts the signals
|
||||
* received, and delivers the 4 (2 plus 2 inverted ones) output signals
|
||||
* required for driving a stepper motor. Similarly the Arduino motor shields
|
||||
* 2 direction pins may be used.
|
||||
*
|
||||
* The sequence of control signals for 5 phase, 5 control wires is as follows:
|
||||
*
|
||||
* Step C0 C1 C2 C3 C4
|
||||
* 1 0 1 1 0 1
|
||||
* 2 0 1 0 0 1
|
||||
* 3 0 1 0 1 1
|
||||
* 4 0 1 0 1 0
|
||||
* 5 1 1 0 1 0
|
||||
* 6 1 0 0 1 0
|
||||
* 7 1 0 1 1 0
|
||||
* 8 1 0 1 0 0
|
||||
* 9 1 0 1 0 1
|
||||
* 10 0 0 1 0 1
|
||||
*
|
||||
* The sequence of control signals for 4 control wires is as follows:
|
||||
*
|
||||
* Step C0 C1 C2 C3
|
||||
* 1 1 0 1 0
|
||||
* 2 0 1 1 0
|
||||
* 3 0 1 0 1
|
||||
* 4 1 0 0 1
|
||||
*
|
||||
* The sequence of controls signals for 2 control wires is as follows
|
||||
* (columns C1 and C2 from above):
|
||||
*
|
||||
* Step C0 C1
|
||||
* 1 0 1
|
||||
* 2 1 1
|
||||
* 3 1 0
|
||||
* 4 0 0
|
||||
*
|
||||
* The circuits can be found at
|
||||
*
|
||||
* http://www.arduino.cc/en/Tutorial/Stepper
|
||||
*/
|
||||
|
||||
// ensure this library description is only included once
|
||||
#ifndef Stepper_h
|
||||
#define Stepper_h
|
||||
|
||||
// library interface description
|
||||
class Stepper {
|
||||
public:
|
||||
// constructors:
|
||||
Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2);
|
||||
Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2,
|
||||
int motor_pin_3, int motor_pin_4);
|
||||
Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2,
|
||||
int motor_pin_3, int motor_pin_4,
|
||||
int motor_pin_5);
|
||||
|
||||
// speed setter method:
|
||||
void setSpeed(long whatSpeed);
|
||||
|
||||
// mover method:
|
||||
void step(int number_of_steps);
|
||||
|
||||
int version(void);
|
||||
|
||||
private:
|
||||
void stepMotor(int this_step);
|
||||
|
||||
int direction; // Direction of rotation
|
||||
unsigned long step_delay; // delay between steps, in ms, based on speed
|
||||
int number_of_steps; // total number of steps this motor can take
|
||||
int pin_count; // how many pins are in use.
|
||||
int step_number; // which step the motor is on
|
||||
|
||||
// motor pin numbers:
|
||||
int motor_pin_1;
|
||||
int motor_pin_2;
|
||||
int motor_pin_3;
|
||||
int motor_pin_4;
|
||||
int motor_pin_5; // Only 5 phase motor
|
||||
|
||||
unsigned long last_step_time; // time stamp in us of when the last step was taken
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user