Update Stepper.md
This commit is contained in:
parent
bd1149f088
commit
81b725e7a5
|
|
@ -7,14 +7,19 @@ The HomeSpan class that contains all the methods to control a stepper motor is c
|
||||||
* **Stepper_TB6612**
|
* **Stepper_TB6612**
|
||||||
* This class is used to operate stepper motors driven by a [Toshiba TB6612](https://www.adafruit.com/product/2448) chip, either with or without the use of ESP32 PWM pins
|
* This class is used to operate stepper motors driven by a [Toshiba TB6612](https://www.adafruit.com/product/2448) chip, either with or without the use of ESP32 PWM pins
|
||||||
* To use, add the following to the top of your sketch: `#include "extras/Stepper_TB6612.h"`
|
* To use, add the following to the top of your sketch: `#include "extras/Stepper_TB6612.h"`
|
||||||
* Contructors:
|
* Constructor 1: `Stepper_TB6612(int AIN1, int AIN2, int BIN1, int BIN2)`
|
||||||
* `Stepper_TB6612(int AIN1, int AIN2, int BIN1, int BIN2)` - controls the driver board using only 4 digital pins
|
* controls the driver board using only 4 digital pins from the ESP32
|
||||||
* `Stepper_TB6612(int AIN1, int AIN2, int BIN1, int BIN2, int PWMA, int PWMB)` - adds PWM control of the motor, allowing for additional stepping modes
|
* does not provide ability to microstep the motor
|
||||||
|
* Constructor 2: `Stepper_TB6612(int AIN1, int AIN2, int BIN1, int BIN2, int PWMA, int PWMB)`
|
||||||
|
* controls the driver board using 4 digital pins and 2 PWM pins from the ESP32
|
||||||
|
* the addition of the PWM pins provides the ability to microstep the motor
|
||||||
|
|
||||||
* **Stepper_A3967**
|
* **Stepper_A3967**
|
||||||
* This class is used to operate stepper motors driven by an [Allegro A3967](https://www.sparkfun.com/products/12779) chip
|
* This class is used to operate stepper motors driven by an [Allegro A3967](https://www.sparkfun.com/products/12779) chip
|
||||||
* To use, add the following to the top of your sketch: `#include "extras/Stepper_A3967.h"`
|
* To use, add the following to the top of your sketch: `#include "extras/Stepper_A3967.h"`
|
||||||
* Contructor: `Stepper_A3967(int M1, int M2, int STEP, int DIR, int ENABLE)`
|
* Contructor: `Stepper_A3967(int M1, int M2, int STEP, int DIR, int ENABLE)`
|
||||||
|
* controls the driver board using 5 digital pins from the ESP32
|
||||||
|
* microstepping is built into the driver board (separate ESP32 PWM pins are not needed)
|
||||||
|
|
||||||
Click on either of the driver-specific classes above for complete details on how to wire and configure a particular driver board.
|
Click on either of the driver-specific classes above for complete details on how to wire and configure a particular driver board.
|
||||||
|
|
||||||
|
|
@ -38,6 +43,7 @@ The **StepperControl** class provides the following methods to operate and contr
|
||||||
* *nSteps* - the number of steps to turn. A positive number turns the motor in one direction; a negative number turns the motor in the opposite direction; a value of zero causes the motor to *stop* if it is already turning
|
* *nSteps* - the number of steps to turn. A positive number turns the motor in one direction; a negative number turns the motor in the opposite direction; a value of zero causes the motor to *stop* if it is already turning
|
||||||
* *msDelay* - the delay, in milliseconds, to pause between steps. Must be greater than zero. The lower the number, the faster the motor turns, subject to limitations of the motor itself
|
* *msDelay* - the delay, in milliseconds, to pause between steps. Must be greater than zero. The lower the number, the faster the motor turns, subject to limitations of the motor itself
|
||||||
* *endAction* - an optional action to be performed *after* the motor has finished moving *nSteps* steps. Choices include:
|
* *endAction* - an optional action to be performed *after* the motor has finished moving *nSteps* steps. Choices include:
|
||||||
|
|
||||||
* **StepperControl::NONE** - no action is taken; the stepper motor is left in the enabled state (this is the default)
|
* **StepperControl::NONE** - no action is taken; the stepper motor is left in the enabled state (this is the default)
|
||||||
* **StepperControl::DISABLE** - current to the stepper motor is disabled
|
* **StepperControl::DISABLE** - current to the stepper motor is disabled
|
||||||
* **StepperControl::BRAKE** - the stepper motor is placed in a brake state
|
* **StepperControl::BRAKE** - the stepper motor is placed in a brake state
|
||||||
|
|
@ -68,6 +74,7 @@ The **StepperControl** class provides the following methods to operate and contr
|
||||||
* *nPosition* - the position to which the stepper move should turn, where position is defined as the cumulative number of positive and negative steps the motor has turned since initial start-up, as returned by `position()`
|
* *nPosition* - the position to which the stepper move should turn, where position is defined as the cumulative number of positive and negative steps the motor has turned since initial start-up, as returned by `position()`
|
||||||
* *msDelay* - the delay, in milliseconds, to pause between steps. Must be greater than zero. The lower the number, the faster the motor turns, subject to limitations of the motor itself
|
* *msDelay* - the delay, in milliseconds, to pause between steps. Must be greater than zero. The lower the number, the faster the motor turns, subject to limitations of the motor itself
|
||||||
* *endAction* - an optional action to be performed *after* the motor has reached *nPosition*. Choices include:
|
* *endAction* - an optional action to be performed *after* the motor has reached *nPosition*. Choices include:
|
||||||
|
|
||||||
* **StepperControl::NONE** - no action is taken; the stepper motor is left in the enabled state (this is the default)
|
* **StepperControl::NONE** - no action is taken; the stepper motor is left in the enabled state (this is the default)
|
||||||
* **StepperControl::DISABLE** - current to the stepper motor is disabled
|
* **StepperControl::DISABLE** - current to the stepper motor is disabled
|
||||||
* **StepperControl::BRAKE** - the stepper motor is placed in a brake state
|
* **StepperControl::BRAKE** - the stepper motor is placed in a brake state
|
||||||
|
|
@ -84,6 +91,18 @@ The **StepperControl** class provides the following methods to operate and contr
|
||||||
* msDelay \* accelSize \* \[ exp(-abs(nSteps-stepsRemaining)/accelSteps) + exp(-(abs(stepsRemaining)-1)/accelSteps) \]
|
* msDelay \* accelSize \* \[ exp(-abs(nSteps-stepsRemaining)/accelSteps) + exp(-(abs(stepsRemaining)-1)/accelSteps) \]
|
||||||
|
|
||||||
* `void setStepType(int mode)`
|
* `void setStepType(int mode)`
|
||||||
|
* sets the step type of the motor to one of the following *mode* enumerations:
|
||||||
|
|
||||||
|
* **StepperControl::FULL_STEP_ONE_PHASE** (0)
|
||||||
|
* **StepperControl::FULL_STEP_TWO_PHASE** (1)
|
||||||
|
* **StepperControl::HALF_STEP** (2)
|
||||||
|
* **StepperControl::QUARTER_STEP** (4)
|
||||||
|
* **StepperControl::EIGHTH_STEP** (8)
|
||||||
|
* *mode* can be specified using either the name of the enumeration or its integer equivalent
|
||||||
|
* smaller step types provide for smother operation of the motor, but require more steps (and therefore more time) to turn a complete revolution
|
||||||
|
* the quarter- and eighth-step modes require microstepping PWM functionality (either provided by the ESP32, or built into the driver chip)
|
||||||
|
* it is possible, though not recommended, to change the step type *mode* while the motor is turning
|
||||||
|
* see Stepper Motor Modes for a brief primer on how stepper motors are typically driven
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue