Arduino Device Control Library
Allows Arduino boards to control a one or more of stepper motors.
This library can control one or more steppers both asynchronously and synchronously. It includes various state management methods for controlling multiple stepper motors individually, as well as methods for setting angles, revolutions, number of steps, and motor direction.
#### Releases To use this library, open the **Library Manager** in the Arduino IDE and install it from there. OR < < manual installation >>
- 1.0.0 (latest)
To use this library:
#include<uniStepMotor.h>
UniStepMotor = myStepper(int IN1, int IN2, int IN3, int IN4);
Parameters
: - mystepper: a object variable of type UniStepMotor
: - IN1 - IN4: Arduino board pin connected from ULN2003 Driver Module's output PIN from IN1 - IN4.
myStepper.configRevSteps(int no_of_steps_in_1_rev);
By default its configured at 4096 steps. How to calculate no. of steps in one revolution?
To enable or disable full-stepping in stepper motor.
By default its configured as half-stepping at 4096 steps.
myStepper.enableFullStepping(); // to enable
myStepper.disableFullStepping(); // to disable
Note: No. of steps will be reduced to 1/2 of no. of steps it takes in half-stepping. i.e **by default: 2048 steps in one revolution
⚠ Note : full-stepping is currently in beta stage. i might not perform like its expected to be.
when to use? when you need speed and can compromise precision angle of the stepper.
Get current state or control motor working using methods below.
In this library their are two types of motor states:
Start or Moving
: denoted by int value 1
Stopped or paused
: denoted by int value 0
Methods()
- Get state of motor (moving or stopped)
myStepper.getState()
Returns
int value 1 : when motor is moving.
int value 0 : when motor is not moving. It could be motor have completed its no. or steps of its state being stopped using setStateStop()
.
- Set States of motor
myStepper.setStateContinue() // to start motor
myStepper.setStateStop() // to pause moving motor
Set no. of revolutions perform by the motor.
Methods()
-
set revolution
myStepper.setRevolution(int no_of_Revolutions);
-
set revolution and put motor in continue state.
myStepper.setRevolutionAndContinue(int no_of_Revolutions);
-
get number of revolutions left by the motor.
myStepper.getRevolutionLeft();
note: directions of motor will depend on the value in the arguments i.e -ve value will lead to counter-clockwise direction, while +ve will lead motor to clockwise direction. also, motor direction could be controlled dynamically by using Direction methods stated further in the documentation.
Returns double (datatype value) : no of revolutions left is no_of_steps_left / no_of_steps_in_1_revolution.
Set angle in degree to perform by stepper motor.
Methods()
- set angle
myStepper.setAngle(int degree);
- set angle and put motor in continue state.
myStepper.setAngleAndContinue(int degree);
- get no of degree left that needs to perfomed by the motor.
Returns no. of angle in degree left in double datatype from setAngle() or setAngleAndContinue().
myStepper.getAngleLeft();
Set steps to be perform by stepper motor.
Methods()
- set steps
myStepper.setSteps(int no_of_steps);
- set steps and put motor in continue state.
myStepper.setStepsAndContinue(int no_of_steps);
- get no of Steps left that needs to perfomed by the motor.
(Note :
myStepper.getStepsLeft();
could be called (used) with revolutions or angle methods() too )Returns int (datatype value)myStepper.getStepsLeft();
put stepper motor in to perfrom steps.
Consider it like a car: you must first insert the keys, rotate the key to start the engine, and then accelerate the cars using the paddle. Similarly, you must first set the angle/revolutions or steps to be performed by the stepper motor, then put the motor in a continuous state, and then take steps (it could be async or sync depending on the method you use below).
Methods()
-
Synchronous - Complete all the steps first. note: it stops the below code/sketch functionality.
example:
-
Asynchronous - used when you need to perform other operations in the code/sketch as well.
-
Take steps example:
- Take infinte steps. example:
all the async functions returns the state of the motor i.e 1 for continue state, 0 for stop/paused states
get
Get or set stepper motor direction.
Methods()
-
set direction
code.code();
-
get direction
code.code();
Returns return 1 : explain
perfrom various calculation using convertors provided it the library.
Methods()
-
degree to steps
code.code();
Returns return 1 : explain
-
steps to degree
code.code();
Returns return 1 : explain
get
emergency stop - on pressing button stop motor change direction after one revolution working without stopping below code functionality working with two or more motors at same time start motor 2 steps after motor 1 completed its steps.