34 lines
2.3 KiB
Markdown
34 lines
2.3 KiB
Markdown
# Stepper_A3967
|
|
|
|
This is a derived class of **StepperControl** designed to operate stepper motors driven by an [Allegro A3967](https://cdn.sparkfun.com/datasheets/Robotics/A3967-Datasheet.pdf) chip. To use, add `#include "extras/Stepper_A3967.h"` to the top of your sketch.
|
|
|
|
The Allegro A3967 is a specialized driver designed for stepper motors. It contains a built-in PWM generator and pre-programmed stepping modes. Wiring for the [Sparkfun EasyDriver Stepper Motor Board](https://learn.sparkfun.com/tutorials/easy-driver-hook-up-guide?_ga=2.152816825.1841726212.1688220137-156607829.1686369274) that uses this chip is as follows:
|
|
|
|
#### **Power Connections**
|
|
* *GND* - connect to GND on the ESP32, and to ground of external DC power supply
|
|
* *M+* - connect to external DC power supply that will drive stepper motor. An on-board regulator also uses this supply to provide VCC to the rest of the board. For use with an ESP32, you must short the 3.3V/5V jumper with a blob of solder to select 3.3V
|
|
#### **Motor Connections**
|
|
* *Motor A* - connect to the "A" coil of the stepper motor
|
|
* *Motor B* - connect to the "B" coil of the stepper motor
|
|
#### **Control Connections**
|
|
* *ENABLE* - connect to a digital pin on the ESP32 - used to enable/disable to motor driver
|
|
* *STEP, DIR* - connect to two digital pins on the ESP32 - used to step the motor and set the direction
|
|
* *MS1, MS2* - connect to two digital pins on the ESP32 - used to set the step type mode
|
|
* *SLEEP, RESET* - already pulled high on the EasyDriver board, so no connection neeed. If using a different driver board, ensure these pins are pulled high, else connect to VCC
|
|
* *PFD* - not used
|
|
|
|
The **Stepper_A3967** class includes the following constructor:
|
|
* `Stepper_A3967(int M1, int M2, int STEP, int DIR, int ENABLE)`
|
|
* controls the driver board using 5 digital pins from the ESP32, where the parameters specify the pin numbers. Supports the following step type modes:
|
|
|
|
* FULL_STEP_TWO_PHASE
|
|
* HALF_STEP
|
|
* QUARTER_STEP
|
|
* EIGHTH_STEP
|
|
|
|
❗Note: The A3967 chip does not support a short brake state. Calls to the `brake()` method, as well as setting the *endAction* parameter in the `move()` and `moveTo()` methods to **StepperControl::BRAKE** have no effect on the motor driver.
|
|
|
|
---
|
|
|
|
[↩️](../Stepper.md) Back to the Stepper Motor Control page
|