2.3 KiB
Stepper_A3967
This is a derived class of StepperControl designed to operate stepper motors driven by an Allegro A3967 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 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.
↩️ Back to the Stepper Motor Control page